MS-DOS Toplu iş dosyası enter tuşu ile duraklatma


152

MS-DOS toplu iş dosyasında komut dosyasını duraklatmak ve kullanıcının enter tuşuna basmasını beklemek mümkün müdür?

Bunu bir for döngüsü içinde yapmak istiyorum. Her yinelemeden sonra, komut dosyasının duraklamasını ve kullanıcının 'Enter'a basmasını beklemesini istiyorum.

Yanıtlar:


257

pauseTam olarak bunu yapan bir komut var, ancak özellikle enter tuşu olmasa da.

Yalnızca enter tuşunu gerçekten beklemek istiyorsanız, setkukla değişkenle kullanıcı girişi istemek için komutu kullanabilirsiniz, örneğin:

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


17
Bir değişken adı belirtmenize gerek yoktur: set /p=Hit ENTER to continue...veya sadece set /p=bir bilgi istemine ihtiyacınız yoksa.
dbenham

2
Bazı nedenlerden dolayı, uygulamam duraklama mantığının hemen ötesine geçiyor. Çok ilginç.
ouflak

11
Bu bağlamda kullanılan "uygulama" kelimesinin (toplu iş dosyası) kullanıldığını görmek biraz tuhaf görünüyor
Adrian Grigore

benim için çalışmıyor. yalnızca 'set' çalıştığı / ortam içine kaydedildiği zaman ikinci başlatmadan itibaren çalışır.
SES

14

pausekomut aradığınız şeydir. YALNIZCA enter tuşuna basıldığında duruma bakıyorsanız, runaskomutu kötüye kullanabilirsiniz :

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

Enter tuşuna basılıncaya kadar ekran donacak. Giriş dışında set/p=diğer tuşlara basarsanız görüntülenmeyeceklerinden daha çok sevdiğim şey .


6

Bunu şu pausekomutla yapabilirsiniz, örnek:

dir
pause
echo Now about to end...
pause

1
pausegerçekten de tek geçerli cevaptır MS-DOS(diğer tüm yanıtlar cmdyalnızca işe yarar). Öyleyse, cevabınız aslında bu özel soru için tamamen doğru olan tek soru (zaten 7 yıldan daha önce önerilmiş olmasına rağmen)
Stephan

3

Hangi işletim sistemini kullandığınıza bağlı olarak, esnek iseniz CHOICE, hemen hemen her tuş EXCEPTgirişini beklemek için kullanılabilir

Eğer gerçekten Microsoft'un sadece bir MS-DOS öykünücüsü olan "Komut İstemi" olarak adlandırmakta ısrar ettiği şeyden bahsediyorsanız, o zaman belki TIMEOUTamacınıza uygun olabilir ( timeout /t -1sadece herhangi bir tuş için değil ENTER) ve elbette CHOICEson WIN sürümlerinde de mevcuttur.

Ve bir uyarı SET /P- ancak set /p DUMMY=Hit ENTER to continue...işe yarayacak

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

sadece ENTER veya başka bir şey olup olmadığını, ENTER ile biten başka bir şeyin girilip girilmediğini algılayacaktır.


0

Tek geçerli cevap pausekomut olacaktır.

Bu özellikle 'ENTER' tuşunu beklemese de, basılan herhangi bir tuşu bekler.

Ve kullanıcı için uygun olmasını istiyorsanız pause, en iyi seçenektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.