我有一个脚本:
IF "%USER_COUNTRY%"=="ie" IF NOT "%POS_TYPE%" == "ipos" ( GOTO IE_Start)
以下我有一些标签:
:PT_Start
ECHO Start PT
rem for PT Num Lock must be activated before POS start
.\native\klocks.exe +n
IF NOT EXIST c:\C3 GOTO NO_C3
pushd c:\C3\
tskill /V /A c3_net
cmd /c START /min c3_net.exe
GOTO C3_DONE
:NO_C3
ECHO C3 not present in C:\C3\
ECHO start without C3
:C3_DONE
popd
GOTO Start_Now
:IE_Start
ECHO Start IE
IF NOT EXIST c:\C3 GOTO NO_C3_RPM
pushd c:\C3\
tskill /V /A c3_rpm_net
cmd /c START c3_rpm_net.exe
GOTO RPM_C3_DONE
:NO_C3_RPM
ECHO C3 not present in C:\C3\
ECHO start without C3
:RPM_C3_DONE
popd
GOTO Start_Now
:PL_Start
ECHO Start PL
pushd c:\AModule\
cmd /c START Forcom.AModule.exe
echo "AModule ist gestartet"
popd
GOTO Start_Now
我得到了:
The system cannot find the batch label specified - IE_Start
脚本在Windows下运行,但它保存在Unix上,因此它有LF行尾符号。我告诉这个,因为解决这个问题的方法很少,但我不明白为什么。我注意到以下问题解决了这个问题:
IE_Start
; PT_Start
标签及其部分代码
/min
; cmd /c START /min c3_net.exe
cmd /c START /min C:\C3\c3_net.exe
(此文件无论如何都不存在); 发生了什么事?
答案 0 :(得分:0)
IF "%USER_COUNTRY%"=="ie" IF NOT "%POS_TYPE%" == "ipos" ( GOTO IE_Start)
上面的代码不正确:
1)您使用两个不同的if语句作为一个班轮。
2)第一个if包含一个条件但缺少命令块。
以下是实现目标的正确方法。
IF "%USER_COUNTRY%"=="ie" ( do something )
IF NOT "%POS_TYPE%"=="ipos" ( GOTO IE_Start)