首先我想在 Windows 7 登录脚本中测试某个文件是否存在。如果(且仅当)是这种情况,我想测试是否存在某个注册表项。如果不是这样,我想做一些事情。所以这就是我想出的:
IF EXIST %SOME_FILE% (
REG QUERY "HKCU\..." /v some_key
IF %ERRORLEVEL%=="1" (
do_some_stuff
)
)
我遇到的问题是,如果文件存在,%ERRORLEVEL% 等于 0 - 如果注册表项存在,则不是。如果我不做文件测试,一切都很好。现在,我可以使用标签和 goto,但我并不是真正的 friend 。有(简单的)替代方案吗?
最佳答案
简单的解决方案?当然。 %variable%
在代码块之前计算代码块。您需要的是延迟扩展,即变量内容的命令设置命令。
只需将其添加到文件的顶部,
setlocal enableDelayedExpansion
并在变量周围使用感叹号;
!errorlevel!
而不是百分号。虽然,我完全同意西蒙卡特林的回答。
关于batch-file - 嵌套 IF 中的 Windows CMD %ERRORLEVEL%,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41983397/