What does "&&" do in this batch file?
103,151
Solution 1
&&
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
).
Solution 2
& 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% a 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.
Related videos on Youtube
Author by
Kit
Updated on July 09, 2022Comments
-
Kit almost 2 years
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
-
Mathemats about 9 years
-
Kit about 9 years@Mathemats Thanks for linking me to website, it has everything I need.
-
SomethingDark about 9 yearsIt's definitely a good beginning site, but take note that a good chunk of it is outdated or obsolete - everything on the
debug
page, for example. -
Kit about 9 years@SomethingDark Okay, I will keep that in mind while I learn from it.
-
CrouZ over 8 yearsThe "eqivalent to" column on that page is not eqivalent when output redirection is used, see this post: stackoverflow.com/a/10358437/1941779
-
-
Kit about 9 yearsThanks for the clarification, really helped
-
Kit about 9 yearsThanks for this list.
-
user4317867 about 9 yearsHere's a reference page for Win XP (lol) but still contains helpful information. microsoft.com/resources/documentation/windows/xp/all/proddocs/…
-
riderBill over 6 years+1 for putting all that in one place. I don't understand the comma description. copy /b file1,, returned "The file cannot be copied to itself." I ran it from the command line. Would it do something different from within a batch file?
-
Deilan about 6 yearsWhere it comes from?
-
Spandyie over 5 years@user4317867 the link is broken
-
Tom Ozx about 5 years
-
Dawid Ohia almost 5 yearsa clarification about one ampersand & "Use to separate multiple commands on one command line. Cmd.exe runs the first command, and then the second command. " So I understand, that commands separated with & runs sequential like with &&, but they run always (no matter the errorlevel of a previous command) –
-
cowlinator almost 5 yearsGreat info, but what is the source?