批处理文件以递归方式循环遍历子文件夹并在条件下删除文件

时间:2011-09-04 22:56:57

标签: batch-file

我正在尝试自动化我在更新服务器上的文件时需要经历的一个单调乏味的过程。我有一个内容文件夹,有很多子文件夹,每个子文件夹都可能包含一些文件。某些文件具有压缩版本(以.bz2结尾)。所以文件夹可以有类似的东西:

sound1.wav
sound1.wav.bz2
sound2.wav
texture1.tex
texture2.tex
texture2.tex.bz2

我想要做的是删除具有等效压缩文件的每个文件(内容文件夹中的某个位置)。在上面的例子中,我只想删除'texture2.tex'和'sound1.wav'。

2 个答案:

答案 0 :(得分:4)

for /r %%f in (*) do if exist "%%f.bz2" del "%%f"

或者,在命令行而不是批处理文件中:

for /r %f in (*) do if exist "%f.bz2" del "%f"

答案 1 :(得分:-2)

小错误。它应该是:

for /r %%f in (*.bz2) do if exist "%%f" del "%%f"

或者,在命令行而不是批处理文件中:

for /r %f in (*.bz2) do if exist "%f" del "%f"