![如何通过排除命令提示符中的点文件夹来计算文件和目录的数量?](https://linux22.com/image/1577796/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E6%8E%92%E9%99%A4%E5%91%BD%E4%BB%A4%E6%8F%90%E7%A4%BA%E7%AC%A6%E4%B8%AD%E7%9A%84%E7%82%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E6%9D%A5%E8%AE%A1%E7%AE%97%E6%96%87%E4%BB%B6%E5%92%8C%E7%9B%AE%E5%BD%95%E7%9A%84%E6%95%B0%E9%87%8F%EF%BC%9F.png)
我用它dir /s
来查看文件夹中的所有文件和指令。但这也显示 . 目录。我几乎有 100 多个顶级和内部文件夹。当我执行上述命令时,结果不准确。
如何使用窗口命令提示符获取准确的文件和目录数量?
答案1
递归计数文件:
set filesCount=0 & (for /R %f in (*) do @(set /a filesCount+=1 > nul)) & set filescount
递归计算目录数:
set dirsCount=0 & (for /D /R %f in (*) do @(set /a dirsCount+=1 > nul)) & set dirscount
资源:FOR
循环命令。
编辑:如果您关心隐藏文件,请比较以下结果:
d:\bat> set filesCount=0 & (for /R %f in (*) do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=3095
d:\bat> set filesCount=0 & (for /F "delims=" %f in ('dir /b /s /a-h-d') do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=3095
d:\bat> set filesCount=0 & (for /F "delims=" %f in ('dir /b /s /ah-d') do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=10
d:\bat> set filesCount=0 & (for /F "delims=" %f in ('dir /b /s /a-d') do @(set /a filesCount+=1 > nul)) & set filescount
filesCount=3105
应用于目录 (予以适当修改)依次使用dir
开关/aD
、/aHD
和/a-HD
。