CMD/BAT - [решено] Размер каталога

Аватара пользователя
sov44

Re: CMD/BAT - [решено] Размер каталога

Сообщение sov44 »

ferget, мне интересней понять cmd.
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Размер каталога

Сообщение Iska »

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





Кстати, под приведённую Вами[/i] маску попадают не все потребные папки.
Аватара пользователя
sov44

Re: CMD/BAT - [решено] Размер каталога

Сообщение sov44 »

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

За WSH спасибо, положу в копилку Изображение

п.с. подскажите аналог

Код:

Код: Выделить всё

:: бла-бла

в WSH, VBS
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Размер каталога

Сообщение Iska »

sov44, некорректным меткам в пакетном файле аналога в WSH нет Изображение.
Аватара пользователя
sov44

Re: CMD/BAT - [решено] Размер каталога

Сообщение sov44 »

Цитата Iska:



некорректным меткам в пакетном файле аналога в WSH нет
CMD/BAT - [решено] Размер каталога




имелось ввиду не метка, а комментарий (или как там его.. Изображение)

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

Re: CMD/BAT - [решено] Размер каталога

Сообщение Iska »

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



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




Цитата sov44:



Как насчёт варианта решения задачи пост 9 ?
CMD/BAT - [решено] Размер каталога




Свой вариант я озвучил выше.



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

Re: CMD/BAT - [решено] Размер каталога

Сообщение gora »

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
CMD/BAT - [решено] Размер каталога




Согласен, но "Привычка - вторая натура" Изображение
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Размер каталога

Сообщение Iska »

Цитата gora:



Согласен, но "Привычка - вторая натура"
CMD/BAT - [решено] Размер каталога




Угу. Даже, вон
Colorer
научили отображать «::» как комментарий, хотя это и неправильно.
Аватара пользователя
gora

Re: CMD/BAT - [решено] Размер каталога

Сообщение gora »

Цитата Iska:



Даже, вон Colorer научили отображать «::» как комментарий
CMD/BAT - [решено] Размер каталога




Это не я, это коллега AZJIO, хотя мне
CMD/BAT - Converter CMD to BBcode
нравится, т.к., я использовал «::», пусть и неправильно, но умышленно, как комментарий.
Аватара пользователя
sov44

Re: CMD/BAT - [решено] Размер каталога

Сообщение sov44 »

Необходимо исключить из расчёта динамический файл 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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»