文件名全球化Windows与Unix

时间:2012-07-19 08:58:16

标签: windows unix batch-file glob filepattern

仅在使用通配符的Windows标准shell中是否可以这样?

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

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:2)

是的,你可以。不是单一命令,而是FORIF的组合。试试这个让你入门......

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!
  )
)