我在写一个简单的作业批处理文件,它只是用来检查是否定义了两个变量。我让它运行良好,然后我意识到它需要检查两个变量,而不是一个。它仍然可以工作,但是它得到一个语法错误。有人知道为什么吗?

:: 04/09/18
:: checkVars.bat
:: Checks if a variable name is defined


if %1 == "" (
  echo "Usage: %0 varname1"
  exit /b
) else (
  goto check
)


:check
if defined %1 (
    echo "%1 is defined"
) else (
    echo "%1 is not defined"
)

shift /1
goto check

最佳答案

或者可以使用For循环:

Rem 04/09/18
Rem checkVars.bat
Rem Checks if variable names are defined
@Echo Off
If "%~1"=="" (Echo Usage: "%~0" "varname1" "varname2" etc. & Exit /B)
For %%A In (%*) Do If Defined %%~A (Echo "%%~A is defined"
) Else Echo "%%A is not defined"
Pause

您可能只需要用双引号将varname1varname2等括起来,如果它们包含空格的话(但这始终是一个好的实践)。

关于windows - 我的代码中出现语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49757181/

10-13 05:20