对于我的生活,我无法弄清楚为什么我能用这个简单的批处理脚本使用GOTO来回应测试退出。路径存在。这应该非常简单,但缺少一些东西。如果我运行这个脚本,我应该回复"测试退出",但我得到"测试安装"即使路径存在。任何帮助?
@echo off
:TestInstall
Echo Test Install
pause
IF EXIST "C:\Program Files\Microsoft Office\root\Office16\Excel.exe" (
GOTO TestExit
)ELSE{
GOTO TestInstall
}
:TestExit
Echo Test Exit
pause
答案 0 :(得分:1)
)ELSE{
GOTO TestInstall
}
咦?为什么使用不同的parantheses /括号?批处理对空间非常挑剔 - 在else
之前和之后必须有一个:
) ELSE (
GOTO TestInstall
)
答案 1 :(得分:1)
你想要这样的东西:
@echo off
:install
echo install
pause
IF EXIST "C:\Program Files\Microsoft Office\root\Office16\Excel.exe" (
goto install
) ELSE (
goto exit
)
:exit
echo exit
pause
嗯,你有)ELSE{
这是不正确的,必须翻译成) ELSE (
并用括号关闭,而不是大括号。也忘了放空格。
请注意,如果文件不存在,您将在:install
和goto install
指令之间运行无限循环。
此外,在您的脚本开头,由于:install
标签位于顶部,因此在进行任何检查之前,它会运行install
部分。
如果您不希望这种情况发生,您应该将安装部分移到if语句下。