|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] получить размер каталога с подкаталогами |
|
CMD/BAT - [решено] получить размер каталога с подкаталогами
|
Старожил Сообщения: 362 |
Профиль | Отправить PM | Цитировать подскажите, возможно ли это и как?
|
|
------- Отправлено: 15:15, 27-11-2009 |
Ветеран Сообщения: 2183
|
Профиль | Отправить PM | Цитировать Не знаю, как посчитать сумму удаляемых файлов в корзинах. С остальным вроде бы разобрался, но как то коряво получилось.
|
Последний раз редактировалось sov44, 05-05-2011 в 07:20. Отправлено: 13:57, 01-04-2011 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2183
|
Профиль | Отправить PM | Цитировать помогите с циклом
@Echo Off SetLocal enabledelayedexpansion rem очистка корзины 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 ') Do ( If !flag!==1 Set dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0) ) Set kb=1024 Set /a mb=kb*kb, dirsizeMB=dirsize/mb, ostMB=dirsize%%mb*100/mb echo Очистка корзины - OK %dirsizeMB%,%ostMB% Мб pause |
Отправлено: 21:20, 01-04-2011 | #12 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @Echo Off SetLocal enabledelayedexpansion rem очистка корзины 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 dirsize=%%c If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0) ) Set /A Allsize +=dirsize ) ) Set kb=1024 Set /a mb=kb*kb, AllsizeMB=Allsize/mb, ostMB=Allsize%%mb*100/mb echo Очистка корзины - OK %AllsizeMB%,%ostMB% Мб Pause |
Отправлено: 21:50, 01-04-2011 | #13 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать Цитата sov44:
|
|
Отправлено: 22:54, 01-04-2011 | #14 |
Ветеран Сообщения: 2183
|
Профиль | Отправить PM | Цитировать С условием поиска не получается. Не могу прикрутить if exist. Опять сложный для меня цикл.
|
Отправлено: 23:21, 01-04-2011 | #15 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать sov44, не удаляйте посты! Мой пост 14 выглядит как-то глупо, не находите?
Цитата sov44:
|
|
Отправлено: 23:37, 01-04-2011 | #16 |
Ветеран Сообщения: 2183
|
Профиль | Отправить PM | Цитировать Цитата gora:
Цитата gora:
@Echo Off SetLocal enabledelayedexpansion set /A Cnt =0 for %%I in ("%AppData%\Opera\Opera\typed_history.xml") do set dirsize2=%%~zI for %%I in ("%AppData%\Opera\Opera\global_history.dat") do set dirsize3=%%~zI Set /A Cnt +=%dirsize2% Set /A Cnt +=%dirsize3% echo %Cnt% 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 pause |
||
Последний раз редактировалось sov44, 02-04-2011 в 00:11. Отправлено: 23:47, 01-04-2011 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата sov44:
@echo off setlocal enableextensions enabledelayedexpansion set /a iSum = 0 call :CalcAndDel "%AppData%\Opera\Opera\typed_history.xml" call :CalcAndDel "%AppData%\Opera\Opera\global_history.dat" echo Total size: %iSum% endlocal exit /b 0 rem ========================================================================== rem ========================================================================== :CalcAndDel set sFile=%~1 if defined sFile ( if exist "%sFile%" ( set /a iSum += %~z1 echo del /f /q "%sFile%" ) else ( echo Not found file [%sFile%] ) ) else ( echo Error call procedure: need argument ^<file^> ) exit /b 0 rem ========================================================================== |
|
Отправлено: 00:55, 02-04-2011 | #18 |
Ветеран Сообщения: 2183
|
Профиль | Отправить PM | Цитировать Сейчас делаю проверку по условию наличия программы. Если есть программа, то считается размер кеша и чистит его, если нет, то ничего не считает и выводит сообщение с прочерками. Столкнулся с непонятным:
При установленной Опере если без кавычек, кеш считается нормально. Если Оперу удалить, то появляются ошибки. Если поставить кавычки, то как и нужно при удалённой Опере появляется сообщение с прочерками, однако при установленной Опере опять ошибка. @Echo Off SetLocal enabledelayedexpansion Set Cnt=10 rem очистка временных файлов Opera if exist %programfiles%\Opera ( Set DirProg=%USERPROFILE%\Local Settings\Application Data\Opera\opera\cache For /F "skip=4 tokens=1-3" %%a IN ('Dir "%DirProg%" /-C /S ') Do ( If !flag!==1 Set dirsize1=%%c If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0) ) Set /A Cnt +=%dirsize1% PUSHD "%DirProg%" 2>Nul RD /S/Q "%DirProg%" POPD echo Очистка временных файлов Opera - OK %dirsize1% %Cnt% ) Else ( echo Очистка временных файлов Opera - -- ) Set kb=1024 Set /a mb=kb*kb, dirsizeMB=Cnt/mb, ostMB=Cnt%%mb*100/mb echo. echo. echo Очистка выполнена, всего удалено %dirsizeMB%,%ostMB% Мб pause ping 127.0.0.1 -n 8 > nul |
Отправлено: 12:14, 03-04-2011 | #19 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать sov44
Кавычки для путей с пробелами здесь обязательны. Переменные присваиваемые/изменяемые в блоке (скобки при проверке условия) далее в блоке нужно заключать в восклицательные знаки, а не в проценты, иначе их значение будет таким же как до входа в блок. Оперы у меня нет, проверял на кеше IE в win7 : @Echo Off SetLocal enabledelayedexpansion Set Cnt=10 rem очистка временных файлов Opera Set DirProg=c:\Users\gora\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5 if exist "%DirProg%" ( For /F "skip=4 tokens=1-3" %%a IN ('Dir "%DirProg%" /-C /S ') Do ( If !flag!==1 Set dirsize1=%%c If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0) ) Set /A Cnt +=dirsize1 PUSHD "%DirProg%" rem 2>Nul RD /S/Q "%DirProg%" POPD echo Очистка временных файлов Opera - OK !dirsize1! !Cnt! ) Else (echo Очистка временных файлов Opera - -- ) Set kb=1024 Set /a mb=kb*kb, dirsizeMB=Cnt/mb, ostMB=Cnt%%mb*100/mb echo. echo. echo Очистка выполнена, всего удалено %dirsizeMB%,%ostMB% Мб pause |
Последний раз редактировалось gora, 03-04-2011 в 13:19. Отправлено: 13:08, 03-04-2011 | #20 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|