:此时出人意料

时间:2011-03-22 13:21:10

标签: batch-file

我正在创建一个bat文件,它为服务器构建执行一些基本功能。该脚本具有一定的交互性。这允许我们在脚本上使用Production,Dev或QA。失败的脚本区域位于

之下
echo Enter User-defined Information about this Server:  
echo Environment:  
echo    1. PROD     
echo    2. QA  
echo    3. Dev  
echo  Choose one:   
CHOICE /C 123  
if errorlevel 1 (set ENVIRONMENTNAME=PROD & set ENVNAME=Production)  
if errorlevel 2 (set ENVIRONMENTNAME=QA & set ENVNAME=Acceptance)  
if errorlevel 3 (set ENVIRONMENTNAME=Dev & set ENVNAME=Development)

一旦提示我“选择一个:”我选择其中一个选项然后得到错误:
:此时出乎意料。

2 个答案:

答案 0 :(得分:2)

从脚本顶部删除@echo offecho off命令(或添加echo on),并使用生成的输出来调试哪一行导致有问题的错误。

出于优化目的,请按降序排列if errorlevel命令。 if errorlevel指定的数字或更高时会触发ERRORLEVEL命令。

答案 1 :(得分:0)

我意识到这是一个相当迟来的答案,但我刚刚经历了完全相同的错误消息,尽管它是一个“set / p”导致了我的问题。这条线最初是:

set /p Option=Do you want to go ahead and load the data? ([Y]/N): 

我找到的解决方案是在提示文本周围加上双引号,所以:

set /p Option="Do you want to go ahead and load the data? ([Y]/N): "

不知道这是否会对任何人有所帮助,但它解决了我的问题: - )