2015-03-05 27 views
13

Ho ricevuto una riga di codice da qualcuno che ha risposto a una delle mie domande, ma sono confuso: cosa fa "& &" in questo file batch.Che cosa significa "&&" in questo file batch?

@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 Grazie per avermi collegamento al sito web, ha tutto ciò che mi serve. – Kit

+0

È sicuramente un buon sito di inizio, ma prendi nota che una buona parte di esso è obsoleto o obsoleto - tutto nella pagina 'debug', per esempio. – SomethingDark

risposta

28

&& corre il secondo comando sulla linea quando il primo comando ritorna con successo, o con un ERRORLEVEL pari a 0. L'opposto di && è ||, che gestisce il secondo comando quando il primo comando è riuscito, o con un'errorlevel di 1.

+0

Grazie per il chiarimento, ho davvero aiutato – Kit

+4

Ecco una pagina di riferimento per Win XP (lol) ma contiene ancora informazioni utili. 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

Grazie per questo elenco. – Kit

+0

+1 per mettere tutto ciò in un unico posto. Non capisco la descrizione del virgola. copy/b file1 ,, restituito "Il file non può essere copiato su se stesso". L'ho eseguito dalla riga di comando. Farebbe qualcosa di diverso all'interno di un file batch? – riderBill

+0

Da dove viene? – Deilan

Problemi correlati