仅查找具有特定扩展名的文件。对于/R“c:\”%A in (*.tmp) 无法按预期工作

仅查找具有特定扩展名的文件。对于/R“c:\”%A in (*.tmp) 无法按预期工作

我找到了与 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

相关内容