只是另一个简单的问题,可能与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.tmp
和test.tmpl
。我希望脚本只回显test.tmp
,但它没有回应任何东西。任何帮助表示赞赏。
答案 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"