2013-04-30 44 views
92

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

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

Trả lời

154

Có một lệnh pause thực hiện điều đó, mặc dù nó không phải là khóa nhập cụ thể.

Nếu bạn thực sự muốn đợi chỉ nhấn phím enter, bạn có thể sử dụng lệnh set để yêu cầu người dùng nhập vào với một biến giả, một cái gì đó như:

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

+8

Bạn không cần phải xác định một biến. name: 'set/p = Nhấn ENTER để tiếp tục ...', hoặc đơn giản là 'set/p =' nếu bạn không cần lời nhắc. – dbenham

+2

Vì lý do nào đó, ứng dụng của tôi đang nổ mìn ngay qua logic tạm dừng. Rất lạ. – ouflak

+7

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 hàng loạt) –

11

pause lệnh là những gì bạn đang tìm kiếm. Nếu bạn đang tìm kiếm CHỈ trường hợp khi nhập được đánh bạn có thể lạm dụng các runas lệnh:

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

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

1

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

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

Và một cảnh báo trên SET /P - trong khi set /p DUMMY=Hit ENTER to continue... sẽ làm việc,

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 keyed trong

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