我想检查一下PC中是否设置了某个环境变量。如果是,请执行x,如果不执行y。
我尝试了这些以及它们的一些变体:
如果EXISTS%SIGN%runtest.exe --redirect -l%NAME% ELSE runtest.exe -l%NAME%
如果"%SIGN%" =="" runtest.exe --redirect -l%NAME% ELSE runtest.exe -l%NAME%
在这两种情况下(当环境变量SIGN存在且不存在时)它们都不能很好地工作。有时仅在一个案例中......
请帮忙吗? 谢谢!
答案 0 :(得分:1)
if exists
检查文件。
对于变量do:if defined sign
(没有百分号)
答案 1 :(得分:0)
IF
Conditionally perform a command
IF DEFINED SIGN (
runtest.exe --redirect -l %NAME%
) ELSE (
runtest.exe -l %NAME%
)
或很快
IF DEFINED SIGN (runtest.exe --redirect -l %NAME%) ELSE (runtest.exe -l %NAME%)
有效语法:
)
,ELSE
和(
必须位于唯一一行,如下所示:) ELSE (
注意强>:
如果变量包含任何值,
if DEFINED
将返回true(即使该值只是一个空格)。
根据上述谓词,IF DEFINED SIGN
条件似乎等同于重新制定的测试if NOT "%SIGN%"==""
,但它仅在批量中有效,其中%undefined_variable%
导致空字符串:
if NOT "%SIGN%"=="" (runtest.exe --redirect -l %NAME%) ELSE (runtest.exe -l %NAME%)
否则,在纯CLI中,%undefined_variable%
会产生%undefined_variable%
<强>证明强>:
==>type uv.bat
@echo undefined_variable="%undefined_variable%"
==>uv.bat
undefined_variable=""
==>echo undefined_variable="%undefined_variable%"
undefined_variable="%undefined_variable%"
==>