Reputation: 1171
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
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
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