Batch file 使用选项查询服务状态的Bat文件
我使用此查询来检查服务的状态,并根据该状态提供选项,但我在错误部分遇到了一些问题。似乎只有在没有选择的情况下才有效。即使这样,它也只是第一次起作用。正如你所见,我有3个选项,但如果我选择选项4,它默认为选项1。请看一看,解释一下我遗漏了什么Batch file 使用选项查询服务状态的Bat文件,batch-file,Batch File,我使用此查询来检查服务的状态,并根据该状态提供选项,但我在错误部分遇到了一些问题。似乎只有在没有选择的情况下才有效。即使这样,它也只是第一次起作用。正如你所见,我有3个选项,但如果我选择选项4,它默认为选项1。请看一看,解释一下我遗漏了什么 @echo off ECHO Status of MGT System Manager Service Goto Welcome ECHO. :Welcome sc query MGTSM | findstr /i "STATE" E
@echo off
ECHO Status of MGT System Manager Service
Goto Welcome
ECHO.
:Welcome
sc query MGTSM | findstr /i "STATE"
ECHO What would you like to do?
ECHO 1. Start Service
ECHO 2. Stop Service
ECHO 3. Exit
set /p choice=Select your choice.
if '%choice%'=='' ECHO "%choice%" is not valid please try again.
if '%choice%'=='1' goto Start Service
if '%choice%'=='2' goto Stop Service
if '%choice%'=='3' goto Exit
ECHO.
:Start Service
net start MGTSM
goto Welcome
:Stop Service
net stop MGTSM
goto Welcome
:Exit
exit
set/p不接触变量,如果不输入任何内容,只需输入即可。因此,您应该在执行以下操作之前删除变量:
:Welcome
....
set "choice=" //this deletes %choice%
set /p "choice=Select your choice: "
if '%choice%'=='1' goto StartService
if '%choice%'=='2' goto StopService
if '%choice%'=='3' goto Exit
REM this line is only reached, when all of the "IF ... GOTO" above failed
echo not valid input: "%choice%"
goto welcome
...
标签和转到空间有问题:转到开始服务将转到开始,忽略服务。与Labels::Start Service相同,标签为:Start,服务将被忽略。我正在尝试,这意味着您已经为此做出了努力。你能提出你的问题来表明你自己在做这件事上的努力吗?还有,你在这里发布之前看到了吗?看到了。类型选择/?用于用户输入。我确实在第一期无法正确查询服务时对其进行了编辑。选择将条目限制为您指定的内容。输入命令提示符选项/c 123/m输入选项。如果输入4,计算机会发出蜂鸣音。