Kit
Kit

Reputation: 1171

What does "&&" do in this batch file?

I received a line of code from someone who answered one of my questions, but I am confused: what do the "&&" do in this batch file.

@echo off
set /p Quest="How are you today? "
echo %Quest% > Results.txt
findstr /r /i "not.*good not.*well" Results.txt >nul && echo Sorry && goto pause
findstr /i "good well" Results.txt >nul && echo My day is doing good as well
:pause
pause

Upvotes: 69

Views: 149745

Answers (2)

Serenity
Serenity

Reputation: 1908

  • & separates commands on a line.

  • && executes this command only if previous command's errorlevel is 0.

  • || (not used above) executes this command only if previous command's errorlevel is NOT 0

  • > output to a file

  • >> append output to a file

  • < input from a file

  • | output of one command into the input of another command

  • ^ escapes any of the above, including itself, if needed to be passed to a program

  • " parameters with spaces must be enclosed in quotes

  • + used with copy to concatenate files. E.G. copy file1+file2 newfile

  • , used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,,

  • %variablename% an inbuilt or user set environmental variable

  • !variablename! a user set environmental variable expanded at execution time, turned with SetLocal EnableDelayedExpansion command

  • %<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile's name.

  • %* (%*) the entire command line.

  • %<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file.

Upvotes: 184

SomethingDark
SomethingDark

Reputation: 14304

&& runs the second command on the line when the first command comes back successfully (i.e. errorlevel == 0). The opposite of && is ||, which runs the second command when the first command is unsuccessful (i.e. errorlevel != 0).

Upvotes: 83

Related Questions