Cmd dir只有.tmp文件由findstr

时间:2018-02-01 10:21:55

标签: batch-file command-line cmd command-prompt

只是另一个简单的问题,可能与Windows batch script to search for specific files to delete

重复

但我无法弄清楚。

在批处理文件中,我有以下内容:

for /f "delims=" %%a in ('dir /a-d /s /b *.tmp ^| findstr /e /r c:"*\.tmp" ') do echo "%%a"

在我运行脚本的文件夹中是文件test.tmptest.tmpl。我希望脚本只回显test.tmp,但它没有回应任何东西。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

请改为尝试:

for /f "delims=" %%a in ('dir /a-d /s /b *.tmp ^| findstr /e ".tmp" ') do echo "%%a"

请勿使用/R,因为它会将搜索字符串用作正则表达式。

答案 1 :(得分:1)

因为/r*被解释为"零或更多的前一个字符"。什么是以前的char?你在这里不需要*。只需findstr /e ".tmp"。另一个/i可能是一个好主意。

break>test.tmp
break>test.tmpx
break>test.xtmp
for /f "delims=" %%a in ('dir /a-d /s /b *.tmp^| findstr /ie ".tmp"') do echo "%%a"