2017-06-04 53 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 
相關問題