【发布时间】:2012-07-19 08:58:16
【问题描述】:
在仅使用通配符的 Windows 标准外壳中是否可以实现类似的操作?
$ ls -1 003[5,8]0
00350
00380
【问题讨论】:
标签: windows unix batch-file glob filepattern
在仅使用通配符的 Windows 标准外壳中是否可以实现类似的操作?
$ ls -1 003[5,8]0
00350
00380
【问题讨论】:
标签: windows unix batch-file glob filepattern
不在标准 Windows 命令外壳 (cmd.exe) 中。它只理解 ?和 * 通配符;没有正则表达式。
您是否可以选择安装 Cygwin、Windows Powershell 或其他增强型 shell?
【讨论】:
dir 命令的输入使用findstr 执行正则表达式,我不知道如何编写它,但我认为它应该是可能的。我敢肯定@dbenham 或@jeb 会想出一些东西:)
dir | findstr /r "003[5,8]0" 将起作用。
是的,你可以。不是使用单个命令,而是使用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!
)
)
【讨论】: