|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] определить общий размер удалённых файлов скриптом |
|
CMD/BAT - [решено] определить общий размер удалённых файлов скриптом
|
Пользователь Сообщения: 54 |
Профиль | Отправить PM | Цитировать Привет
Есть скрипт на cmd, для удаления хлама из директорий пользователей for /f "delims=" %%i in ('dir "\\ts7\c$\users\*" /a:d /b') do ( rem pushd "\\ts7\C$\Users\%%i\AppData\Local\Google\Chrome\User Data\Default\Cache" rem rmdir /s /q "\\ts7\C$\Users\%%i\AppData\Local\Google\Chrome\User Data\Default\Cache" del /s /q "\\ts7\C$\Users\%%i\AppData\Local\Google\Chrome\User Data\Default\Cache\*" del /s /q "\\ts7\c$\Users\%%i\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO\*" del /s /q "\\ts7\C$\Users\%%i\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook\*" del /s /q "\\ts7\c$\Users\%%i\AppData\Local\Microsoft\Windows\WER\*" del /s /q "\\ts7\c$\Users\%%i\AppData\Local\Microsoft\Windows\Explorer\*" del /s /q "\\ts7\c$\Users\%%i\AppData\Local\Temp\*" del /s /q "\\ts7\c$\Users\%%i\Downloads\*" ) pause Если это конечно возможно и не сильно повлияет на скорость выполнения скрипта |
|
Отправлено: 20:59, 23-11-2018 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать palexa, Я не гадаю с точностью.
1000*1000=1000000 1024*1024=1048576 То есть отличие составляет ~5% (то есть 1/20 часть от результата) В CMD нет дробей. Поэтому, если я из миллионов байт получаю мегабайты путём: млн-млн/20 Погрешность результата составляет 0.2% Покажите, как отработал вывод в моём последнем варианте. Интересно посравнивать числа при ручных подсчетах и то, что я выдаю |
------- Отправлено: 16:48, 25-11-2018 | #31 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать 392690659328 byte =Total size
96284807168 byte =Free space before releasing 96756871168 byte =Free space after releasing 373056 Mbyte =Total size 91919 Mbyte =Free space after releasing 91470 Mbyte =Free space before releasing 449 Mbyte =Space released 364 Gbyte =Total size 89 Gbyte =Free space after releasing 89 Gbyte =Free space before releasing 0 Gbyte =Space released |
Отправлено: 16:59, 25-11-2018 | #32 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Скрин после очистки
|
Отправлено: 17:05, 25-11-2018 | #33 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Вот скрин на всякий случай до и после
207799447552 byte =Total size 92909678592 byte =Free space before releasing 95596863488 byte =Free space after releasing - 197410 Mbyte =Total size 90817 Mbyte =Free space after releasing 88264 Mbyte =Free space before releasing 2553 Mbyte =Space released - 192 Gbyte =Total size 88 Gbyte =Free space after releasing 86 Gbyte =Free space before releasing 2 Gbyte =Space released |
Отправлено: 17:59, 25-11-2018 | #34 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Если сервер не найден, то пишет
Сетевой путь не найден. Wrong path "\\ts7\C$\Users" Press any key to continue . . . Как этого избежать, что бы в этом случае батник показал инфу и закрылся Если я правильно понял закоментровать Echo Wrong path "%NetPath%" rem Pause (а ещё лучше записал эту инфу в указанный файл) |
Последний раз редактировалось palexa, 25-11-2018 в 20:49. Отправлено: 20:44, 25-11-2018 | #35 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать palexa, Вы как-то помянули несколько серверов. Учел. Можете прописать несколько серверов (или один).
Кроме того, решил вернуться к гибриду cmd+js. На js написан калькулятор пересчета. Получаем правильные числа. Показал возможность формирования log-файла. Сейчас в имени датавремя запуска файла Z:\ГГГГММДДччммсс.log (пропишите свой диск). Можете придумать другое имя. Закомментируйте вывод результатов, которые Вам не интересны. Пробуйте, пишите
@set @E=1; /* @Echo Off cls Set NetPath="\\Server1\c$\users" "\\ts7\C$\Users" "\\Server2\c$\users" FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "@Tdate=%%d" Set "LogFile=Z:\%@Tdate:~0,14%.log" >"%LogFile%" 2>&1 (FOR %%p IN (%NetPath%) DO ( Call :ProtoDel "%%~p" )) rem FOR %%p IN (%NetPath%) DO ( rem Call :ProtoDel "%%~p" rem ) rem Pause GoTo :Eof :ProtoDel Echo ++++++++++ %Date% %Time% "%~1" Pushd "%~1" || ( Echo Wrong path "%~1" 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 "%~1\*" /a:d /b') do ( >nul 2>&1 del /s /q "%~1\%%i\AppData\Local\Google\Chrome\User Data\Default\Cache\*" >nul 2>&1 del /s /q "%~1\%%i\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.MSO\*" >nul 2>&1 del /s /q "%~1\%%i\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook\*" >nul 2>&1 del /s /q "%~1\%%i\AppData\Local\Microsoft\Windows\WER\*" >nul 2>&1 del /s /q "%~1\%%i\AppData\Local\Microsoft\Windows\Explorer\*" >nul 2>&1 del /s /q "%~1\%%i\AppData\Local\Temp\*" >nul 2>&1 del /s /q "%~1\%%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= " Call :SizeDiff 0 0 %FreeSpace1% %FreeSpace2% "Delta" Set "S0=%Space%%Size2%" &Set "S2=%Space%%FreeSpace2%" &Set "S1=%Space%%FreeSpace1%" &Set "SD=%Space%%Delta%" Echo %S0:~-15% byte =Total size Echo %S1:~-15% byte =Free space before releasing Echo %S2:~-15% byte =Free space after releasing Echo %SD:~-15% byte =Space released Call :Size 2 1 %Size1% "S0M" Call :Size 2 1 %FreeSpace2% "S2M" Call :Size 2 1 %FreeSpace1% "S1M" Call :SizeDiff 2 1 %FreeSpace1% %FreeSpace2% "Delta" 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 Call :Size 3 2 %Size1% "S0G" Call :Size 3 2 %FreeSpace2% "S2G" Call :Size 3 2 %FreeSpace1% "S1G" Call :SizeDiff 3 2 %FreeSpace1% %FreeSpace2% "Delta" 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 GoTo :Eof rem Перевод байтов в rem %1 =0 в байты rem %1 =1 в Кбайты rem %1 =2 в Мбайты rem %1 =3 в Гбайты rem %1 =4 в Тбайты rem %2 число знаков в дробной части rem %3 исходное число (байт) rem %4 "идентификатор" переменной которой присваивается результат :Size FOR /F "usebackq delims=" %%i IN (`Cscript //NoLogo /E:jscript "%~dpnx0" %1 %2 %3`) DO Set "%~4=%%i" GoTo :Eof rem Вычисление разности двух величин в байтах rem %1 =0 в байты rem %1 =1 в Кбайты rem %1 =2 в Мбайты rem %1 =3 в Гбайты rem %1 =4 в Тбайты rem %2 число знаков в дробной части rem %3 первое исходное число (байт) rem %4 второе исходное число (байт) rem %5 "идентификатор" переменной которой присваивается результат %2-%1 :SizeDiff FOR /F "usebackq delims=" %%i IN (`Cscript //NoLogo /E:jscript "%~dpnx0" %1 %2 %3 %4`) DO Set "%~5=%%i" GoTo :Eof */ var oArg = WScript.Arguments; var nArg=oArg.Count(); if (nArg>2) { var k=1; if (oArg(0)==1) k=1024; if (oArg(0)==2) k=1024*1024; if (oArg(0)==3) k=1024*1024*1024; if (oArg(0)==4) k=1024*1024*1024*1024; } if (nArg==3) { var i=oArg(2)/k; WScript.Echo(i.toFixed(oArg(1))); WScript.Quit(0); } if (nArg==4) { var i=(oArg(3)-oArg(2))/k; WScript.Echo(i.toFixed(oArg(1))); WScript.Quit(0); } WScript.Echo("Error!_Invalid_number_of_arguments!"); WScript.Quit(1); |
------- Последний раз редактировалось megaloman, 25-11-2018 в 21:52. Отправлено: 21:45, 25-11-2018 | #36 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Что то у меня с этими гибридами не складывается или что то не так с правами или не знаю
Но меня в принципе устроил последний вариант в cmd @Echo Off rem Удаляет (считает) и дописывает результаты в файл-лог Call \\fs\ts7.bat Call \\fs\ts8.bat Call \\fs\ts9.bat Call \\fs\ts10.bat Call \\fs\ts11.bat Call \\fs\ts12.bat rem отправляет файл-лог на почту wscript \\fs\mail.vbs rem ну и на всякий случай удаляет файл-лог Call \\fs\del.bat GoTo :Eof Так что спасибо большое Цитата palexa:
А пока только маленький результ о том что вроде считает точно ++++++++++ 25.11.2018 21:22:17,57 "\\ts9\c$\users" 207799447552 byte =Total size 95407751168 byte =Free space before releasing 95407751168 byte =Free space after releasing 0 byte =Space released 198173.0 Mbyte =Total size 90987.9 Mbyte =Free space after releasing 90987.9 Mbyte =Free space before releasing 0.0 Mbyte =Space released 193.53 Gbyte =Total size 88.86 Gbyte =Free space after releasing 88.86 Gbyte =Free space before releasing 0.00 Gbyte =Space released ++++++++++ 25.11.2018 21:22:19,72 "\\ts10\C$\Users" 429390819328 byte =Total size 62527762432 byte =Free space before releasing 62528274432 byte =Free space after releasing 512000 byte =Space released 409499.0 Mbyte =Total size 59631.6 Mbyte =Free space after releasing 59631.1 Mbyte =Free space before releasing 0.5 Mbyte =Space released 399.90 Gbyte =Total size 58.23 Gbyte =Free space after releasing 58.23 Gbyte =Free space before releasing 0.00 Gbyte =Space released ++++++++++ 25.11.2018 21:22:35,00 "\\ts11\c$\users" 207799447552 byte =Total size 64473739264 byte =Free space before releasing 64474161152 byte =Free space after releasing 421888 byte =Space released 198173.0 Mbyte =Total size 61487.4 Mbyte =Free space after releasing 61486.9 Mbyte =Free space before releasing 0.4 Mbyte =Space released 193.53 Gbyte =Total size 60.05 Gbyte =Free space after releasing 60.05 Gbyte =Free space before releasing 0.00 Gbyte =Space released |
|
Отправлено: 22:16, 25-11-2018 | #37 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать Цитата palexa:
|
|
------- Отправлено: 22:31, 25-11-2018 | #38 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 22:46, 25-11-2018 | #39 |
Ветеран Сообщения: 2709
|
Профиль | Отправить PM | Цитировать palexa, остаётся переписать vbs отправку на почту в js, чтобы объединить всё в одном файле. Но это я уже глумлюсь. Хотя в каждой шутке ....
|
------- Отправлено: 22:59, 25-11-2018 | #40 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Восстановление удалённых файлов побайтово - возможно ли? | moran1 | Накопители (SSD, HDD, USB Flash) | 2 | 30-04-2018 20:12 | |
Проводник показывает, что общий размер файлов на ДВД больше 200 гигов | Yewgeniy | Хочу все знать | 21 | 24-06-2015 11:08 | |
CMD/BAT - BAT файлом сравнить ряд файлов по размеру - если общий размер сходится удалить | invisibleon | Скриптовые языки администрирования Windows | 16 | 12-10-2012 08:55 | |
Debian/Ubuntu - Восстановление удалённых файлов на ext3 | El Scorpio | Общий по Linux | 7 | 19-11-2011 21:53 | |
Redhat/Fedora - Восстановление удалённых файлов в Red Hat 7. | sergey1234567 | Общий по Linux | 6 | 23-10-2007 09:49 |
|