批处理脚本 - 如果语句中的通配符'

时间:2014-04-12 08:18:26

标签: windows batch-file if-statement

我正在编写一个Batch脚本,其中我需要在if语句中使用通配符来将变量与字符串匹配。如果匹配,程序将更进一步。

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

-- SOME COMMANDS --

)

这是我使用的语法,但我发现它根本没用。

2 个答案:

答案 0 :(得分:8)

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

查找(/b =开头)str,(不要写入屏幕>nul),如果找到(&&)做某事,如果没有找到(||)做另一件事。

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

答案 1 :(得分:1)

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

子字符串提取的语法是:

%variable:~offset,length%

同样适用于延迟扩张:

!variable:~offset,length!

所以,在你的情况下,它将是:

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