我正在寻找一个批处理脚本,让我只计算某个子目录中的文件数量。
我有一个包含各种项目(300+)的目录树,我只是在重复出现的子目录中寻找文件的数量。
目前我正在使用 mtee(将 cmd 输出恢复为 txt 文件的小程序)和 dir 来计算子目录并在 excel 中进行手动搜索。
我想知道是否有办法用批处理脚本来做到这一点。
例如:每个项目都有目录提案和子目录禁止提案。我想从目录树的基础上计算 no-go 提案中的文件数量
我正在寻找一个批处理脚本,让我只计算某个子目录中的文件数量。
我有一个包含各种项目(300+)的目录树,我只是在重复出现的子目录中寻找文件的数量。
目前我正在使用 mtee(将 cmd 输出恢复为 txt 文件的小程序)和 dir 来计算子目录并在 excel 中进行手动搜索。
我想知道是否有办法用批处理脚本来做到这一点。
例如:每个项目都有目录提案和子目录禁止提案。我想从目录树的基础上计算 no-go 提案中的文件数量
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
尝试这个:
@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" .
阅读HELP FOR
并HELP 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
很高兴看到这么多替代品,而且它们都可以无缝工作,但这是我的版本。
dir /s/b /a-d | find /c /v ""
在需要文件计数的目录中运行此命令将仅返回计数。