批处理文件:从输入参数中提取子字符串以在IF语句中使用

时间:2010-04-05 18:42:24

标签: batch-file parameters substring if-statement

这是我尝试在更复杂的批处理文件中实现的一个非常基本的示例。我想从输入参数(%1)中提取子字符串,并根据是否找到子字符串进行分支。

@echo off
SETLOCAL enableextensions enabledelayedexpansion

SET _testvariable=%1
SET _testvariable=%_testvariable:~4,3%

ECHO %_testvariable%

IF %_testvariable%=act CALL :SOME
IF NOT %_testvariable%=act CALL :ACTION

:SOME
ECHO Substring found
GOTO :END

:ACTION
ECHO Substring not found
GOTO :END
ENDLOCAL

:END

这就是我的输出:

C:\>test someaction

act

=act was unexpected at this time.

如果可能,我想将其转换为IF / ELSE语句并直接从%1进行评估。但是我也没有成功。

1 个答案:

答案 0 :(得分:1)

IF语句中,将=替换为==

我认为您还希望将CALL语句替换为GOTO

以下是您的代码,但使用IF/ELSE代替两个IF语句。

@echo off
SETLOCAL enableextensions enabledelayedexpansion

SET _testvariable=%1
SET _testvariable=%_testvariable:~4,3%

ECHO %_testvariable%

IF %_testvariable%==act (
  GOTO :SOME
) ELSE (
  GOTO :ACTION
)

:SOME
ECHO Substring found
GOTO :END

:ACTION
ECHO Substring not found
GOTO :END

:END

ENDLOCAL