Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 批处理脚本-通配符在';如果语句';_Windows_Batch File_If Statement - Fatal编程技术网

Windows 批处理脚本-通配符在';如果语句';

Windows 批处理脚本-通配符在';如果语句';,windows,batch-file,if-statement,Windows,Batch File,If Statement,我正在编写一个批处理脚本,其中需要在if语句中使用通配符将变量与字符串匹配。如果匹配,程序将更进一步 if "!_var!"=="str*" ( -- SOME COMMANDS -- ) 这是我使用的语法,但我发现它根本不起作用 echo %var% |findstr /b "str" >nul && ( echo yes some more commands ) || ( echo no some more commands ) 查找(/b=开始

我正在编写一个批处理脚本,其中需要在
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
,使其不区分大小写。

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

子字符串提取的语法如下:

%variable:~offset,length%
!variable:~offset,length!
IF "!_var:~0,3!" == "str" (
  ...
)