0

我正在寻找一个批处理脚本,让我只计算某个子目录中的文件数量。

我有一个包含各种项目(300+)的目录树,我只是在重复出现的子目录中寻找文件的数量。

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

我想知道是否有办法用批处理脚本来做到这一点。

例如:每个项目都有目录提案和子目录禁止提案。我想从目录树的基础上计算 no-go 提案中的文件数量

4

4 回答 4

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

于 2013-04-16T15:18:44.840 回答
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" .
于 2013-04-16T09:26:13.970 回答
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
于 2013-04-16T08:24:21.860 回答
0

很高兴看到这么多替代品,而且它们都可以无缝工作,但这是我的版本。

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

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

于 2013-05-31T01:02:13.843 回答