【问题标题】:Simple batch code to count file contents within a file path?简单的批处理代码来计算文件路径中的文件内容?
【发布时间】:2017-06-18 22:35:42
【问题描述】:

我正在尝试学习如何创建批处理文件,到目前为止,这是一段艰难的旅程。我正在寻找一个简单的批处理文件脚本,它可以计算我可以提供的文件路径中的文件。到目前为止,我只能研究并找到这个:

dir /a-d "C:\Users\Me\Desktop\testphotos" | find "*"

pause

在我的“testphotos”文件夹中,我有 4 个示例照片文件,但批处理脚本返回 0 个文件。

【问题讨论】:

  • dir /a-d "C:\Users\Me\Desktop\testphotos\*.* 有什么问题?
  • 我得到以下信息:找不到文件 0
  • 如果文件夹中有 4 个文件,则不会。

标签: windows shell batch-file cmd scripting


【解决方案1】:

您的脚本的替代方案:

@echo off
set count=0
cd "C:\Users\Me\Desktop\testphotos"
for %%a in (*.*) do set /a "count+=1"
echo %count%
pause

要仅计算 .png 文件,请使用:

@echo off
set count=0
cd "C:\Users\Me\Desktop\testphotos"
for %%a in (*.png) do set /a "count+=1"
echo %count%
pause

【讨论】:

  • 这个确实有效,非常感谢。尽管有一点警告:这个脚本似乎只会计算 .bat 所在的文件,而不管第 4 行是否有 cd C:\Users\Me\Desktop\testphotos"
  • 我收回了,谢谢 HackR_360,我的用户错误,因为文件路径实际上是不正确的,因为我在 stackoverflow 上使用了伪文件路径名称,并且在我带来它时出现了拼写错误进入我的机器。非常感谢!!!
  • HackR_360 您发布了一个简短的编辑,其中展示了如何仅计算“.png”文件,您能再显示一次吗?
【解决方案2】:
dir/a-d /b "C:\Users\Me\Desktop\testphotos"|find /c /v ""

您需要添加/b 否则dir 将生成页眉和页脚行。

/c 切换到 find 报告将输出的行数(/coutputs the count instead)./vmeans "don't match"" 空行,因此 find 计数 dir 行'不匹配空行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多