这种情况在Windows标准shell中只使用通配符是否可能实现?
$ ls -1 003[5,8]0
00350
00380
$ ls -1 003[5,8]0
00350
00380
不支持标准的Windows命令行(cmd.exe)。它只能理解?和*通配符,不能使用正则表达式。
您是否有安装Cygwin、Windows Powershell或其他增强型shell的选项?
是的,你可以。但需要使用FOR
和IF
结合使用。尝试以下代码开始...
setlocal enabledelayedexpansion
for %%a in (003?0) do (
set fn=%%a
set fnl=!fn:~3,1!
if .!fnl!==.5 (
echo !fn!
)
if .!fnl!==.8 (
echo !fn!
)
)
findstr
和来自管道dir
命令的输入进行正则表达式匹配,我不确定如何编写它,但我认为这应该是可能的。我相信@dbenham或@jeb能够想出一些解决方案 :) - Bali Cdir | findstr /r "003[5,8]0"
就可以了。 - Simbilis