Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Определение количества подкаталогов (http://forum.oszone.net/showthread.php?t=259451)

kelevara 26-04-2013 15:08 2139993

Определение количества подкаталогов
 
Добрый день!
Необходимо посчитать количество подкаталогов в заданной папке и ее подкаталогах. При этом нужно использовать For /D (такое вот странное требование). Каким образом? Или части Do записать условие IF, которое будет проверять, является ли текущий каталог самым "нижним"?

kiripanda 26-04-2013 19:56 2140175

Код:

set /a Dirs=0
for /d %%d in (%Temp%\*) do set /a Dirs+=1
set Dirs


kelevara 26-04-2013 20:50 2140182

kiripanda, пару вопросов возникло:

1. директория, в которой осуществляется поиск, задается перед for /d с помощью переменной Temp, правильно?
2. но ведь данный скрипт не будет подсчитывать количество вложенных подкаталогов?

gora 26-04-2013 21:12 2140192

Код:

@Echo Off
Set MyDir=e:\Temp 1\08

Call :_subdir "%MyDir%"
Echo.
Echo All subdirs = %SubDirs%
Pause>Nul
Exit


:_subdir
For /D %%s In ("%~1\*") Do (
        Set /a SubDirs +=1
        Echo %%s
        Call :_subdir "%%~s"
)
GoTo :EOF


kelevara 26-04-2013 21:23 2140206

gora, благодарю, то что нужно!

Iska 27-04-2013 08:39 2140341

Они хотели рекурсию — они её получили! ;)

Код:

dir /s /b /a:d | find.exe /v "" /c
Условиям ТЗ задачи:
Цитата:

Цитата kelevara
нужно использовать For /D (такое вот странное требование) »

разумеется, не удовлетворяет.

kelevara 27-04-2013 12:30 2140410

Iska, ага, в полный рост )))


Время: 00:27.

Время: 00:27.
© OSzone.net 2001-