joh*_* j. 4 command-line cmd.exe
我不明白为什么findstr
不能如我所愿。
我的测试目录中有以下文件:
aaa.jpg
bbb.png
ccc.svg
aaa_s.jpg
bbb_s.png
ccc_s.svg
aaa_small.jpg
bbb_small.png
ccc_small.svg
Run Code Online (Sandbox Code Playgroud)
我有以下行直接传递给 cmd.exe:
for /f "delims=" %f in ('dir /b /a:-d ^| findstr /ile "gif jpg png svg" ^| findstr /ie "_s.*"') do echo "%f"
Run Code Online (Sandbox Code Playgroud)
在我看来,它应该匹配以下文件:
aaa_s.jpg
bbb_s.png
ccc_s.svg
Run Code Online (Sandbox Code Playgroud)
然而,它实际上是匹配的
aaa_s.jpg
bbb_s.png
ccc_s.svg
aaa_small.jpg
bbb_small.png
ccc_small.svg
Run Code Online (Sandbox Code Playgroud)
是的,我知道问题在于点作为“任何字符”工作,而不是按字面意思处理。
findstr /ie "_s.*"
Run Code Online (Sandbox Code Playgroud)
机器人我怎么能逃脱呢?使用反斜杠,即将其更改为
findstr /ie "_s\.*"
Run Code Online (Sandbox Code Playgroud)
不起作用。
.
以匹配文字.
字符?您在使用 a 的正确行上\
,但是您需要额外.
的才能找到剩余的字符。
findstr /ie "_s\..*"
Run Code Online (Sandbox Code Playgroud)
示例(类型和cmd
外壳):
F:\test>dir /b /a:-d | findstr /ile "gif jpg png svg" | findstr /ie "_s.*"
aaa_s.jpg
bbb_s.jpg
ccc_s.jpg
aaa_small.jpg
bbb_small.jpg
ccc_small.jpg
F:\test>dir /b /a:-d | findstr /ile "gif jpg png svg" | findstr /ie "_s\..*"
aaa_s.jpg
bbb_s.jpg
ccc_s.jpg
Run Code Online (Sandbox Code Playgroud)
所以你的批处理文件应该包含:
for /f "delims=" %f in ('dir /b /a:-d ^| findstr /ile "gif jpg png svg" ^| findstr /ie "_s\..*"') do echo "%f"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1089 次 |
最近记录: |