我找到了与 8.3 文件名等相关的其他答案,但这不是这里的问题。
我在命令提示符下使用 Windows 7。
我运行这个:for /R "c:\" %A in (*.tmp) do echo "%A"
,它会找到所有以 .TMP 作为扩展名的文件,还会找到以 .TMP123 作为扩展名的测试文件:
例子:
"c:\Users\random\AppData\Local\Temp\~DFDCC0F94DFE245596.TMP"
"c:\Windows\Temp\Testfile.tmp123"
我也尝试过这个:for /R "c:\" %A in ("*.tmp") do echo "%A"
,
和这个:for /R "c:\" %A in (*."tmp") do echo "%A"
,结果是一样的。
编辑:它没有显示,但上面括号中有一个 *.tmp。
搜索其他扩展名时也会发生这种情况,因此不仅仅是 .tmp 文件会发生这种情况。
有没有办法限制它,以便它只查找以 .TMP 为扩展名的文件?
答案1
过滤扩展:
for /f "delims=" %A in ('dir /B/S C:\*.tmp ^|findstr /ec:".tmp"') do @echo %A
~
或者使用-modifiers检查扩展
for /R "c:\" %A in ("*.tmp") do @if /i "%~xA"==".tmp" @echo %A