我需要在文件夹和所有子文件夹中找到具有特定文件名的所有文件(例如main.css),然后用它做一些事情(例如重命名,移动,删除,添加文本行等)
答案 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中的工作方式。