dos一些稀饭
编辑器加载中...
避免手工输入y:
echo y| del *.*
echo y| del *.* > nul
for %%f in (*.*) do del %%f
如果目录是空的,要避免“文件未找到”的信息,可用
if exist *.* echo y| del *.* > nul
一个更好的也显而易见的修改来自 Rik D'haveloose
if exist *.* for %%f in (*.*) do del %%f
例如,在文中的最后一个修改中提到
if exist *.* for %%f in (*.*) do del %%f
但是,我的经验告诉我,在此句中if exist *.*是不必要的。所以,在我的批处理
中,删除批处理程序产生的临时文件时常常采用:
for %%f in (_%0*.* ~%0*.* *.tmp) do del %%f
而不会选用这种方法:
if exist _%0*.* for %%f in (_%0*.*) do del %%f
if exist ~%0*.* for %%f in (~%0*.*) do del %%f
if exist *.tmp for %%f in (*.tmp) do del %%f
或者这种方法:
for %%f in (_%0*.* ~%0*.* *.tmp) do if exist %%f del %%f
如果删除的文件是许多个名字杂乱无法进行通配的文件,我也会使用:
for %%f in (src.tmp* dst.dat* _media.bat*) do del %%f
这一切只是因为,如果在for 的可替换集(括号中的部分)中使用了通配符,就会将其中的文本串作为文件名的集合进行替换,替换前会搜索所有匹配这个通配符的文件,而能够搜索到的文件,毫无疑问都是存在的。