如何计算文件夹中的文件

时间:2014-01-12 10:40:19

标签: cmd

当我使用cmd计算文件夹中的文件时,以下代码集会给出不同的结果。你能告诉我一个正确的方法吗?

 @echo off
setlocal EnableDelayedExpansion
set aa=0
for %%s in ("F:\*.*") do (
        set /a aa=!aa!+1        
)
echo !aa!

set aa=0
 for %%s in ("F:\*.*") do (
     set /a aa=!aa!        
)
echo !aa!
endlocal

set aa=0
for %%s in ("F:\*.*") do (
      set /a aa=%aa%+1        
)
echo %aa%

set aa=0
for %%s in ("F:\*.*") do (
       set /a aa=%aa%       
)
echo %aa%

pause

2 个答案:

答案 0 :(得分:0)

这两个片段将计算F:\

中的可见文件
@echo off
setlocal EnableDelayedExpansion
set aa=0
for %%s in ("F:\*.*") do (
        set /a aa+=1        
)
echo !aa!

对于上述情况,您也可以使用:

@echo off
set aa=0
for %%s in ("F:\*.*") do (
        set /a aa+=1        
)
echo %aa%

答案 1 :(得分:0)

这是一个更快的解决方案。使用DIR / B列出文件,将结果传递给FIND / C以计算条目数。以下将给出与foxidrive解决方案相同的结果。

@echo off
dir /b /a-d-h-s ^| find /c /v ""

/a-d-h-s选项排除目录,隐藏文件和系统文件。如果要包含隐藏文件和系统文件,请使用/a-d

/v ""是一种让FIND匹配任何值的神秘方法。

如果需要使用计数定义变量,则使用FOR / F来捕获结果。

@echo off
for /f %%N in ('dir /b /a-d-h-s ^| find /c /v ""') do set count=%%N
echo %count%