这可以通过MS-DOS脚本轻松实现,还是我不得不求助于C ++,Python,Perl或其他方法来实现这一目标?
答案 0 :(得分:3)
最简单的是,它必须通过“我的祖母可以做到”的基准。
经过彻底的基准测试后,我确定最简单的方法是在Windows资源管理器中打开每个文件夹,查看状态栏中的文件计数,并使用计算器添加计数。
这很慢但很有效。
修改强>
它可能不那么容易,但作为一个沉重的cygwin用户,我倾向于使用find命令和wc。
find -type 'f' | wc -l
答案 1 :(得分:1)
set i=0
for /f %%G in ('dir /b /A-d <dirname>') do set /a i=i+1
在PowerShell中(在Windows 7中默认可用),您可以执行以下操作:
Get-ChildItem <dirname> | Where-Object { -not $_.PSIsContainer } | Measure-Object
如果要计算目录,这些命令只计算文件,删除dos版本的/A-d
和powershell命令的Where-Object { -not $_PSIsContainer }
。如果要递归到子目录,请在powershell中使用Get-ChildItem -Recurse
或在dos版本中将dir命令添加/s
开关
答案 2 :(得分:0)
这在python中非常简单:
import os
walker = os.walk(path_to_search_root)
files = 0
for dir in walker:
files += len(dir[2]) #dir[2] is the list of files in the directory
print files