2014-04-12 69 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" (
    ... 
)