2010-10-11 4 views

Trả lời

16

Bạn có thể lệnh chuỗi trong dos bằng cách sử dụng & & ví dụ

echo hello&&echo world 
+2

Nếu các lệnh đầu tiên thất bại, lệnh thứ hai sẽ không chạy, có vẻ như. Tôi đã thử 'rmdir 'C: \ Python" && mklink/J "C: \ Python" "C: \ Python26" 'và nếu thư mục không tồn tại trước tiên, nó sẽ ném một lỗi và hủy bỏ. Tôi đã thay đổi nó thành 'rmdir 'C: \ Python" | mklink/J "C: \ Python" "C: \ Python26" 'và nó hoạt động như thế nào tôi muốn, nhưng có vẻ như" sai "để sử dụng đường ống theo cách này. Vì vậy, đối với bạn, có vẻ như văn bản "loại in.txt | BatchSubstitute.bat" để thay thế "" thành "> out.txt' cho các tệp in.txt và out.txt sẽ là gì để sử dụng? Lưu ý ống là '|' (ống char) không 'I' (vốn tôi char). –

+2

@MarkRibau: Có lẽ sử dụng logic hoặc, tức là: 'echo hello || echo world'? –

+0

@Protectorone Hợp lý hoặc thực sự hoạt động. Nó hoàn toàn không xảy ra với tôi để làm điều đó. Tuy nhiên, nó không in ra lệnh đầu tiên thất bại, trong khi với đường ống thì không. Tôi cho rằng nó chủ yếu phụ thuộc vào những gì tôi muốn người dùng của kịch bản để xem. Và họ chỉ nhìn thấy nó lần đầu tiên. –

7

Theo Hỗ trợ của Microsoft:

Hành vi này xảy ra bởi vì các dấu phân cách & & lệnh thực hiện lỗi kiểm tra. Nếu lệnh ở bên trái của lệnh & & không trả về kết quả mong đợi , các lệnh ở bên phải của lệnh & & làm không chạy.

Khi bạn sử dụng một & lệnh duy nhất, kiểm tra lỗi không được thực hiện và tất cả các lệnh chạy.

Bạn có thể kiểm tra ở đây:

Multiple Commands on a Single Line May Not Run When You Use the && Command Separator