我正在创建一个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)
一旦提示我“选择一个:”我选择其中一个选项然后得到错误:
:此时出乎意料。
答案 0 :(得分:2)
从脚本顶部删除@echo off
或echo 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): "
不知道这是否会对任何人有所帮助,但它解决了我的问题: - )