Tên biến môi trường do người dùng xác định Windows có thể chứa bất kỳ ký tự nào trừ =
.Cú pháp nào sẽ kiểm tra nếu một tên biến chứa dấu cách được xác định?
Có thể bao gồm các ký tự đặc biệt bằng cách thoát chúng. Một phương pháp đơn giản hơn là chỉ cần đính kèm toàn bộ biểu thức SET trong dấu ngoặc kép. Ví dụ:
set "A weird & "complex" variable=My value"
set A weird ^& "complex" variable=My value
Cả hai biểu thức trên đều cho kết quả tương tự. Tên biến là A weird & "complex" variable
và giá trị là My value
các NẾU xây dựng ĐỊNH NGHĨA được sử dụng để kiểm tra xem một biến được định nghĩa. Báo giá không hoạt động cho thử nghiệm này, các ký tự đặc biệt trong tên (bao gồm dấu ngoặc kép) phải được thoát.
set "A&B=value"
if defined A^&B echo This works
if defined "A&B" echo This does not work
Thử nghiệm thoát ở trên hoạt động tốt. Bài kiểm tra được trích dẫn không hoạt động
Nhưng làm cách nào để kiểm tra xem một biến chứa không gian tồn tại?
set "A B=value"
if defined A^ B echo this does not work!
Có vẻ như ở trên sẽ hiệu quả nhưng không được!
Tôi đang tìm câu trả lời KHÔNG liên quan đến việc mở rộng biến bằng cách sử dụng% A B% hoặc! A B!
FOR /! Trì hoãn! giải pháp không rõ ràng khi tôi cần ngủ. Tôi đã nghĩ về nó khi tôi thức dậy, nhưng bạn đã có một câu trả lời xuất sắc! :) – dbenham
Phân tích * escape2 * của bạn rất thú vị. Tuy nhiên, một cơ hội khác để đưa một bình luận vào một tuyên bố – dbenham