批处理"if"语句,只有在输入文本时才要做某事,否则去做其他事情



我有一个具有用户输入的批处理脚本:

set /p serverstart=Starter Path (or leave blank if unknown): 

现在需要做的是,如果用户输入了什么(任何),它将转到一个特定的标签:

if %serverstart% == [anything] goto %serverstart%
:%serverstart%
java -Xmx1024M -Xms1024M -jar %serverstart%.jar nogui

但前提是用户输入了一些内容。如果用户将字段留空,则文件需要继续前进:

set /p serverstart=Starter Path (or leave blank if unknown): 
:serverram
cls
set /p serverram=Server RAM: 
[enter more code here]

因此,如果用户输入了一些内容,它会转到定义的用户标签,并启动%serverstart%.jar,但如果用户将字段留空,它将不执行任何操作并继续

set /p serverstart=Starter Path (or leave blank if unknown): 
if %serverstart% == "" goto %serverstart%
goto serverram
:serverram
set /p serverram=Server RAM: 
:%serverstart%
java -Xmx%serverram%M -Xms%serverram%M -jar %serverstart%.jar nogui

工作?

(如果你想要的话,这是到目前为止的完整代码)

@ECHO OFF
title MineServer Runner
cls
:servername
cls
if exist ServerFilesserverconfig.cmd goto startserver
set /p servername=Server Name: 
echo set servername=%servername%>> ServerFilesserverconfig.cmd
call "ServerFilesserverconfig.cmd"
title MineServer (%servername%) Runner
set /p serverstart=Starter Path (or leave blank if unknown): 
:serverram
cls
set /p serverram=Server RAM: 
echo set serverram=%serverram%>> ServerFilesserverconfig.cmd
:startserver
cd ServerFiles
call "serverconfig.cmd"
java -Xmx%serverram%M -Xms%serverram%M -jar startersminecraft_server.jar nogui
if defined serverstart goto (wehaveinput) else (goto wedonthaveinput)

当然,您也可以使用if not defined serverstart...

记住-set您的变量为空(set "var=") before设置/p`否则它将与之前的任何值保持不变。

我会扭转局面:

if not "%serverstart%" == "" (
  we have input-code
) ELSE (
  we have NO input-code
)

已编辑。

相关内容

  • 没有找到相关文章

最新更新