2015-03-05 35 views
13

Tôi nhận được một dòng mã từ một người trả lời một trong các câu hỏi của tôi nhưng tôi nhầm lẫn: "& &" làm gì trong tệp lô này."&&" trong tệp lô này là gì?

@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 Cảm ơn bạn đã liên kết đến trang web, nó có mọi thứ tôi cần. – Kit

+0

Nó chắc chắn là một trang web bắt đầu tốt, nhưng hãy lưu ý rằng một đoạn tốt của nó là lỗi thời hoặc lỗi thời - tất cả mọi thứ trên trang 'debug', ví dụ. – SomethingDark

Trả lời

28

&& chạy lệnh thứ hai trên đường dây khi lệnh đầu tiên trở lại thành công, hoặc với một errorlevel 0. Ngược lại với &&||, chạy lệnh thứ hai khi lệnh đầu tiên không thành công, hoặc với một errorlevel của 1.

+0

Cảm ơn bạn đã làm rõ, thực sự đã giúp – Kit

+4

Đây là trang tham khảo cho Win XP (lol) nhưng vẫn chứa thông tin hữu ích. 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

Cảm ơn danh sách này. – Kit

+0

+1 để đặt tất cả ở một nơi. Tôi không hiểu mô tả dấu phẩy. copy/b file1 ,, trả về "Tập tin không thể được sao chép vào chính nó." Tôi chạy nó từ dòng lệnh. Nó sẽ làm một cái gì đó khác nhau từ bên trong một tập tin thực thi? – riderBill

+0

Nó đến từ đâu? – Deilan