Имя пользователя:
Пароль:
 

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

Ветеран


Сообщения: 2205
Благодарности: 730

Профиль | Отправить PM | Цитировать


Снова нужна помощь по скрипту
Код: Выделить весь код
@Echo Off
 SetLocal enabledelayedexpansion
rem Очистка корзины на всех дисках
Set Cnt=0
FOR %%d IN (Z Y X W U V T S R Q P O N M L K J I H G F E D C) DO (
	IF EXIST %%d:\RECYCLER (
		SET DirProg=%%d:\RECYCLER
		For /F "skip=4 tokens=1-3" %%a IN ('Dir "!DirProg!" /-C /S /A:-D ') Do (
		   If !flag!==1 Set dirsize4=%%c
		   If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0)
		                                                                       )
		Set /A Cnt +=dirsize4
	                       )
                                                              )
set rst=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches
Reg Add "%rst%\Recycle Bin" /v StateFlags0001 /t REG_DWORD /d 2 /f | Echo Off
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query %rst%^|Find /I "Compress old files"`) Do Reg Delete "%rst%\Compress old files" /f | Echo Off
Cleanmgr /sagerun:1
echo    Очистка корзины на всех дисках                - OK
rem ------------------------------------------------------------------------

Set /a CntT=%Cnt%+0

If Not "%CntT%"=="%Cnt%" Echo Количество временных файлов велико для обработки &ping 127.0.0.1 -n 7 > nul&Exit
rem Максимальное значение число для арифметики в CMD = 2^30 - 1 (2147483647 = 2048 Mb. ) 
Set kb=1024
Set /a mb=kb*kb, dirsizeMB=CntT/mb, ostMB=CntT%%mb*100/mb

echo.
echo.
echo       Очистка выполнена, всего удалено %dirsizeMB%,%ostMB% Мб

ping 127.0.0.1 -n 7 > nul
pause
При вставленной в комп флешке появляется ошибка, скрипт не ругается на перебор размера для обработки.

Второй день экспериментирую и не могу понять, почему размер корзины при переборе 2147483647 получается со знаком минус и не появляется сообщение "Количество временных файлов велико для обработки" . Хелп! !!!

Последний раз редактировалось sov44, 29-04-2011 в 10:38.


Отправлено: 20:57, 27-04-2011 | #25