2014-04-12 70 views
3

我正在编写一个批处理脚本,其中我需要在if语句中使用通配符来将变量与字符串进行匹配。如果匹配,程序将进一步发展。批处理脚本 - “If语句中的通配符”

if "!_var!"=="str*" (

-- SOME COMMANDS -- 

) 

这是我用过的语法,但是我发现它根本没有工作。

回答

7
echo %var% |findstr /b "str" >nul && (
    echo yes 
    some more commands 
) || (
    echo no 
    some more commands 
) 

查找(/b =开头)str,(不写筛选>nul),若发现(&&)做一些事情,如果没有找到(||)做另一件事。

您还可以添加/i使其不区分大小写。

1

IF不支持模式匹配,但您可以从变量的值中提取前三个字符并将其与str进行比较。

子字符串提取的语法是这样的:

%variable:~offset,length% 

同样地,对于延迟扩展:

!variable:~offset,length! 

所以,你的情况应该是:

IF "!_var:~0,3!" == "str" (
    ... 
)