我正在寻找一个批处理脚本,让我只计算某个子目录中的文件数量。
我有一个包含各种项目(300+)的目录树,我只查找重新编目子目录中的文件数量。
目前我正在使用mtee(小程序将cmd输出还原为txt文件)和dir计算子目录并在excel中进行手动搜索。
我想知道是否有办法用批处理脚本执行此操作。
例如:每个项目都有目录提案和子目录禁止提议。我想根据directorytree
计算禁止提案中的文件数量答案 0 :(得分:0)
阅读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
答案 1 :(得分: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" .
答案 2 :(得分: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
答案 3 :(得分:0)
很高兴看到这么多替代品,而且所有这些都是无用的,但这是我的版本。
dir /s/b /a-d | find /c /v ""
在需要文件计数的目录中运行此命令将仅返回计数。