|
Компьютерный форум 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 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать mwz,
Цитата:
Вроде бы отрабатывает (во первых, при отладке делал echo %Drive%, во вторых, отработал правильно wmic: картиночка от palexa это подтвердила ) Уж если и танцевать с бубном, то, наверное, в for и del лучше оставить полные сетевые пути. |
|
------- Отправлено: 01:02, 25-11-2018 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Для меня если честно подход админов какой то дикий
Я был системным админом, я вообще не заморачивался Для каждого были квоты Для браузера был размер установлен размер кеша cron в линуксе выполнял всё что надо и так далее, никто не мог выйти за рамки Но увы, пришёл в колхоз, должен играть по правилам админа |
Отправлено: 01:02, 25-11-2018 | #22 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать palexa, а уберите Вы мой for co всеми del и вставьте свой кусок из самого первого поста. Он, кстати, рабочий? Удаляет?
Если он рабочий, мои выкрутасы с определением места никак на него не повлияют |
------- Отправлено: 01:11, 25-11-2018 | #23 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
Завтра проверю, потому что устал и буквы расплываются |
|
Отправлено: 01:18, 25-11-2018 | #24 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата mwz:
|
|
Отправлено: 01:20, 25-11-2018 | #25 |
Crazy Сообщения: 1171
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
т.е. по сути до 2Gb, не более того... Добавлено: Понятно, что для обхода этой проблемы и откидываются шесть знаков. Но насколько это корректно? Учитывая, что из байтов мегабайты так не получить, ибо немного соответствие другое ... Цитата palexa:
|
||
------- Последний раз редактировалось YuS_2, 25-11-2018 в 13:15. Отправлено: 10:13, 25-11-2018 | #26 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
@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 "\\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\*" ) 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 Echo Size2=%Size2% FreeSpace2=%FreeSpace2% Echo Size1=%Size1% FreeSpace1=%FreeSpace1% Set "Size=%Size1:~0,-6%" &If "%Size%"=="" Set /A Size=0 Set "FreeSpace2=%FreeSpace2:~0,-6%" &If "%FreeSpace2%"=="" Set /A FreeSpace2=0 Set "FreeSpace1=%FreeSpace1:~0,-6%" &If "%FreeSpace1%"=="" Set /A FreeSpace1=0 Set /A Delta=%FreeSpace2%-%FreeSpace1% Echo Size=%Size% Released=%FreeSpace2%-%FreeSpace1%=%Delta% Pause GoTo :Eof |
|
Последний раз редактировалось palexa, 25-11-2018 в 12:39. Отправлено: 12:34, 25-11-2018 | #27 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать По предыдущему посту видно, что хлам удаляется и размер считается верно, попробовал на нескольких серверах, полёт нормальный
Эти результаты Echo Size2=%Size2% FreeSpace2=%FreeSpace2% Echo Size1=%Size1% FreeSpace1=%FreeSpace1% Можно сразу поделить на / 1024 / 1024 / 1024 и отправить в файл ? В ГБ как то нагляднее смотрится Числа ограничены 32 битами точности. Жаль, ну ладно |
Последний раз редактировалось palexa, 25-11-2018 в 15:45. Отправлено: 15:04, 25-11-2018 | #28 |
Ветеран Сообщения: 2708
|
Профиль | Отправить PM | Цитировать palexa,
Цитата palexa:
Пробуйте, пишите
@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 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Думаю с точностью мы не угадаем, так что лучше пусть пока будет в байтах, а там посмотрим
429390819328 byte =Total size 398 Gbyte =Total size 429390819328 / 1024 / 1024 /1024 = 399.901 Gbyte megaloman, Спасибо, за помощь. |
Отправлено: 16:25, 25-11-2018 | #30 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|