微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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不会根据我的测试将其绊倒).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐