我在写一个简单的作业批处理文件,它只是用来检查是否定义了两个变量。我让它运行良好,然后我意识到它需要检查两个变量,而不是一个。它仍然可以工作,但是它得到一个语法错误。有人知道为什么吗?
:: 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
您可能只需要用双引号将
varname1
,varname2
等括起来,如果它们包含空格的话(但这始终是一个好的实践)。关于windows - 我的代码中出现语法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49757181/