|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] получить размер каталога с подкаталогами |
|
|
CMD/BAT - [решено] получить размер каталога с подкаталогами
|
|
Старожил Сообщения: 362 |
подскажите, возможно ли это и как?
|
|
|
------- Отправлено: 15:15, 27-11-2009 |
|
Сообщения: 53586
|
Профиль | Отправить PM | Цитировать Команда Diruse (Diruse Examples).
Файл Diruse.exe можно взять из установочного CD \Support\Tools\suptools.msi (support.cab). |
|
Отправлено: 15:24, 27-11-2009 | #2 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 15:34, 27-11-2009 | #3 |
|
Старожил Сообщения: 362
|
Профиль | Отправить PM | Цитировать gora, Вариант хороший, но не мой случай, у меня задан набор каталогов, но способ оригинальный
![]() Petya V4sechkin, Большое спасибо за подсказку. |
|
------- Отправлено: 15:54, 27-11-2009 | #4 |
|
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать gora, Большое спасибо. Немного добавил и получил еще и кол-во файлов:
@Echo Off
SetLocal enabledelayedexpansion
Set DirProg=c:\musor
For /F "skip=4 tokens=1-3" %%a IN ('Dir "%DirProg%" /-C /S /A:-D^|find /I "файлов"') Do (
If !flag!==1 Set dirsize=%%c
If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0)
set filecnt=%%a
)
Echo Размер папки = !dirsize!
Echo Количество файлов = !filecnt!
Pause>nul
|
|
|
Отправлено: 16:36, 05-11-2010 | #5 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Oceanel:
|
|
|
Отправлено: 16:32, 02-02-2011 | #6 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата XFNeo:
@Echo Off
SetLocal enabledelayedexpansion
Set DirProg=c:\Documents and Settings
For /F "skip=4 tokens=1-3" %%a IN ('Dir "%DirProg%" /-C /S /A:-D') Do (
If !flag!==1 Set dirsize=%%c
If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0)
)
Set /a dirsizeT=dirsize+0
If Not "%dirsizeT%"=="%dirsize%" Echo Число %dirsize% слишком велико для обработки в CMD&Pause>nul&Exit
Set kb=1024
Set /a mb=kb*kb, gb=kb*kb*kb, dirsizeKB=dirsize/kb, ostKB=dirsize%%kb*100/kb, dirsizeMB=dirsize/mb, ostMB=dirsize%%mb*100/mb
Rem Set /a dirsizeGB=dirsize/gb, ostGB=dirsize%%gb*10/gb
Echo %dirsize% Б
Echo %dirsizeKB%,%ostKB% кБ
Echo %dirsizeMB%,%ostMB% МБ
Rem Echo %dirsizeGB%,%ostGB% ГБ
Pause>nul
|
|
|
Отправлено: 13:20, 03-02-2011 | #7 |
|
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 14:15, 03-02-2011 | #8 |
|
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата XFNeo:
Можете запустить эту команду отдельно и увидите ее вывод примерно такой: Том в устройстве C не имеет метки.
Серийный номер тома: 74B4-362D
Содержимое папки c:\Musor
16.01.2010 23:50 3238 7z_SFX.ico
16.11.2010 10:34 5035 install_button.bat
22.01.2011 09:02 68608 nircmdc.exe
17.10.2008 14:54 2048 tasktool.exe
4 файлов 78929 байт
Содержимое папки c:\Musor\ADD_
21.01.2011 15:55 4419 ConfigSetupButton.txt
22.06.2010 14:52 670 Copyright.res
13.05.2010 22:44 68416 RC.exe
13.05.2010 22:44 331080 RcDll.dll
24.03.2002 20:23 881664 ResHacker.exe
20.01.2011 15:25 873 Version.rc
6 файлов 1287122 байт
Содержимое папки c:\Musor\lang
02.02.2011 08:43 4759 1033.ini
02.02.2011 18:40 4557 1049.ini
02.02.2011 11:11 4597 1058.ini
3 файлов 13913 байт
Содержимое папки c:\Musor\SFX Tool
07.01.2011 10:06 113152 7zsd_All.sfx
07.01.2011 10:06 92672 7zsd_Deflate.sfx
07.01.2011 10:06 97792 7zsd_LZMA.sfx
07.01.2011 10:06 100352 7zsd_LZMA2.sfx
07.01.2011 10:06 135680 7zsd_LZMA_Dialogs.sfx
07.01.2011 10:06 92160 7zsd_PPMd.sfx
21.01.2011 16:09 308620 Button.chm
26.06.2007 19:22 53 Desktop.ini
02.02.2011 10:58 2270 Settings.ini.new
9 файлов 942751 байт
Всего файлов:
22 файлов 2322715 байт
0 папок 8314302464 байт свободно
skip=4 пропускаем первые 4 строки, т.к., в них не может быть нужной информации tokens=1-3 каждую строку разбиваем на части по разделителям (они не определены, значит используются по умолчанию символы пробела и табуляции) и первые три части строки записываем в переменные (%%a, %%b и %%c). В теле цикла ищем нужную строку, содержащую общий размер директории (это вторая снизу строка вывода). Т.к. переменная flag не равна 1 то переходим к следующей строке батника и проверяем есть ли в переменной %%b нужное слово файлов: с двоеточием в конце! Это слово появится только когда цикл дойдет до третьей с конца строки. В этом случае переменной flag будет присвоено значение 1. При обработке следующей строки вывода (предпоследняя строка) команда сработает и запишет размер директории из %%c в переменную dirsize. После этого строка батника снова сбросит переменную flag в 0, дабы не перезаписывать переменную dirsize при обработке последней строки вывода. |
|
|
Отправлено: 15:58, 03-02-2011 | #9 |
|
Ветеран Сообщения: 2204
|
Профиль | Отправить PM | Цитировать Есть скрипт для удаления временных файлов. Подскажите, как его дополнить, чтобы получить общую сумму удалённых файлов, в мегабайтах до десятых.
@Echo Off color 1a mode con: cols=57 lines=16 echo. echo ----------------------------------------------------- echo “„Ђ‹…Ќ?… ‚ђ…Њ…ЌЌ›• ”Ђ‰‹Ћ‚ echo ----------------------------------------------------- echo. echo. PUSHD "%WinDir%\TEMP" 2>Nul RD /S/Q "%WinDir%\TEMP" POPD echo ЋзЁбвЄ* Ї*ЇЄЁ ’emp - OK set Opera_temp=%USERPROFILE%\Local Settings\Application Data\Opera\opera\cache PUSHD "%Opera_temp%" 2>Nul RD /S/Q "%Opera_temp%" POPD echo ЋзЁбвЄ* ўаҐ¬Ґ**ле д*©«®ў Opera - OK if exist "%AppData%\Opera\Opera\typed_history.xml" del "%AppData%\Opera\Opera\typed_history.xml" if exist "%AppData%\Opera\Opera\global_history.dat" del "%AppData%\Opera\Opera\global_history.dat" echo ЋзЁбвЄ* Ёбв®аЁЁ ў Opera - OK set IE_temp=%USERPROFILE%\Local Settings\Temporary Internet Files PUSHD "%IE_temp%" 2>Nul RD /S/Q "%IE_temp%" POPD echo ЋзЁбвЄ* ўаҐ¬Ґ**ле д*©«®ў Internet Explorer - OK 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 echo. echo. echo ЋзЁбвЄ* ўлЇ®«*Ґ**, г¤*«Ґ*® ее,е ЊЎ. ping 127.0.0.1 -n 8 > nul |
|
Отправлено: 10:32, 01-04-2011 | #10 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| 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 | |
|