【问题标题】:bat function to find a file in folder and subfolders and do something with it.bat 函数在文件夹和子文件夹中查找文件并对其进行处理。
【发布时间】:2012-02-26 22:55:11
【问题描述】:

我需要在文件夹和所有子文件夹中找到所有具有特定文件名的文件(例如 main.css),然后对其进行处理(例如,重命名、移动、删除、添加文本行等)

【问题讨论】:

标签: windows batch-file find batch-processing


【解决方案1】:

这是你需要的:

for /R %f in (main.css) do @echo "%f"

当然,您可以将echo 替换为您希望对文件执行的任何操作。如果需要,您可以使用通配符:

for /R %f in (*.css) do @echo "%f"

【讨论】:

    【解决方案2】:

    虽然这将遍历目录树:

    for /R %f in (main.css) do @echo "%f"
    

    它实际上与文件名不匹配。也就是说,如果你有一棵树:

        DirectoryA
            A1
            A2
    

    for /R 操作将给出 DirectoryA/main.css 的 %f,然后是 DirectoryA/A1/main.css 等等即使 main.css 不在这些目录中。所以要确保确实有一个文件(或目录),你应该这样做:

    for /R %f in (main.css) do @IF EXIST %f @echo "%f"
    

    另外,请注意,您确实需要引用文件名,因为如果路径或文件包含空格,则目录遍历可能会爆炸。

    以上至少是它在 Windows 8 中的工作方式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-11
      • 2021-07-13
      • 2013-06-26
      • 2020-11-05
      • 1970-01-01
      • 2021-10-14
      • 2021-06-04
      • 1970-01-01
      相关资源
      最近更新 更多