2013-04-16 138 views
0

我是一个批处理脚本,它让我只计算某个子目录中的文件数量。脚本根据重复次目录计算子目录中的文件

我有一个目录树与各种项目(300 +),我只在寻找reocurring子目录中的文件的数量。

目前我正在使用mtee(小程序将cmd输出恢复为txt文件)和dir来计算子目录并在excel中执行手动搜索。

我想知道是否有一种方法可以在批处理脚本中执行此操作。

例如:每个项目都有目录提议和子目录禁止提议。我想从directorytree的基础上计算在不走的提案文件量

回答

0

阅读HELP FORHELP SET和尝试下面的代码

@echo off 
setlocal enabledelayedexpansion 
for /r /d %%d in (*) do (
    call :countf "%%d\nogo" 
) 
goto :eof 

:countf 
set count=0 
for %%f in ("%~1\*") do (
    set /a count+=1 
) 
echo %~1 has !count! files 
goto :eof 
+0

谢谢,但这是深深的1迪尔。多大的程度去决定多大的程度。有些有1个subdir可以通过,而其他可能有3个或4个 – user2285461

+0

哦,我明白了。编辑为'FOR'命令添加'/ R' –

0

试试这个:

@echo off &setlocal 
set "startfolder=x:\proposals\no-go proposals" 

set /a counter=0 
for /r "%startfolder%" %%i in (*) do set /a counter+=1 
echo %counter% files found in "no-go proposals" . 
0
for /f %%i in ('dir /s/b/a-d "c:\project"^|find /c "\no-go-dirname\"') do ECHO nogocount=%%i 

那么,这是批处理文件中的行。如果你从提示符下运行它,每个%%变得%

做的所有的文件名的目录列表,/a-d没有数据夹,/s包括子目录/b的基本形式,所以没有标题或拖车。用find筛选器这一点,并/c计数包含字符串“\no-go-dirname\”的台词和分配计数%%i

+0

关闭,但是这也会计算存在于“no-go proposals”文件夹的子目录中的文件。在管道到FIND/C之前,用一个构造良好的正则表达式向FINDSTR添加另一个管道可以正确地过滤结果。 – dbenham

+0

从OP的评论中,我认为这是必需的。是否有需要排除的no-go子目录的子目录中的文件?需要更多信息。 – Magoo

+0

同意,需要更多信息。我解释说有很多没有去的文件夹,并且OP只想要在各个不去的文件夹中的文件夹。您可以包含禁止文件夹的子目录。两者都可能是有效的。 – dbenham

0

很高兴看到这么多的选择,而所有这些工作无缝然而,这是我的版本。

dir /s/b /a-d | find /c /v "" 

在需要文件计数的目录中运行此命令将只返回计数。

相关问题