我正在編寫一個批處理腳本,其中我需要在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" (
...
)