我也一直以为 *.tmp 就表示扩展名为 tmp 的文件...
原来 *.tmp 匹配的文件是,最后一个点后面含“tmp”。如有以下文件:
a.tmp
a.tmp2
a.tmp.txt
dir /b *.tmp 会匹配前两个文件。
————————————————————————————————————————
可以改成:
for /r e: %%a in (*.tmp) do del "%%~dpna.tmp" 2>nul
或
for /f "delims=" %%a in ('dir/b/a-d/s e:\*.tmp^|findstr /i "\.tmp$"') do del "%%a"
————————————————————————————————————————
奇怪的结果:
C:\Test>dir /b
1.bat
1.bat.123
12.bat
12.bat123
123.bat123
C:\Test>dir /b ?.bat
1.bat
C:\Test>dir /b ??.bat
1.bat
12.bat
C:\Test>dir /b ???.bat "我以为会匹配 123.bat123"
1.bat
12.bat
C:\Test>dir /b ????.bat
1.bat
12.bat
C:\Test>dir /b ?????.bat
1.bat
12.bat
123.bat123
C:\Test>dir /b ??????.bat
1.bat
12.bat
123.bat123
C:\Test>dir /b ???????.bat
1.bat
12.bat
123.bat123
C:\Test>dir /b ????????.bat
1.bat
12.bat
12.bat123
123.bat123
Last edited by tireless on 2009-4-30 at 00:32 ]