Tôi thấy @được sử dụng trong bối cảnh như vậy:
@echo off
@echo start eclipse.exe
Không gì @có nghĩa là ở đây?
Tôi thấy @được sử dụng trong bối cảnh như vậy:
@echo off
@echo start eclipse.exe
Không gì @có nghĩa là ở đây?
Câu trả lời:
Nó có nghĩa là không xuất lệnh tương ứng. So sánh hai tệp bó sau:
@echo foo
và
echo foo
Cái trước chỉ foolà đầu ra trong khi cái sau in
H:\Stuff>echo foo
foo
(ở đây, ít nhất). Như có thể thấy lệnh đang chạy cũng có thể nhìn thấy.
echo offsẽ tắt cái này cho tập tin lô hoàn chỉnh. Tuy nhiên, echo offcuộc gọi sẽ vẫn hiển thị. Đó là lý do tại sao bạn nhìn thấy @echo offtrong phần đầu của tệp bó. Tắt lệnh lặp lại và không lặp lại lệnh tắt nó.
Xóa dòng đó (hoặc nhận xét nó ra) thường là một công cụ gỡ lỗi hữu ích trong các tệp bó phức tạp hơn vì bạn có thể thấy những gì được chạy trước thông báo lỗi.
Nó có nghĩa là "không lặp lại lệnh để đầu ra tiêu chuẩn".
Khá lạ lùng,
echo off
sẽ gửi echo offđến đầu ra! Vì thế,
@echo off
tắt hành vi tiếng vang tự động này - và cũng dừng nó cho tất cả các lệnh trong tương lai.
Nguồn: http://www.microsoft.com/resource/documentation/windows/xp/all/proddocs/en-us/batch.mspx?mfr=true
Các @disable tiếng vang cho rằng một lệnh. Nếu không có nó, các echo start eclipse.exedòng sẽ in cả hai dự định start eclipse.exe và các echo start eclipse.exedòng.
Các echo offlượt ra lệnh vang vọng theo mặc định.
Vì vậy, @echo offâm thầm tắt lệnh lặp lại và chỉ xuất ra tác giả lô dự định được viết là thực sự được viết.
Nó kế thừa ý nghĩa từ DOS. @ :
Trong phiên bản DOS 3.3 trở lên, ẩn tiếng vang của lệnh batch. Bất kỳ đầu ra được tạo bởi lệnh được lặp lại.
Nếu không có nó, bạn có thể tắt lệnh lặp lại bằng cách sử dụng echo offlệnh, nhưng lệnh đó sẽ được lặp lại trước tiên.
Theo mặc định, một tệp bó sẽ hiển thị lệnh của nó khi nó chạy. Mục đích của lệnh đầu tiên mà @echo tắt là tắt màn hình này. Lệnh "echo off" tắt hiển thị cho toàn bộ tập lệnh, ngoại trừ chính lệnh "echo off". Dấu "tại" "@" ở phía trước làm cho lệnh cũng được áp dụng cho chính nó.
Một thời gian hữu ích khác để bao gồm @ là khi bạn sử dụng FORtrong dòng lệnh. Ví dụ:
FOR %F IN (*.*) DO ECHO %F
Dòng trước hiển thị cho mọi tệp : dấu nhắc lệnh, ECHOlệnh và kết quả của ECHOlệnh. Cách này:
FOR %F IN (*.*) DO @ECHO %F
Chỉ cần kết quả của ECHOlệnh được hiển thị.