Войти

Показать полную графическую версию : [решено] Определение количества подкаталогов


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

kiripanda
26-04-2013, 19:56
set /a Dirs=0
for /d %%d in (%Temp%\*) do set /a Dirs+=1
set Dirs

kelevara
26-04-2013, 20:50
kiripanda, пару вопросов возникло:

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

gora
26-04-2013, 21:12
@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
gora, благодарю, то что нужно!

Iska
27-04-2013, 08:39
Они хотели рекурсию — они её получили! ;)

dir /s /b /a:d | find.exe /v "" /c
Условиям ТЗ задачи:
нужно использовать For /D (такое вот странное требование) »
разумеется, не удовлетворяет.

kelevara
27-04-2013, 12:30
Iska, ага, в полный рост )))




© OSzone.net 2001-2012