Batch file 什么';查找文件夹目录中文件数的最简单方法是什么?

Batch file 什么';查找文件夹目录中文件数的最简单方法是什么?,batch-file,Batch File,这是很容易用MS-DOS脚本实现的,或者我必须求助于C++、Python、Perl或其他方法来实现这一点吗? < P>这在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 这在python中非

这是很容易用MS-DOS脚本实现的,或者我必须求助于C++、Python、Perl或其他方法来实现这一点吗?

< P>这在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

这在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
在cmd中,您可以执行以下操作:

set i=0
for /f %%G in ('dir /b /A-d <dirname>') do set /a i=i+1
Get-ChildItem <dirname> | Where-Object { -not $_.PSIsContainer } | Measure-Object
设置i=0
对于/f%%G in('dir/b/A-d'),设置/A i=i+1
在PowerShell(Windows 7中默认提供)中,您可以执行以下操作:

set i=0
for /f %%G in ('dir /b /A-d <dirname>') do set /a i=i+1
Get-ChildItem <dirname> | Where-Object { -not $_.PSIsContainer } | Measure-Object
Get ChildItem | Where Object{-not$\ PSIsContainer}| Measure Object
如果要对目录进行计数,并且要为dos版本删除
/A-d
,为powershell命令删除
Where Object{-not$\u PSIsContainer}
,则这些命令仅对文件进行计数。如果要递归到子目录中,请在powershell中使用
Get ChildItem-recurse
,或在cmd中的dos版本中将
/s
开关添加到dir命令,您可以执行以下操作:

set i=0
for /f %%G in ('dir /b /A-d <dirname>') do set /a i=i+1
Get-ChildItem <dirname> | Where-Object { -not $_.PSIsContainer } | Measure-Object
设置i=0
对于/f%%G in('dir/b/A-d'),设置/A i=i+1
在PowerShell(Windows 7中默认提供)中,您可以执行以下操作:

set i=0
for /f %%G in ('dir /b /A-d <dirname>') do set /a i=i+1
Get-ChildItem <dirname> | Where-Object { -not $_.PSIsContainer } | Measure-Object
Get ChildItem | Where Object{-not$\ PSIsContainer}| Measure Object

如果要对目录进行计数,并且要为dos版本删除
/A-d
,为powershell命令删除
Where Object{-not$\u PSIsContainer}
,则这些命令仅对文件进行计数。如果要递归到子目录,请在powershell中使用
Get ChildItem-recurse
,或者在dos版本中添加一个
/s
开关到dir命令,这是最简单的,它必须通过“我的祖母可以做到”基准测试

经过彻底的基准测试,我确定最简单的方法是在windows资源管理器中打开每个文件夹,查看状态栏中的文件计数,然后使用计算器添加计数

这是缓慢的,但有效的

编辑

这可能不那么容易,但作为一个笨重的cygwin用户,我倾向于使用find命令和wc

find -type 'f' | wc -l

最简单的是,它必须通过“我的祖母能做到”的基准

经过彻底的基准测试,我确定最简单的方法是在windows资源管理器中打开每个文件夹,查看状态栏中的文件计数,然后使用计算器添加计数

这是缓慢的,但有效的

编辑

这可能不那么容易,但作为一个笨重的cygwin用户,我倾向于使用find命令和wc

find -type 'f' | wc -l

哇!你真的在用MS-DOS吗?我不认为它还活着…我真正的意思是,当使用Windows7DIR命令报告文件数时,用任何最简单的方法来实现这一点/folders@Fredrik:它只告诉您当前目录中的文件数,不包括子目录中的文件(除非有我不知道的开关——DOS不是我最适合的!)dir/s是递归的并报告文件总数/foldersWow!你真的在使用MS-DOS吗?我不认为它还活着…我真正的意思是使用Windows 7时实现这一点的最简单方法dir命令报告文件数/folders@Fredrik:它只告诉您当前目录中的文件数,而不告诉您当前目录中的文件数不要将文件包含在子目录中(除非有我不知道的开关——DOS不是我的强项!)dir/s是递归的,报告文件总数/folders是指最简单的方法,但比在windows资源管理器中打开每个文件夹都快。@stanigator,你对我太认真了。我指的是最简单的方法,但比在windows资源管理器中打开每个文件夹都快。@stanigator,你对我太认真了。如果你想知道subdir中的文件数同时,添加
/s
开关以提供
'dir/b/A-d/s'
,如果您还需要子目录中的文件计数,请添加
/s
开关以提供
'dir/b/A-d/s'