|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] получить размер каталога с подкаталогами |
|
CMD/BAT - [решено] получить размер каталога с подкаталогами
|
Старожил Сообщения: 362 |
Профиль | Отправить PM | Цитировать подскажите, возможно ли это и как?
|
|
------- Отправлено: 15:15, 27-11-2009 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Из письма в ПМ:
Цитата sov44:
Во-первых, у Вас в приложенном к письму пакетном файле две одинаковых метки «:CalcAndDel». Во-вторых, есть лишние «endlocal», которые могут вести к некорректным подсчётам (не проверялось). В-третьих, пакетный файл зацикливается оттого, что Вы сами так слепили его: Можно попробовать так: |
|
Отправлено: 07:51, 04-04-2011 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2182
|
Профиль | Отправить PM | Цитировать упс.. действительно проглядел m1
Iska, нужна такая структура, чтобы каждый цикл обрабатывался самостоятельно. Иными словами два независимых скрипта в одном теле. (между этими скриптами планируется вставить другие скрипты) Изменил goto m1 на goto m2, цикл вышел из бесконечности. Надеюсь это решит проблему |
Последний раз редактировалось sov44, 04-04-2011 в 09:28. Отправлено: 09:05, 04-04-2011 | #22 |
Ветеран Сообщения: 2182
|
Профиль | Отправить PM | Цитировать gora, поясните пожалуйста часть скрипта (пост 7), какой смысл прибавления к dirsize нуля и дальнейшего сравнения %dirsizeT%" и %dirsize%? Какие есть ограничения по размеру обработки командного файла?
|
Отправлено: 15:17, 07-04-2011 | #23 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата sov44:
2 Максимальное значение число для арифметики в CMD = 2^31 - 1 (2147483647) |
|
Последний раз редактировалось gora, 29-04-2011 в 10:53. Причина: исправил число Отправлено: 16:21, 07-04-2011 | #24 |
Ветеран Сообщения: 2182
|
Профиль | Отправить 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 |
Ветеран Сообщения: 2182
|
Профиль | Отправить PM | Цитировать Цитата sov44:
|
|
Отправлено: 10:39, 29-04-2011 | #26 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата sov44:
Вы пытаетесь проверить результат сложения двух и более чисел. В этом случае каждое из слагаемых может быть меньше 2147483647, но сумма уже может быть больше указанного числа. При этом число становится отрицательным. Можно попробовать слагаемые проверять и сразу превращать в КБ или МБ и уже затем складывать. Точность конечно снижается, но другого варианта счета в CMD таких больших чисел я не знаю. |
|
Отправлено: 11:14, 29-04-2011 | #27 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата gora:
|
|
Отправлено: 09:30, 30-04-2011 | #28 |
Ветеран Сообщения: 2182
|
Профиль | Отправить PM | Цитировать amel27, покажите,как отредактировать скрипт поста 25 с учетом этой инфы?
|
Последний раз редактировалось sov44, 02-05-2011 в 23:03. Отправлено: 16:12, 30-04-2011 | #29 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать sov44, не совсем понимаю, зачем нужна такая точность, по мне так вполне хватило бы обычного округления до Mb. Разве только из спортивного интереса. Для заявленных в скрипте требований понадобится аж три дополнительных ф-ции:
- сложения двойных чисел (для суммирования объема по всем дискам); - последовательного деления на 2 (для преобразования byte -> Kb -> Mb); - последовательного умножения на 2 (для вычисления остатка при округлении) P.S. подсвеченную строку отредактировал, т.к. не понял её смысл в оригинале |
Последний раз редактировалось amel27, 05-05-2011 в 13:57. Причина: ошибка Отправлено: 12:01, 03-05-2011 | #30 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Копирование самого позднего по дате создания каталога. | SANIOK_AV | Скриптовые языки администрирования Windows | 2 | 04-12-2009 17:29 | |
Разное - [решено] удаление каталога с подкаталогами | lud | Microsoft Windows 2000/XP | 2 | 02-07-2009 15:57 | |
CMD/BAT - [решено] Поиск каталога и копирование всего его содержимого | desk | Скриптовые языки администрирования Windows | 4 | 01-07-2009 14:28 | |
Интерфейс - [решено] цвет шрифта каталога | tref2me | Microsoft Windows 2000/XP | 4 | 07-06-2008 07:43 | |
[решено] Идентификация каталога c помощью shell | programmist72 | Общий по Linux | 14 | 13-11-2006 10:06 |
|