删除包含在不同子文件夹中的同名文件

时间:2017-06-04 17:37:08

标签: windows recursion cmd

出于某种原因,我在dismhost.exe文件夹内的很多文件夹中都有temp的副本;我想要做的是删除它的每个实例,它们位于temp内的文件夹内。

所以结构如下:

/temp
 /folder1
  dismhost.exe
 /folder2
  dismhost.exe
 /folder3
  dismhost.exe
 ...

我第一次尝试

rm ./*/dismhost.exe

但后来我记得Windows中没有rm,所以我尝试使用相同的参数rd。这引发了一个错误,说*修饰符无效。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

这可以使用FOR循环迭代迭代由递归DIR搜索返回的文件列表来完成。如果对输出感到满意,请删除ECHO以便实际删除文件。

FOR /F "usebackq tokens=*" %f IN (`DIR /S /B /A:-D \temp\dismhost.exe`) DO (ECHO DEL "%~f")

如果将其放入.bat脚本中,请务必将变量上的%字符加倍。

FOR /F "usebackq tokens=*" %%f IN (`DIR /S /B /A:-D \temp\dismhost.exe`) DO (
    ECHO DEL "%%~f"
)

答案 1 :(得分:0)

或使用递归删除。:

del /s \temp\dismhost.exe