Batch file 如何给.bat代码行一个时间限制?
我需要为Batch file 如何给.bat代码行一个时间限制?,batch-file,cmd,minecraft,minecraft-forge,pc,Batch File,Cmd,Minecraft,Minecraft Forge,Pc,我需要为设置30秒的时间限制:选择Y/N/p,时间到后转到:开始 我的代码在计时方面需要帮助 @echo off :start echo AmishCraft will start TIMEOUT /T 5 echo (%time%) java -Xms2048M -Xmx4096M -jar server.jar call C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe ping 1.1.1.1 -n 1
设置30秒的时间限制:选择Y/N/p
,时间到后转到:开始
我的代码在计时方面需要帮助
@echo off
:start
echo AmishCraft will start
TIMEOUT /T 5
echo (%time%)
java -Xms2048M -Xmx4096M -jar server.jar
call C:\Program Files (x86)\Common Files\Oracle\Java\javapath\java.exe
ping 1.1.1.1 -n 1 -w 3000 >nul
:choice
set /P a=do you want to restart? Yes No Pause [Y/N/P]?
if /I "%a%" EQU "Y" goto :restart
if /I "%a%" EQU "N" goto :stop
if /I "%a%" EQU "P" goto :pause
goto :start
:restart
cls
echo server will restart
cls
goto :start
:stop
cls
echo closing server
TIMEOUT /T 5
exit
cls
echo server is paused
:pause
:choice
set /P a=do you want start? Restart Stop [R/S]?
if /I "%a%" EQU "R" goto :restart
if /I "%a%" EQU "S" goto :stop
goto :start
pause
/T
是供选择的超时开关
/D
是定义默认错误级别/选项的开关,用于设置
时间流逝
例如:
CHOICE/T 5/N/C 1234/M“选择选项1、2、3或4”/D 1
应用5秒的超时,errorlevel设置为选项1,在本例中等于errorlevel 1
/N
隐藏默认的选项提示字符串
/M
允许您定义自己的提示字符串
/C
允许将字母数字字符定义为选项
注:
- Errorlevel是根据列出的选项从左到右设置的
- 选择命令后,需要从最高到最低评估错误级别
- 或
- 直接使用;例如在
Goto:LabelName%errorlevel%
命令中
*回复评论*
CHOICE /C 123 /T Timeout 25 /D goto :start /M 1 choice menu 25s
IF %ERRORLEVEL% EQU 1 goto :choice1
上述内容中存在多个错误
/T超时25
应为:/T 25
Timeout
隐含在/T
开关中,不构成正确使用choice命令的一部分
/D goto:start
应该是:/d1
或/d2
或/d3
- 只有定义的
/C
选项才能在/D
开关后使用
/M 1选择菜单25s
不正确
/M
后面的提示应该用双引号括起来:“[1]选项1.[2]选项2.[3]选项3.
- 错误级别评估应在CHOICE命令后的行上进行
- 同样,为了清楚起见,评估应该从最高到最低进行。当按照以下选择评估errorlevel时,如果errorlevel GTR n
,它实际上被解释为,尽管使用如果errorlevel n
正确使用上述各项的示例:
@echo off
:menu
cls
CHOICE /N /T 25 /C 123 /M "[1] Option 1. [2] Option 2. [3] Start." /D 3
IF ERRORLEVEL 3 (
GOTO :start
) else (
GOTO :choice%errorlevel%
)
:start
ECHO( You are at the start
Pause
GOTO :menu
:choice1
ECHO( You are at option 1
Pause
GOTO :menu
:choice2
ECHO( You are at option 2
Pause
GOTO :menu
好的,作为set/P
的替代方案,请看一下,它具有超时选项(/T
)…我无法让它工作选项/C 123/T超时25/D转到:开始/M 1选项菜单25s如果%ERRORLEVEL%EQU 1转到:选择1这就是我得到的错误:无效的参数/选项-“25”。键入“CHOICE/?”了解用法。请使用失败的尝试更新您的问题,并使用引号code
正确格式化代码,使其实际可读。您尝试使用Choice命令的方式存在明显错误。如果ERRORLEVEL==3,我将在回答中重新考虑(有效,但语法错误)删除==以符合此处建议的用法:https://www.robvanderwoude.com/errorlevel.php