我知道有更好的方法可以使用不同的语言。虽然我需要批量完成。甚至不是powershell。是的,我知道这是2016年.xD
我的问题是" Goto此时出乎意料"
我不知道这是否可行,但我确信这是可能的。
:START_CMD
COLOR 02 & CLS & TITLE COMMAND WINDOW
ECHO.
SET /P _act=$ || Set _act=za
IF /I [%_act%]==[exit] (
GOTO :LOCK
) ELSE (
IF /I [%_act%]==[lock] (
GOTO :LOCK
) ELSE (
IF /I [%_act%]==[login] (
GOTO :UNLOCK_L1
) ELSE (
IF /I [%_act%]==[path] (
ECHO. & ECHO Current Path: %universalpath% & ECHO. & PAUSE & CLS & GOTO :START_CMD
) ELSE (
IF /I [%_act%]==[check] (
GOTO :HELP
) ELSE (
IF /I [%_act%]==[sudo] (
GOTO :HELP
) ELSE (
IF /I [%_act%]==[report] (
GOTO :SECURITY_LOGIN
) ELSE (
IF /I [%_act%]==[help] (
GOTO :HELP
) ELSE (
IF /I [%_act%]==[whoami] (
GOTO :WHOAMI_NOT_LOGIN
) ELSE (
SET _act=$_act: =%
)
IF /I NOT %_act%==za GOTO :START_CMD
GOTO :START_CMD
答案 0 :(得分:0)
哦,最后右括号在哪里?
:START_CMD
COLOR 02 & CLS & TITLE COMMAND WINDOW
ECHO.
SET /P _act=$ || Set _act=za
IF /I [%_act%]==[exit] (
GOTO :LOCK
) ELSE (
IF /I [%_act%]==[lock] (
GOTO :LOCK
) ELSE (
IF /I [%_act%]==[login] (
GOTO :UNLOCK_L1
) ELSE (
IF /I [%_act%]==[path] (
ECHO. & ECHO Current Path: %universalpath% & ECHO. & PAUSE & CLS & GOTO :START_CMD
) ELSE (
IF /I [%_act%]==[check] (
GOTO :HELP
) ELSE (
IF /I [%_act%]==[sudo] (
GOTO :HELP
) ELSE (
IF /I [%_act%]==[report] (
GOTO :SECURITY_LOGIN
) ELSE (
IF /I [%_act%]==[help] (
GOTO :HELP
) ELSE (
IF /I [%_act%]==[whoami] (
GOTO :WHOAMI_NOT_LOGIN
) ELSE (
SET _act=$_act: =%
)
)
)
)
)
)
)
)
)
IF /I NOT %_act%==za GOTO :START_CMD
GOTO :START_CMD
顺便问一下,你认为SET _act=$_act: =%
能起作用吗?这似乎是一个简单的问题,你这么认为吗?
答案 1 :(得分:0)
IF /I [%_act%]==[exit] GOTO :LOCK
IF /I [%_act%]==[lock] GOTO :LOCK
IF /I [%_act%]==[login] GOTO :UNLOCK_L1
IF /I [%_act%]==[path] ECHO. & ECHO Current Path: %universalpath% & ECHO. & PAUSE & CLS & GOTO :START_CMD
IF /I [%_act%]==[check] GOTO :HELP
IF /I [%_act%]==[sudo] GOTO :HELP
IF /I [%_act%]==[report] GOTO :SECURITY_LOGIN
IF /I [%_act%]==[help] GOTO :HELP
IF /I [%_act%]==[whoami] GOTO :WHOAMI_NOT_LOGIN
IF /I NOT [%_act%]==[za] GOTO :START_CMD
GOTO :START_CMD