2015-03-05 11 views
13

Otrzymałem wiersz kodu od kogoś, kto odpowiedział na jedno z moich pytań, ale jestem zdezorientowany: co robi "& &" w tym pliku wsadowym.Co "&&" w tym pliku wsadowym?

@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 
+2

Wow, http://www.robvanderwoude.com/condexec.php – Mathemats

+0

@Mathemats Dziękujemy za powiązanie mnie do strony internetowej, ma wszystko, czego potrzeba. – Kit

+0

To zdecydowanie dobra strona początkowa, ale zauważ, że dobry fragment jest przestarzały lub przestarzały - na przykład na stronie 'debugowania'. – SomethingDark

Odpowiedz

28

&& uruchamia drugie polecenie w wierszu, gdy pierwsza komenda wraca pomyślnie, lub z errorlevel 0. Przeciwieństwem && jest ||, który prowadzi drugą komendę, gdy pierwsza komenda nie powiedzie, lub z errorlevel z 1.

+0

Dzięki za wyjaśnienie, naprawdę pomogło – Kit

+4

Oto strona referencyjna dla Win XP (lol), ale nadal zawiera przydatne informacje. http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/ntcmds_shelloverview.mspx?mfr=true – user4317867

34
& seperates 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 concatinate 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 SelLocal 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. 


. 
-- 
+0

Dzięki za tę listę. – Kit

+0

+1 za umieszczenie wszystkiego w jednym miejscu. Nie rozumiem opisu przecinka. copy/b plik1 ,, zwrócony "Plik nie może być skopiowany do siebie." Uruchomiłem go z wiersza poleceń. Czy zrobiłoby coś innego niż w pliku wsadowym? – riderBill

+0

Skąd pochodzi? – Deilan