Bạn không thể đặt dòng mới như thế ở giữa IF
. Vì vậy, bạn có thể làm điều này:
if %var1%=="Yes" echo Var1 set
Hoặc, nếu bạn không muốn phát biểu của bạn trải rộng trên nhiều dòng, bạn có thể sử dụng dấu ngoặc:
if %var1%=="Yes" (
echo Var1 set
)
Tuy nhiên, khi bạn đang sử dụng dấu ngoặc hãy cẩn thận, bởi vì biến mở rộng có thể không hoạt động như bạn mong đợi. Ví dụ:
set myvar=orange
if 1==1 (
set myvar=apple
echo %myvar%
)
Đầu ra:
orange
Điều này là do tất cả mọi thứ giữa dấu ngoặc được coi là một tuyên bố duy nhất và tất cả các biến được mở rộng trước khi bất kỳ lệnh giữa khung đang chạy. Bạn có thể làm việc xung quanh sử dụng mở rộng chậm trễ này:
setlocal enabledelayedexpansion
set myvar=orange
if 1==1 (
set myvar=apple
echo !myvar!
)
Nguồn
2009-12-23 09:23:01
Cảm ơn. Nó chỉ áp dụng cho echo hoặc cho tất cả các lệnh theo sau như một kết quả tích cực cho câu lệnh if? – bdhar
@bdhar, đó là cú pháp cho lệnh 'if', vâng, tất cả chúng, không chỉ là tiếng vọng. – paxdiablo
+1 cho một vòng lặp while trong tập tin thực thi. –