2012-12-17 49 views
5

Trong tập tin batch của tôi, tôi muốn hỏi người dùng một câu hỏi.có/không có tập tin thực thi

tôi đã viết như sau:

SET /P ANSWER=Click Y to continue or N to stop (Y/N) 

nhưng tôi nhận được thông báo mà không có cuối cùng ).

Ai đó biết tại sao?

Cảm ơn!

+2

Nó hoạt động tốt cho tôi. Nó có cho bạn lỗi không? Hay nó chỉ không hiển thị khung cuối cùng? –

+0

nó cũng phù hợp với tôi. –

+0

không hiển thị khung cuối cùng – zipi

Trả lời

12

Vì bạn đang sử dụng dấu nhắc đó trong một khối được chặn, ví dụ:

if ... (
    ... 
    set /P ANSWER=Blah (Y/N) 
) 

hoặc

for %%x in (...) do (
    ... 
    set /P ANSWER=Blah (Y/N) 
) 

Bạn phải thoát khỏi đóng ngoặc trong trường hợp đó:

SET /P ANSWER=Click Y to continue or N to stop (Y/N^) 

hoặc trích dẫn toàn bộ lập luận:

SET /P "ANSWER=Click Y to continue or N to stop (Y/N)" 

nếu không nó đóng khối. Và nếu bạn có bất cứ điều gì sau khi đóng ngoặc đơn bạn sẽ nhận được một lỗi cú pháp.

Một phương pháp dễ dàng hơn những gì bạn làm có lẽ sẽ là choice lệnh:

choice /M "Press Y to continue or N to stop" /c YN 

Sau đó bạn có thể kiểm tra errorlevel sau đó để tìm hiểu sự lựa chọn của người dùng:

if errorlevel 255 (
    echo Error 
) else if errorlevel 2 (
    echo No. 
) else if errorlevel 1 (
    echo Yes. 
) else if errorlevel 0 (
    echo Ctrl+C pressed. 
) 
+0

(Y/N ^) - không trợ giúp cho sự cố và lệnh lựa chọn khiến hàng loạt của tôi không thành công – zipi

+3

+1 - Thậm chí dễ dàng hơn tôi nghĩ là sử dụng dấu ngoặc kép: 'set/p 'answer = Nhấp Y để tiếp tục (Y/N) ". Tôi khá chắc chắn CHOICE không phải là tiêu chuẩn trên một số phiên bản Windows. – dbenham

Các vấn đề liên quan