Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 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