windows batch file - IF with AND condition using command-line arguments with a multi-line body [duplicate]
i am new here so i'll try to be as good as i can. So i am trying to make a RPG based on text-based MS-DOS, and i am going pretty well as i just saw that if the user puts an invalid input at set /p, like an empty answer (just pressing enter) or an answer which is not on the "IF", the batch just crashes, and I would like to fix that so it will be less crashy. Here is one of the parts i'd like to fix: #echo off title "Wasteland Adventure" color 0A cls :Menu cls echo. echo. echo Welcome to Wasteland Adventure echo. echo To start a new game, type NEW and press ENTER. echo To see instructions for the game, type INSTRUCTIONS and press ENTER. echo To quit, type QUIT and press ENTER. set input= set /p input=What do you want to do? if %input%==new goto INTRO if %input%==instructions goto INSTRUCTIONS if %input%==quit goto EXIT Thanks in advance
it's not the set /pthat crashes, but: if %input%==new if %input% is empty, this is parsed as: if ==new obviously a syntax error. To avoid this, use: if "%input%"=="new" An empty input will then be parsed as: if ""=="new" which works fine. Complete code like this: :Menu set input= set /p input=What do you want to do? if "%input%"=="new" goto INTRO if "%input%"=="instructions" goto INSTRUCTIONS if "%input%"=="quit" goto EXIT REM for any other (invalid) input: goto :Menu
how to make file listing using the .bat script
Batch Files - Error Handling
batch for loop with bracket in the command
Set= log.txt in batch
XCOPY exclude list ignored after first exclusion
How to delete every n-th char in file (via batch or vbs)?
Batch Scripting, For using the results of a dir
How do I keep DOS batch echo on for parent script?
Batch file: Password Stars/Circles
[NT Batch]How to get directory from user inputted file?
Passing result of one batch file to another?
Deleting a directory (sub-directpries)using batch program on a event of new directory creation
Batch file fails to set environment variable within conditional statement
Batch rename/copy/delete not working?
Batch file FOR/f expansion
Ignore question mark in .bat batch scripts