我正在编写一个批处理脚本,其中我需要在if
语句中使用通配符来将变量与字符串进行匹配。如果匹配,程序将进一步发展。批处理脚本 - “If语句中的通配符”
if "!_var!"=="str*" (
-- SOME COMMANDS --
)
这是我用过的语法,但是我发现它根本没有工作。
我正在编写一个批处理脚本,其中我需要在if
语句中使用通配符来将变量与字符串进行匹配。如果匹配,程序将进一步发展。批处理脚本 - “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
进行比较。
子字符串提取的语法是这样的:
%variable:~offset,length%
同样地,对于延迟扩展:
!variable:~offset,length!
所以,你的情况应该是:
IF "!_var:~0,3!" == "str" (
...
)