2013-02-03 21 views
2

我在cmd批處理中使用超時事件,但是當它超時,我怎麼能捕獲用戶按下事件的關鍵?或者知道時間已經到了?如何趕上鍵事件timout(批)

喜歡的東西,也許這樣的:

 
@echo off 
echo "Please press anykey to continue or Program will exit" 
timeout /t 5 
(
    if(timeout == true and keypress != "null")(
      goto continue   
    ) else (
      exit 
    ) 
) 

P/S:對不起,使用一些這方面的Java代碼,因爲我仍然無法想象它是如何工作的CMD批處理(GOOGLE了,但還是不行。)

請幫忙,謝謝!

回答

0

另一個選項是選擇命令。

choice /c abcd /n /t 5 /d defaultchoice /m "Please press a or b or c or d to continue or Program will exit" 
if errorlevel 1 set choice=a 
if errorlevel 2 set choice=b 
if errorlevel 3 set choice=c 
if errorlevel 4 set choice=d 

選擇命令的缺點是你不能按任何鍵,你必須設置用戶可以按下的所有鍵。不過,可能有更好的解決方案。

/噸爲超時

/d爲默認選擇例如/d a

/n至隱藏的選擇

列表

/C ABCD到avaliable選擇設定爲A,B,c和d

添加/ CS用於區分大小寫

+0

我嘗試那個,但是當它在XP中運行時,它不能識別「選擇」命令。所以只有超時可以使用。你能幫我嗎? –

+0

您可以從Windows 98或Vista中的C:\ windows \ somewhere \ choice.exe中獲取選擇程序,或者您可以從[此鏈接]下載選擇(http://hp.vector.co.jp/authors/ VA007219/dkclonesup/choice.html)或其他地方,並將它放在與您正在運行的批處理文件**相同的目錄中。這是因爲某些原因,對於Windows 2000和Windows XP,刪除了choice.exe。 – user2033427