Tôi đã nhận thấy việc sử dụng ^&
trong:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Tôi đang tự hỏi nó làm gì?
Tôi đã nhận thấy việc sử dụng ^&
trong:
(robocopy c:\dirA c:\dirB *.*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
Tôi đang tự hỏi nó làm gì?
Câu trả lời:
Các ^
biểu tượng là thoát nhân vật * trong Cmd.exe:
Thêm ký tự thoát trước biểu tượng lệnh cho phép nó được coi là văn bản thông thường.
Khi chuyển hoặc chuyển hướng bất kỳ ký tự nào trong số các ký tự này, bạn nên thêm tiền tố vào ký tự thoát: & \ <> ^ |
Tuy nhiên, nó không có tác dụng và thực sự không cần thiết trong lệnh của bạn. Có vẻ như bạn muốn lệnh IF được chạy sau khi lệnh RoboCopy hoàn thành. Do đó, bạn muốn &
phân tích cú pháp dưới dạng lệnh "phân tách lệnh", thông báo cho Cmd.exe xử lý câu lệnh IF của bạn như một lệnh thứ hai nên được thực thi sau khi chạy RoboCopy. Do đó, lệnh này tương đương với lệnh bạn đang sử dụng:
(robocopy c:\dirA c:\dirB *.*) & IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0
* Nếu ^
là ký tự cuối cùng trong một lệnh, thì nó được hiểu là ký tự tiếp tục lệnh .
^
cho mục đích đó, nó phải là ký tự cuối cùng trong lệnh.