определить общий размер удалённых файлов скриптом
Привет
Есть скрипт на cmd, для удаления хлама из директорий пользователей Код:
for /f "delims=" %%i in ('dir "\\ts7\c$\users\*" /a:d /b') do ( Если это конечно возможно и не сильно повлияет на скорость выполнения скрипта |
Теоретически — можно. Практически — не имеет смысла сим заморачиваться. Это не WSH и не PoSH.
|
Приходится сначала смотреть место на диске, потом чистить и опять смотреть место, что бы сказать шефу сколько очистилось.
Жутко неудобно ну не имеет так не имеет |
palexa, дело в том, что нет в пакетных файлах простого и незатейливого способа для осуществления озвученного (в отличие от WSH/PoSH).
|
я понял это, спасибо
|
palexa,
Гибрид bat и js.
Код:
@set @E=1; /* третий вызов - калькулятор разности двух чисел Приходится привлекать для этого js, так как в cmd с большими числами работать затруднительно В приведенном примере перед первым вызовом копируется тестовый файл, после первого - его удаление после третего - разность второго и первого Если надо сетевой путь Код:
@set @E=1; /* |
Цитата:
|
Цитата:
2. какая-то регулярная профилактика - дело благое, но то, что вы делаете - профанация: кэши браузеров разрастутся обратно. В загрузках обычно лежит то, что нужно пользователю - вы бы ещё Рабочий стол "почистили". Хотя бы отбивку по времени сделайте. |
Код:
robocopy [какая-то пустая папка] [папка с мусором] /e /purge /log+:[файл журнала] |
Что то я сильно перемудрил с задачей
Ведь по сути мне надо знать, то что написано на диске до и после выполнения чистки, когда открываешь "Мой компьютер" А там написано до: 30ГБ свободно из 400ГБ После 50ГБ свободно из 400ГБ Как бы вот оно Код:
@echo off |
Цитата:
|
Оказалось для выполнения скрипта на серваке не хватает прав (даже от имени администратора)
Результат не показывает Бред какой то. Намутили что то Ладно, спасибо |
palexa,
Если размер измерять в миллионах байт а не мегабайтах, то вот чистый батник:
Код:
@Echo Off |
Спасибо, но думаю что то у меня с правами не так. Возможно не стоит этим заниматься.
Код:
Не удалось найти указанный путь. Код:
Size2=207799447552 FreeSpace2=63998238720 |
Вложений: 1
Цифры не понятные
|
palexa, 80685862912/1024/1024/1024=75.1Г
208197906432/1024/1024/1024=194Г, несовпадение в последней цифре - ошибки округления То есть объем определяется верно Надо разбираться с удалением. Может, в пути возникает имя с символами, не предусмотренные 866 кодировкой. Для отладки измените код перед каждым del >>с:\outfile.txt 2>&1 echo del .......... Приложите получившийся файл к сообщению |
возможно, но и удалять пока нечего. Я уже всё удалил :) Суббота, воскресенье
|
Цитата:
|
Вложений: 1
Скопировал, не удаляется
|
Цитата:
Я просто хочу немного автоматизировать свою работу Считаю место записываю в файл размер Удаляю кеш, дописываю в файл размер Считаю разницу до и после, дописываю в файл сколько удплил Отправляю файл на почту заинтересованным лицам |
mwz,
Цитата:
Вроде бы отрабатывает (во первых, при отладке делал echo %Drive%, во вторых, отработал правильно wmic: картиночка от palexa это подтвердила ) Уж если и танцевать с бубном, то, наверное, в for и del лучше оставить полные сетевые пути. |
Для меня если честно подход админов какой то дикий
Я был системным админом, я вообще не заморачивался Для каждого были квоты Для браузера был размер установлен размер кеша cron в линуксе выполнял всё что надо и так далее, никто не мог выйти за рамки Но увы, пришёл в колхоз, должен играть по правилам админа |
palexa, а уберите Вы мой for co всеми del и вставьте свой кусок из самого первого поста. Он, кстати, рабочий? Удаляет?
Если он рабочий, мои выкрутасы с определением места никак на него не повлияют |
Цитата:
Завтра проверю, потому что устал и буквы расплываются |
Цитата:
|
Цитата:
Код:
set /a res=2147483647+1 Добавлено: Понятно, что для обхода этой проблемы и откидываются шесть знаков. Но насколько это корректно? Учитывая, что из байтов мегабайты так не получить, ибо немного соответствие другое ... Цитата:
|
Вложений: 1
Цитата:
Код:
@Echo Off |
По предыдущему посту видно, что хлам удаляется и размер считается верно, попробовал на нескольких серверах, полёт нормальный
Эти результаты Echo Size2=%Size2% FreeSpace2=%FreeSpace2% Echo Size1=%Size1% FreeSpace1=%FreeSpace1% Можно сразу поделить на / 1024 / 1024 / 1024 и отправить в файл ? В ГБ как то нагляднее смотрится Числа ограничены 32 битами точности. Жаль, ну ладно |
palexa,
Цитата:
Пробуйте, пишите
Код:
@Echo Off |
Думаю с точностью мы не угадаем, так что лучше пусть пока будет в байтах, а там посмотрим
429390819328 byte =Total size 398 Gbyte =Total size 429390819328 / 1024 / 1024 /1024 = 399.901 Gbyte megaloman, Спасибо, за помощь. |
palexa, Я не гадаю с точностью.
1000*1000=1000000 1024*1024=1048576 То есть отличие составляет ~5% (то есть 1/20 часть от результата) В CMD нет дробей. Поэтому, если я из миллионов байт получаю мегабайты путём: млн-млн/20 Погрешность результата составляет 0.2% Покажите, как отработал вывод в моём последнем варианте. Интересно посравнивать числа при ручных подсчетах и то, что я выдаю |
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 |
Вложений: 1
Скрин после очистки
|
Вот скрин на всякий случай до и после
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 |
Если сервер не найден, то пишет
Сетевой путь не найден. Wrong path "\\ts7\C$\Users" Press any key to continue . . . Как этого избежать, что бы в этом случае батник показал инфу и закрылся Если я правильно понял закоментровать Echo Wrong path "%NetPath%" rem Pause (а ещё лучше записал эту инфу в указанный файл) |
palexa, Вы как-то помянули несколько серверов. Учел. Можете прописать несколько серверов (или один).
Кроме того, решил вернуться к гибриду cmd+js. На js написан калькулятор пересчета. Получаем правильные числа. Показал возможность формирования log-файла. Сейчас в имени датавремя запуска файла Z:\ГГГГММДДччммсс.log (пропишите свой диск). Можете придумать другое имя. Закомментируйте вывод результатов, которые Вам не интересны. Пробуйте, пишите
Код:
@set @E=1; /* |
Что то у меня с этими гибридами не складывается или что то не так с правами или не знаю
Но меня в принципе устроил последний вариант в cmd Код:
@Echo Off Так что спасибо большое Цитата:
А пока только маленький результ о том что вроде считает точно Код:
++++++++++ 25.11.2018 21:22:17,57 "\\ts9\c$\users" |
Цитата:
|
Цитата:
|
palexa, остаётся переписать vbs отправку на почту в js, чтобы объединить всё в одном файле. Но это я уже глумлюсь. Хотя в каждой шутке ....
|
megaloman, коллега palexa таки вынудил Вас сварить кашу из топора ;).
|
Цитата:
По сути это же удобно Кликнул раз, пошёл покурить, пришёл и отчёт на почте у всех заинтересованых |
Iska, мой первый начальник вдолбил мне в голову: инженерная мысль не спит 24 часа в сутки, инженер всегда найдёт чем заняться.
|
Время: 10:19. |
Время: 10:19.
© OSzone.net 2001-