Ветеран
Сообщения: 2709
Благодарности: 1685
|
Профиль
|
Отправить PM
| Цитировать
palexa,
Цитата palexa:
Можно сразу поделить на / 1024 / 1024 / 1024 и отправить в файл »
|
- Нельзя, ограничение разрядности чисел в CMD. Вообще-то Вы заказывали мегабайты, я сделал миллионы байт. Я придумал, как с хорошей точностью перейти от миллионов байт к мегабайтам. И уже мегабайты свести к гигабайтам делением на 1024
Пробуйте, пишите
Код:
@Echo Off
cls
Set "NetPath=\\ts7\C$\Users"
Pushd "%NetPath%" || (
Echo Wrong path "%NetPath%"
Pause
GoTo :Eof
)
FOR /F "usebackq delims=\" %%n IN (`cd`) DO Set "Drive=%%n"
FOR /F "usebackq tokens=1,2 delims= " %%i IN (`"wmic logicaldisk where caption="%Drive%" Get FreeSpace,Size,VolumeName"`) DO If Not "%%j"=="" (Set "FreeSpace=%%i" &Set "Size=%%j")
Set "Size1=%Size%" & Set "FreeSpace1=%FreeSpace%"
for /f "delims=" %%i in ('dir "%NetPath%\*" /a:d /b') do (
del /s /q "%NetPath%\%%i\AppData\Local\Google\Chrome\User Data\Default\Cache\*"
del /s /q "%NetPath%\%%i\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO\*"
del /s /q "%NetPath%\%%i\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook\*"
del /s /q "%NetPath%\%%i\AppData\Local\Microsoft\Windows\WER\*"
del /s /q "%NetPath%\%%i\AppData\Local\Microsoft\Windows\Explorer\*"
del /s /q "%NetPath%\%%i\AppData\Local\Temp\*"
del /s /q "%NetPath%\%%i\Downloads\*"
)
FOR /F "usebackq tokens=1,2 delims= " %%i IN (`"wmic logicaldisk where caption="%Drive%" Get FreeSpace,Size,VolumeName"`) DO If Not "%%j"=="" (Set "FreeSpace=%%i" &Set "Size=%%j")
Set "Size2=%Size%" &Set "FreeSpace2=%FreeSpace%"
Popd
Set "Space= "
Set "S0=%Space%%Size2%" &Set "S2=%Space%%FreeSpace2%" &Set "S1=%Space%%FreeSpace1%"
Echo %S0:~-15% byte =Total size
Echo %S1:~-15% byte =Free space before releasing
Echo %S2:~-15% byte =Free space after releasing
Set "S0M=%Size1:~0,-6%"
If "%S0M%"=="" (Set /A S0M=0) Else (Set /A S0M=%S0M%-%S0M%/20)
Set "S2M=%FreeSpace2:~0,-6%"
If "%S2M%"=="" (Set /A S2M=0) Else (Set /A S2M=%S2M%-%S2M%/20)
Set "S1M=%FreeSpace1:~0,-6%"
If "%S1M%"=="" (Set /A S1M=0) Else (Set /A S1M=%S1M%-%S1M%/20)
Set /A Delta=%S2M%-%S1M%
Set "S0=%Space%%S0M%" &Set "S2=%Space%%S2M%" &Set "S1=%Space%%S1M%" &Set "SD=%Space%%Delta%"
Echo %S0:~-9% Mbyte =Total size
Echo %S2:~-9% Mbyte =Free space after releasing
Echo %S1:~-9% Mbyte =Free space before releasing
Echo %SD:~-9% Mbyte =Space released
Set /A S0G=%S0M%/1024, S1G=%S1M%/1024, S2G=%S2M%/1024, Delta=%Delta%/1024
Set "S0=%Space%%S0G%" &Set "S2=%Space%%S2G%" &Set "S1=%Space%%S1G%" &Set "SD=%Space%%Delta%"
Echo %S0:~-6% Gbyte =Total size
Echo %S2:~-6% Gbyte =Free space after releasing
Echo %S1:~-6% Gbyte =Free space before releasing
Echo %SD:~-6% Gbyte =Space released
Pause
GoTo :Eof
Думаю, записать в файл нужные строки не составит труда
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Последний раз редактировалось megaloman, 25-11-2018 в 16:10.
Отправлено: 15:54, 25-11-2018
| #29
|