PDA

Показать полную графическую версию : [решено] Сравнение свободного места на диске до и после


AgentMario
08-11-2016, 10:49
@Echo off
chcp 1251>null
Title Удаляем. Ожидайте..
<<Здесь нужно определить свободное место>>
del "C:\Users\UserName\AppData\Local\Temp\*.*" /s /q
del "C:\Windows\Temp\*.*" /s /q
<<Здесь снова определяем свободное место и выдаем инфу о том, сколько мы удалили>>

Нужно определить свободное место, почистить временные папки, снова определить свободное место и сравнить результат. Выдать освобожденное место в МБ.
В скриптах не соображаю, рылся по темам - там либо сохранение в файл, либо уже готовые скрипты, в которые я не могу вставить мои дополнения.

Не получаются даже банальные вещи - кодировка не меняется и создается файл null...

gannet
08-11-2016, 12:22
AgentMario, не null, а nul
и у меня, когда освоил арифметику (http://forum.oszone.net/post-1833881.html) и научился определять свободное место (http://forum.oszone.net/post-1780955.html) @echo off
chcp 1251>nul
setlocal enableextensions enabledelayedexpansion

for /f "usebackq tokens=2 delims==" %%i in (
`wmic.exe LogicalDisk where "Name='c:'" get FreeSpace /value`
) do set sFreeSize=%%i

if defined sFreeSize (
set sFreeSizePseudoMb=%sFreeSize:~0,-7%
)
Title Удаляем. Ожидайте..
del %Temp%\*.* /s /q
for /f "usebackq tokens=2 delims==" %%i in (
`wmic.exe LogicalDisk where "Name='c:'" get FreeSpace /value`
) do set sFreeSize=%%i

if defined sFreeSize (
set sFreeSizePseudoMb1=%sFreeSize:~0,-7%
)
set /a Freed=!sFreeSizePseudoMb1! - !sFreeSizePseudoMb!
echo !Freed! Мегабайт освобождено!
endlocal
exit /b 0
Но для очистки временных файлов лучше использовать cleanmgr /sagerun (например, так (https://social.technet.microsoft.com/Forums/en-US/39d64011-a80d-490a-9100-621d7b88daa0/deleting-temporary-files-in-windows-10?forum=windowssteadystate) - выполнять от админа и команду dism уберите, она не на каждый день)

AgentMario
08-11-2016, 13:16
Благодарю. Работает отлично.

megaloman
09-11-2016, 08:22
@Echo Off
cls
Chcp 1251 >nul

FOR /F "usebackq tokens=2 delims=:" %%s IN (`fsutil volume diskfree C:`) DO Set "S1=%%s" &GoTo :Cont1
:Cont1

Call :RDT "%Tmp%"
Call :RDT "%Temp%"

FOR /F "usebackq tokens=2 delims=:" %%s IN (`fsutil volume diskfree C:`) DO Set "S2=%%s" &GoTo :Cont2
:Cont2

Set /A SS=%S2:~1,-6%-%S1:~1,-6%

Echo %SS% Мегабайт освобождено!

pause
GoTo :Eof

:RDT
Echo Удаляем временные файлы из %1
Pushd %1
Rd /S /Q %1 2>nul
Popd
GoTo :Eof




© OSzone.net 2001-2012