Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Размер каталога

Ответить
Настройки темы
CMD/BAT - [решено] Размер каталога

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день, форумчане, помогите пожалуйста со скриптом! Есть скрипт (так же с форума ), который подсчитывает размер определенной папки:

PHP код: Выделить весь код

@Echo Off

chcp 1251
SetLocal enabledelayedexpansion
Set DirProg
=F:PROB4_razmer directoriitemp

For /"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
Pause>nul 

Помогите пожалуйста сделать условие: Если каталог имеет размер больше 1мб, то вызывается vbs скрипт, иначе просто закрытие!
Пробовал писать нечто подобное (If "dirsize" GEQ 1048576 START /WAIT CScript... else), но чет я не силен в шеле... (
Заранее Спасибо!

Отправлено: 08:34, 22-02-2012

 

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Цитата sov44:
Необходимо исключить из расчёта динамический файл »
В этом цикле имена не выводятся командой Dir и "исключить" таким способом не получится.
Будет проще сосчитать размер всей папки и вычесть из него размер этого(этих) файла(файлов). Размер файлов можно определить любым известным способом.
Например:
Код: Выделить весь код
For /R "%windir%\Prefetch" %%a In (CMD.EXE-*.pf) Do Echo %%~za

Последний раз редактировалось gora, 17-04-2012 в 15:19.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:14, 17-04-2012 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 2205
Благодарности: 730

Профиль | Отправить PM | Цитировать


Есть две переменные содержащие вычисляемые размеры объектов. Размеры могут превышать 2 ГБ.
Нужно их перевести в МБ с точностью до сотых и поместить в новые переменные.
Пример:
num1=4000000000
num2=6000000000

num1MB=3814,69
num2MB=5722,04

Последний раз редактировалось sov44, 06-03-2013 в 19:48. Причина: правка ТЗ


Отправлено: 21:26, 05-03-2013 | #22


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


C применением скрипта, который Вы удалили из поста.
Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion

set num1=4000000000
set num2=6000000000

Call :_convert %num1% num1MB
Call :_convert %num2% num2MB

echo %num1%	%num1MB% Мб
echo %num2%	%num2MB% Мб
pause
exit /b

:_convert
Set Cnt=%1
Call:UDIV2 %Cnt% dirsizeMB  20
Call:UMUL2 %dirsizeMB% CntT 20
Call:SUM %Cnt% -%CntT% ost

Set/a $.mb=(%ost%*100)/(1024*1024)
Set "$.mb=0%$.mb%"& Set "$.mb=!$.mb:~-2!"
Set %2=%dirsizeMB%,%$.mb%
GoTo :EOF

:SUM  %uint%  %uint%  %VarRes%
::----------------------------
SETLOCAL EnableDelayedExpansion
(set "$a=%~1"& set "$b=%~2"
 if "!$a:~,1!"=="-" (set "$az=-"&set "$a=!$a:-=!") else set "$az="
 if "!$b:~,1!"=="-" (set "$bz=-"&set "$b=!$b:-=!") else set "$bz="
 for /f "tokens=* delims=0" %%i in ("!$a:~-9!") do set/a "$al=%%i+0"&set/a "$ah=!$a:~,-9!+0"
 for /f "tokens=* delims=0" %%i in ("!$b:~-9!") do set/a "$bl=%%i+0"&set/a "$bh=!$b:~,-9!+0"

 set/a "$sl=(!$az!!$al!)+(!$bz!!$bl!)"&set/a $p=!$sl:~,-9!+0&set/a "$sl=!$sl!-(!$p!000000000)"
 set/a "$sh=(!$az!!$ah!)+(!$bz!!$bh!)+(!$p!+0)"
 if !$sh! gtr 0 if !$sl! lss 0 set/a $sh-=1& set/a "$sl=(1000000000+!$sl!)"
 if !$sh! lss 0 if !$sl! gtr 0 set/a $sh+=1& set/a "$sl=(!$sl!-1000000000)"
 for /f "delims=0123456789" %%i in ("!$sh!!$sl!") do set "$z=%%i"
 if !$sh! equ 0 if !$sl! equ 0 set "$z=0"
 set "$sl=00000000!$sl:-=!"
)
 for /f "tokens=* delims=0" %%i in ("!$sh:-=!!$sl:~-9!") do ENDLOCAL& set "%~3=%$z%%%i"
GoTo:EOF

:UDIV2  %uint% %VarRes% %uint%
::----------------------------
 SETLOCAL EnableDelayedExpansion
(set "$a=%~1"& set/a "$c=%~3+0"& if !$c! equ 0 set "$c=1"
 for /f "tokens=* delims=0" %%i in ("!$a:~-9!") do set/a "$al=%%i+0,$ah=!$a:~,-9!+0"
 for /l %%i in (1,1,!$c!) do (
   set/a "$p=$ah&1,$ah>>=1,$al>>=1"
   if !$p!==1 set/a $al=$al+500000000)
 set "$z="& if !$ah! equ 0 if !$al! equ 0 set "$z=0"
)
 for /f "tokens=* delims=0" %%i in ("!$ah!!$al!") do ENDLOCAL& set "%~2=%$z%%%i"
GoTo:EOF

:UMUL2  %uint% %VarRes% %uint%
::----------------------------
(SETLOCAL EnableDelayedExpansion
 set %~2=%~1& set/a "$c=%~3+0"& if !$c! equ 0 set "$c=1"
 for /l %%i in (1,1,!$c!) do Call:SUM !%~2! !%~2! %~2
 for /f %%i in ("!%~2!") do ENDLOCAL& set "%~2=%%i"
)
GoTo:EOF
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:59, 06-03-2013 | #23



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Размер каталога

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] получить размер каталога с подкаталогами Loki3D Скриптовые языки администрирования Windows 64 12-12-2014 15:14
PowerShell - [решено] Удаление каталога Negativ Скриптовые языки администрирования Windows 2 25-01-2011 16:13
Интерфейс - [решено] Изменился размер кнопки "свернуть все окна". Как вернуть прежний размер? norok Microsoft Windows 7 6 01-11-2010 22:59
Прочие - Создание каталога CD-дисков fooms Программное обеспечение Windows 9 02-12-2008 00:17
Вставка каталога страниц Rudy Вебмастеру 9 30-10-2005 15:33




 
Переход