powershell – Windows命令提示符:如何获取当前目录中所有文件的计数?

前端之家收集整理的这篇文章主要介绍了powershell – Windows命令提示符:如何获取当前目录中所有文件的计数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
您将在cmd.exe中使用什么命令来查找当前目录中的文件数?

这里有powershell选项吗?

更新:我希望避免使用dir,因为我知道当前目录中有10,000个文件.想要避免枚举输出到cmd窗口.谢谢!

如果你想用cmd做,那么以下是完成它的简单方法
set count=0 & for %x in (*) do @(set /a count+=1 >nul)
echo %count%

这是假设命令行.在批处理文件中,您可以这样做

@echo off
setlocal enableextensions
set count=0
for %%x in (*) do set /a count+=1
echo %count%
endlocal

这样可以做得更好一些.您可以批量删除> nul,因为如果从批处理文件运行,set / a将不显示结果 – 它直接从命令行执行.此外,for循环中的%符号必须加倍.

我见过很多人用find / c尝试漂亮技巧的例子.要非常小心,因为各种各样的事情可以打破这个.

常见错误

>使用find / c / v并尝试查找从未包含在文件名中的内容,例如::.惯于.工作.可靠.当控制台窗口设置为光栅字体时,您可以获得这些字符组合.我可以在其全宽变体中包含文件名中的字符,例如:,?等,然后将其转换为正常的ASCII对应物,这将打破这一点.如果您需要准确的计数,请不要尝试这一点.
>使用find / c并尝试查找始终包含在文件名中的内容.显然点(.)是一个糟糕的选择.另一个答案表明

dir /a-d | find /c ":"

假设有关用户的语言环境的几个方面,并非所有这些都保证是真的(我已经留下了详细说明问题的评论)并且返回了太多的结果.

一般来说,你想在dir / b上使用find,它会切掉所有非文件名的东西,并以这种方式避免fencepost错误.

所以优雅的变体将是:

dir /b /a-d | find /c /v ""

它将首先输出所有文件名,每行一行.然后计算该输出中非空的所有行.由于文件名不能为空(除非我遗漏了一些东西,但Unicode不会根据我的测试将其绊倒).

猜你在找的Windows相关文章