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

Dav*_*nel 7 windows batch-file find batch-processing

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

Dav*_*nan 14

这就是你需要的:

for /R %f in (main.css) do @echo "%f"
Run Code Online (Sandbox Code Playgroud)

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

for /R %f in (*.css) do @echo "%f"
Run Code Online (Sandbox Code Playgroud)


小智 8

这将遍历目录树:

for /R %f in (main.css) do @echo "%f"
Run Code Online (Sandbox Code Playgroud)

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

    DirectoryA
        A1
        A2
Run Code Online (Sandbox Code Playgroud)

用于/ R操作将得到F的%DirectoryA/main.css的,然后DirectoryA/A1 /的main.css等即使main.css的是不是在任何这些目录的.所以要确保确实存在一个文件(或目录),你应该这样做:

for /R %f in (main.css) do @IF EXIST %f @echo "%f"
Run Code Online (Sandbox Code Playgroud)

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

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