怎么用DOS编写一个批处理文件,实现对某一文件夹下的多层文件夹内的文件执行相同的多条命令。

多条命令如:del *.log文件,del *.crc文件,执行purge命令

第1个回答  2013-05-03
假定你的文件夹是d:\sample,bat内容如下
@echo off
cd /d "d:\sample"
for /r %%a in (*.log;*.crc) do @del %%a
purge

只是如果你只要这样的,del原本就支持删除多目录文件的,可以改成
@ech off
del /q /s d:\sample\*.log
del /q /s d:\sample\*.crc
purge

注:这样写前提是purge所在的位置要被你加入环境变量的path中,如果你没有加,purge就要指明所在的位置,比如d:\xxx\xxx\purge追问

按照第1段的组合运行了一下,好像purge没有增加到for循环中(这样的话PURGE只是在起始目录中起作用);
将第1段和第2段的内容组合后形成下面的bat,运行了一下,达到了要求。
@echo off
del /s/q *.crc
del /s/q *.log
setlocal enabledelayedexpansion
for /r %%a in (.) do cd %%a & purge

还是挺感谢的,以前没有用过dos批处理,看了一两天的dos批处理了,还是没有搞定,结合syht2000兄的解答,终于达到想要的效果了。

追答

哦,这个偶倒不清楚purge是做什么用的,如果是要每个目录下都执行,你写的确实可以。

本回答被提问者采纳