Ian Blank
Ian Blank

Reputation: 1

Batch "if" statement, only going to do something if text is entered, else go do something else

I have a batch script that has a user input:

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

Now what needs to happen is if a user inputs something (anything) it will go to a specific label:

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

But only if the user inputs something. If the user leaves the field blank, the file needs to continue on it's way:

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

So, if the user inputs something it goes to the defined user label, and starts the %serverstart%.jar, but if the user leaves the field blank it does nothing and carries on. Would:

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

work?

(Just incase you want it, here is the full code so far)

@ECHO OFF
title MineServer Runner
cls

:servername
cls
if exist ServerFiles\serverconfig.cmd goto startserver
set /p servername=Server Name: 
echo set servername=%servername%>> ServerFiles\serverconfig.cmd
call "ServerFiles\serverconfig.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%>> ServerFiles\serverconfig.cmd

:startserver
cd ServerFiles
call "serverconfig.cmd"
java -Xmx%serverram%M -Xms%serverram%M -jar starters\minecraft_server.jar nogui

Upvotes: 0

Views: 76

Answers (2)

BaBa
BaBa

Reputation: 337

i would turn it around:

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

Edited.

Upvotes: 0

Magoo
Magoo

Reputation: 80213

if defined serverstart goto (wehaveinput) else (goto wedonthaveinput)

You can of course use if not defined serverstart... also.

An remember - set your variable to empty (set "var=") beforeset/p` else it will remain unchanged from any prior value it had.

Upvotes: 1

Related Questions