5

在仅使用通配符的 Windows 标准外壳中,这样的事情是否可行?

$ ls -1 003[5,8]0
00350
00380
4

2 回答 2

5

不在标准 Windows 命令外壳 (cmd.exe) 中。它只理解 ? 和 * 通配符;没有正则表达式。

您是否可以选择安装 Cygwin、Windows Powershell 或其他增强型 shell?

于 2012-07-19T09:07:05.827 回答
2

是的你可以。不是使用单个命令,而是使用 和 的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!
  )
)
于 2012-07-19T10:23:05.117 回答