【问题标题】:Batch: Find all files in folder that start with批处理:查找文件夹中以开头的所有文件
【发布时间】:2017-11-09 14:42:49
【问题描述】:

我是批处理脚本的新手,并试图找到一种方法来遍历文件夹中的所有文件并打印以 Test_ 开头并以 .py 结尾的所有文件的名称(即 python 文件)

我被困在这里:

@echo off
for /r %%f in (*) do (
    echo %%f | findstr /r "^Test_[.]*\.py$"
)
pause

但这不会向屏幕显示任何内容。 你能帮忙吗?

谢谢,

诺姆

【问题讨论】:

  • 试试"^Test_.*\.py$"
  • 为什么不在FOR 命令中使用文件掩码? for /r %%f in (Test_*.py) do (

标签: regex batch-file


【解决方案1】:

试试 "Dir /b "Test_*.py""

你也可以做 "Dir /b "C:\path\Test_*.py""

【讨论】:

  • 可能还想解释一下/S 开关,因为他们的原始代码使用的是递归的FOR /R
  • 嗯,是的,在 /b 之后添加 /s 以转到所有子文件夹
【解决方案2】:

您可能会发现Where 命令很有用:

Where/R . "Test_?*.py"

【讨论】:

  • 如果我已经知道只有一个匹配项,是否可以直接将结果分配给变量,或者我仍然需要for 循环?我之所以问,是因为我曾经有 this question,但不知道 Where 存在,我认为它会大大简化我的代码
  • 对不起@derHugo,我没有根据对 20 个月大的未接受答案的评论向会员提供免费支持的习惯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-12
  • 2018-01-09
  • 1970-01-01
相关资源
最近更新 更多