不,鮑勃。 '你是誰,沒有得到關於變量time
的觀點。它是由系統設置的保留變量,但可以由用戶腳本覆蓋。幾乎任何其他變量名稱,你可以使用 - 只是不time
,date
, path
, random
和一些其他。
至於你的問題,
set "mytime=1 am"
call :starttimer
:game
... whatever
:getinput
set "response="
set /p "response=%~1"
if not exist timerfinished.txt goto :eof
:: here change "mytime"
set "mytime=2 am"
:starttimer
start /min "" timer.bat 10
goto :eof
其中timer.bat
是
@echo off
del timerfinished.txt 2>nul
timeout %1 /nobreak>nul
echo.>timerfinished.txt
exit
的timer.bat
文件只是刪除標記文件timerfinished.txt
,通過它接收到的第一個參數設定的時間延遲(%1
- 在主代碼中設置爲10)然後創建文件並退出。
的主要代碼最初使用:starttimer
那麼每當你想要的提示和等待換一個響應啓動定時器,你執行
call :getinput "Prompt for input "
和響應將出現在%response%
。
注意,在這個常規設置response
到什麼最初確保響應是空的,如果用戶只需按下輸入
OK - 所以沒有什麼實際發生直到你輸入的響應使用此方案只有這樣,時間纔會增加,並且遊戲繼續更新時間。如果您希望超時結束實際上做了某些事情 - 實際上這不會發生 - 除非您使用choice
通過超時選項輸入您的響應。
如果您不延遲腳本,超時的意義何在? – SomethingDark
不要弄亂系統變量'%time%'。 '1 am'肯定不是一個有效的值。 – Stephan
這是一個有效的值。我試過了,只是時間沒有起作用。 –