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

Компьютерный форум 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

 

Ветеран


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

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


ferget, мне интересней понять cmd.

Отправлено: 12:57, 13-04-2012 | #11



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

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


Ветеран


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

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


sov44, и напрасно: в WSH объект Folder имеет свойство «.Size»:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim objRegExp
Dim objFolder


Set objRegExp = WScript.CreateObject("VBScript.RegExp")

With objRegExp
	.IgnoreCase = True
	.Pattern = "^\$NtUninstall.+\$$"
End With

With WScript.CreateObject("Scripting.FileSystemObject")
	For Each objFolder In .GetSpecialFolder(0).SubFolders
		If objRegExp.Test(objFolder.Name) Then
			WScript.Echo objFolder.Name, objFolder.Size
		End If
	Next
End With

Set objRegExp = Nothing

WScript.Quit 0

Кстати, под приведённую Вами маску попадают не все потребные папки.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:00, 13-04-2012 | #12


Ветеран


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

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


Iska, расчёт и удаление скрытых папок - это дополнение одного большого скрипта в cmd.
За WSH спасибо, положу в копилку
п.с. подскажите аналог
Код: Выделить весь код
:: бла-бла
в WSH, VBS

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


Отправлено: 16:50, 13-04-2012 | #13


Ветеран


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

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


sov44, некорректным меткам в пакетном файле аналога в WSH нет .

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


Ветеран


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

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


Цитата Iska:
некорректным меткам в пакетном файле аналога в WSH нет »
имелось ввиду не метка, а комментарий (или как там его.. )

Как насчёт варианта решения задачи пост 9 ?

Отправлено: 20:44, 13-04-2012 | #15


Ветеран


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

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


sov44, комментарии в пакетном файле оформляются единственным способом — при помощи команды Rem.

На WSH сие выглядит следующим образом: VBScript — Rem Statement; JScript — Comment Statements (Windows Scripting - JScript).

Цитата sov44:
Как насчёт варианта решения задачи пост 9 ? »
Свой вариант я озвучил выше.

Язык — всего лишь инструмент. Какой окажется наиболее приемлем для решения задачи — тот и берётся.

Отправлено: 00:53, 14-04-2012 | #16


Аватара для gora

Ушёл из жизни


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

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


sov44, попробуйте так:
Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
:: Папка для поиска
Set folder=e:\Temp 1\upd
Set Cnt=0
:: Для папок подпадающих под маску
For /F "tokens=*" %%a In ('Dir "%folder%" /ADH /B ^| FindStr "$NtUninstallKB[0-9]*"') Do Call :_sizeDir "%folder%\%%a"
:: Для папок НЕ подпадающих под маску
For %%a In ($hf_mig$ $abde_rew$) Do Call :_sizeDir "%folder%\%%a"
Pause>Nul

:_sizeDir
Set dirsize=0
For /F "skip=4 tokens=1-3" %%a IN ('Dir "%~1" /-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 /A Cnt +=dirsize
Echo "%~1"
Echo DirSize=%dirsize%	TotalSize=%Cnt%
Echo.
GoTo :EOF
Цитата Iska:
комментарии в пакетном файле оформляются единственным способом — при помощи команды Rem »
Согласен, но "Привычка - вторая натура"
Это сообщение посчитали полезным следующие участники:

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


Ветеран


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

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


Цитата gora:
Согласен, но "Привычка - вторая натура" »
Угу. Даже, вон Colorer научили отображать «::» как комментарий, хотя это и неправильно.

Отправлено: 12:58, 14-04-2012 | #18


Аватара для gora

Ушёл из жизни


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

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


Цитата Iska:
Даже, вон Colorer научили отображать «::» как комментарий »
Это не я, это коллега AZJIO, хотя мне это нравится, т.к., я использовал «::», пусть и неправильно, но умышленно, как комментарий.

Отправлено: 13:11, 14-04-2012 | #19


Ветеран


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

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


Необходимо исключить из расчёта динамический файл CMD.EXE-087B4001.pf
Возникла сложность с его обозначением.
Код: Выделить весь код
For /F "skip=4 tokens=1-3" %%a IN ('Dir "%windir%\Prefetch" /-C /S /A:-D 2^>nul') Do (
if not exist CMD.EXE*********.pf (
    If !flag!==1 Set dirsize=%%c
    If "%%b"=="файлов:" (Set flag=1) Else (Set flag=0)
))
Set /A Cnt +=dirsize

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



Компьютерный форум 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




 
Переход