加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

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

发布时间:2021-05-17 20:46:18 所属栏目:Windows 来源:网络整理
导读:您将在cmd.exe中使用什么命令来查找当前目录中的文件数? 这里有powershell选项吗? 更新:我希望避免使用dir,因为我知道当前目录中有10,000个文件.想要避免枚举输出到cmd窗口.谢谢! 如果你想用cmd做,那么以下是完成它的简单方法: set count=0 for %x in

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

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读