2017-06-04 52 views
0

由于某种原因,我在许多文件夹中有dismhost.exe的副本,在temp文件夹内部;我想要做的是删除它的每个实例,它们位于temp之内的文件夹内。删除包含在不同子文件夹中的具有相同名称的文件

所以结构如下:

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

我第一次尝试

rm ./*/dismhost.exe 

,但后来我想起有Windows无rm,所以我试图用rd相同参数。这引发了一个错误,说*修饰符无效。

我该如何做到这一点?

回答

1

这可以使用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" 
) 
+0

我不得不删除'\ temp'从路径,但一切就像一个魅力。 – Garmekain

0

或者使用递归删除:

del /s \temp\dismhost.exe 
相关问题