2014-02-06 2 views
0

Я пытаюсь закодировать командный файл, который будет подсчитывать количество файлов и количество каталогов в текущем каталоге.Количество файлов и папок внутри определенного каталога

for /r %%i in (dir) do (
    if exist %%i\* (
     set /a directories=directories+1 
    ) else (
     set /a files=files+1 
    ) 
) 
echo directories 
echo files 

Это структура каталога, в котором я пытаюсь запустить этот командный файл:

---directory 
    ---file1 
---file2 

И это всегда возвращает «2 файлы» и «0 каталогов».

+0

Вы хотите включить файлы и директории в подкаталоги? – Monacraft

ответ

0

Попробуйте это:

@echo off 
set total=0 
set dir=0 
set files=0 
for /f %a in ('dir /b') do (set /a total+=1) 
for /f %a in ('dir /b /a:d') do (set /a dir+=1) 
set /a files=%total%-%dir% 

Echo There are %dir% direcotries and %files% files in the current directory alone 

Это не будет рассчитывать на подкаталоги, а также, вы будете использовать for /r и for /r /d для этого.

Надеюсь, это помогло, Мона.

0

for /r будет рекурсивно искать директорию (по умолчанию он будет искать в текущем каталоге) - * будет возвращать все файлы в дереве каталогов и . вернет все каталоги в дереве.

@echo off 

set files= 
set directories= 

for /r %%a in (*) do set /a files+=1 
for /r %%b in (.) do set /a directories+=1 

echo files:  %files% 
echo directories: %directories% 

Посмотрите на для команды странице справки -

h:\>for /? 

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters] 

    Walks the directory tree rooted at [drive:]path, executing the FOR 
    statement in each directory of the tree. If no directory 
    specification is specified after /R then the current directory is 
    assumed. If set is just a single period (.) character then it 
    will just enumerate the directory tree. 
+0

Я не уверен, хочет ли он каталогов в подпапках, так как он избегал упоминания об этом. – Monacraft

+0

@Monacraft, я предположил, что он действительно хочет подкаталоги, так как он собирает «подфайлы» (не мог придумать лучшего слова). – unclemeat

Смежные вопросы