Có cách nào để nhắc người dùng nhập liệu (ví dụ: Có/Không) từ tập lệnh batch của Windows hoạt động trên máy chủ XP và Windows 2003 không? Có vẻ như một số lệnh (ví dụ: lựa chọn) chỉ hoạt động trên một hệ điều hành và không hoạt động trên một hệ điều hành khác.Lệnh chọn hàng loạt Windows cho Windows XP & 2003
Trả lời
Sử dụng lệnh SET bằng nút chuyển/P.
SET /P RESULT=Y or N?
ECHO %RESULT%
Lưu ý rằng lệnh SET /P
không hỗ trợ tất cả các tính năng tương tự như lệnh CHOICE
. Cụ thể:
- Nó không hạn chế người dùng nhập vào một giá trị hợp lệ
- Người dùng phải nhấn enter
- Bạn cần phải kiểm tra xem có sự khác biệt vỏ (ví dụ "A" vs "a")
- không có cách nào để mặc định một sự lựa chọn nhất định sau một khoảng thời gian nhất định
Đối với những lý do này, tôi vẫn thích sử dụng lệnh CHOICE
chứ không phải là lệnh SET /P
. Để làm điều này, bạn chỉ cần bao gồm CHOICE.COM cùng với tệp lô của bạn. Bạn có thể tải xuống CHOICE.COM từ Microsoft qua Đĩa bổ sung MS-DOS 6.22. Đây là liên kết:
Thật không may "choice.com" không hoạt động đối với các hệ thống 64 bit. – Paulius
Tôi tin rằng Windows 7 64 bit bao gồm 'CHOICE.EXE'. Ít nhất, máy của tôi có nó và tôi khá chắc chắn tôi đã không đặt nó ở đó bản thân mình. – aphoria
Bạn là đúng @aphoria, tôi có choice.exe và tôi đã không đặt nó ở đó hoặc là :) – MikeRoger
Ví dụ bạn có thể sử dụng này:
SET /P ANSWER=y OR n?
If "%answer%"=="y" goto yes
If "%answer%"=="n" goto no
Thưởng thức!
Điều này về cơ bản sẽ bắt chước lựa chọn nào, bạn sẽ cần đặt nó làm chương trình con trong tệp lô của bạn. Tôi cũng thích sự lựa chọn nhưng tôi cần một cái gì đó di động sẽ chạy trên Windows XP.
Sau đó, bạn có thể sửa đổi điều này để chấp nhận "lựa chọn" khác, tuy nhiên điều này sẽ hoạt động như không phân biệt chữ hoa chữ thường và lặp lại lời nhắc cho đến khi người dùng nhập Y, y, N hoặc n.
:yesorno
set /p choice=%2
if /i NOT %choice% == n (
if /i NOT %choice% == y goto yesorno
)
set "%~1=%choice%"
goto :eof
Sau đó, bạn sẽ gọi chương trình con này qua:
call :yesorno answer "Do you want to continue? [Y/n]: "
Nó được làm việc rất tốt cho tôi cho đến nay.
CHOICE.COM của Windows Millenium hoạt động tốt cho tôi theo XP SP3. Tuy nhiên, tôi là ngôn ngữ hungarian, nhưng bạn có thể tìm thấy biến thể tiếng Anh ban đầu của nó, ví dụ như tìm kiếm "windows millenium ebd".
http://s000.tinyupload.com/index.php?file_id=57468192666746678653
Tôi đã đặt nó trong C: \ windows để có thể truy cập từ mọi nơi. – BlueWings
Chào mừng bạn đến với SO. Vui lòng cung cấp giải pháp trực tiếp trong câu trả lời của bạn. Ngoài ra, vui lòng đọc: https://stackoverflow.com/help/answering –
khoảng thời gian chờ và mặc định như thế nào? – Baczek