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ỉ foo
là đầ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 off
sẽ tắt cái này cho tập tin lô hoàn chỉnh. Tuy nhiên, echo off
cuộc gọi sẽ vẫn hiển thị. Đó là lý do tại sao bạn nhìn thấy @echo off
trong 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.exe
dòng sẽ in cả hai dự định start eclipse.exe
và các echo start eclipse.exe
dòng.
Các echo off
lượ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 off
lệ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 FOR
trong 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, ECHO
lệnh và kết quả của ECHO
lệnh. Cách này:
FOR %F IN (*.*) DO @ECHO %F
Chỉ cần kết quả của ECHO
lệnh được hiển thị.