MS-DOS Batch tạm dừng tệp với phím enter


146

Có thể trong tệp bó MS-DOS để tạm dừng tập lệnh và đợi người dùng nhấn phím enter không?

Tôi muốn làm điều này trong một vòng lặp for. Sau mỗi lần lặp, tôi muốn tập lệnh tạm dừng và đợi người dùng nhấn 'Enter'

Câu trả lời:


247

Có một pauselệnh thực hiện điều đó, mặc dù đó không phải là phím enter.

Nếu bạn thực sự muốn đợi chỉ phím enter, bạn có thể sử dụng setlệnh để yêu cầu người dùng nhập với biến giả, đại loại như:

set /p DUMMY=Hit ENTER to continue...


17
Bạn không cần chỉ định tên biến : set /p=Hit ENTER to continue..., hoặc đơn giản set /p=nếu bạn không cần lời nhắc.
dbenham

2
Vì một số lý do, ứng dụng của tôi đang nổ tung ngay sau logic tạm dừng. Rất lạ.
ngerakak

11
Có vẻ hơi lạ khi thấy từ "ứng dụng" đang được sử dụng trong ngữ cảnh này (một tệp bó)
Adrian Grigore

nó không làm việc cho tôi chỉ hoạt động từ lần khởi chạy thứ hai khi 'set' hoạt động / lưu vào env.

13

pauselệnh là những gì bạn đang tìm kiếm. Nếu bạn trông CHỈ trường hợp khi nhấn enter, bạn có thể lạm dụng runaslệnh:

runas /user:# "" >nul 2>&1

màn hình sẽ bị đóng băng cho đến khi nhấn enter. Điều tôi thích hơn set/p=là nếu bạn nhấn các nút khác ngoài enter thì chúng sẽ không được hiển thị.


4

Bạn có thể làm điều đó với pauselệnh, ví dụ:

dir
pause
echo Now about to end...
pause

1
pausethực sự là câu trả lời hợp lệ duy nhất cho MS-DOS(tất cả các câu trả lời khác cmdchỉ hoạt động). Vì vậy, câu trả lời của bạn thực sự là câu trả lời hoàn toàn chính xác cho câu hỏi đặc biệt này (mặc dù nó đã được đề xuất hơn 7 năm trước)
Stephan

3

Tùy thuộc vào hệ điều hành nào bạn đang sử dụng, nếu bạn linh hoạt, thì CHOICEcó thể được sử dụng để chờ trên hầu hết mọi phím EXCEPTnhập

Nếu bạn thực sự đề cập đến những gì Microsoft khăng khăng gọi "Dấu nhắc lệnh" đơn giản là trình giả lập MS-DOS, thì có lẽ TIMEOUTcó thể phù hợp với mục đích của bạn (timeout /t -1 chờ đợi trên bất kỳ phím nào, không chỉ ENTER)CHOICE sẽ có sẵn trong các phiên bản WIN gần đây.

Và một cảnh báo trên SET /P- trong khiset /p DUMMY=Hit ENTER to continue... sẽ hoạt động,

set "dummy="
set /p DUMMY=Hit ENTER to continue...
if defined dummy (echo not just ENTER was pressed) else (echo just ENTER was pressed)

sẽ phát hiện xem chỉ ENTER hay cái gì khác, kết thúc bằng ENTER đã được khóa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.