我正在编写一个批处理脚本,其中需要在一个if
语句中使用通配符来匹配一个变量和一个字符串。如果匹配成功,程序将继续执行。
if "!_var!"=="str*" (
-- SOME COMMANDS --
)
这是我使用的语法,但我发现它根本不起作用。
我正在编写一个批处理脚本,其中需要在一个if
语句中使用通配符来匹配一个变量和一个字符串。如果匹配成功,程序将继续执行。
if "!_var!"=="str*" (
-- SOME COMMANDS --
)
这是我使用的语法,但我发现它根本不起作用。
echo %var% |findstr /b "str" >nul && (
echo yes
some more commands
) || (
echo no
some more commands
)
查找以 (/b
) 开头的 str
,(不要将其写入屏幕 >nul
),如果找到了 (&&
) 做某事,如果没有找到 (||
) 做另一件事。
您还可以添加 /i
使其不区分大小写。
IF
不支持模式匹配,但您可以从变量值中提取前三个字符并将其与str
进行比较。
子字符串提取的语法如下:
%<i>variable</i>:~<i>offset</i>,<i>length</i>%
类似地,延迟扩展也是如此:
!<i>variable</i>:~<i>offset</i>,<i>length</i>!
IF "!_var:~0,3!" == "str" (
...
)