Batch file 批处理文件以递归方式循环遍历子文件夹,并根据条件删除文件

Batch file 批处理文件以递归方式循环遍历子文件夹,并根据条件删除文件,batch-file,Batch File,我正在尝试自动化一个在更新服务器上的文件时必须经历的繁琐过程。我有一个内容文件夹,有很多子文件夹,每个子文件夹可能包含一些文件。有些文件有压缩版本(以.bz2结尾)。因此,文件夹可以包含以下内容: sound1.wav sound1.wav.bz2 sound2.wav texture1.tex texture2.tex texture2.tex.bz2 我要做的是删除每个具有等效压缩文件的文件(内容文件夹中的某个位置)。也就是说,在上面的示例中,我只想删除“texture2.tex”和“so

我正在尝试自动化一个在更新服务器上的文件时必须经历的繁琐过程。我有一个内容文件夹,有很多子文件夹,每个子文件夹可能包含一些文件。有些文件有压缩版本(以.bz2结尾)。因此,文件夹可以包含以下内容:

sound1.wav
sound1.wav.bz2
sound2.wav
texture1.tex
texture2.tex
texture2.tex.bz2
我要做的是删除每个具有等效压缩文件的文件(内容文件夹中的某个位置)。也就是说,在上面的示例中,我只想删除“texture2.tex”和“sound1.wav”

for /r %%f in (*) do if exist "%%f.bz2" del "%%f"
或者,在命令行而不是批处理文件中:

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

小错误。应该是:

for /r %%f in (*.bz2) do if exist "%%f" del "%%f"
或者,在命令行而不是批处理文件中:

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

控制台为我输出文件路径,而不是删除。