bat函数用于在文件夹和子文件夹中查找文件并对其执行某些操作。

时间:2012-02-04 19:08:06

标签: windows batch-file find batch-processing

我需要在文件夹和所有子文件夹中找到具有特定文件名的所有文件(例如main.css),然后用它做一些事情(例如重命名,移动,删除,添加文本行等)

2 个答案:

答案 0 :(得分:14)

这就是你需要的:

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

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

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

答案 1 :(得分:8)

虽然这将遍历目录树:

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中的工作方式。