我正在写一个批处理脚本,其中我需要在if
语句中使用通配符来匹配string的variables。 如果匹配,程序将进一步。
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" ( ... )