2013-07-09 162 views
1

我目前正在使用批處理文件在Windows 7中進行遊戲。所以,我有它問你問題的順序,你在回答中鍵入:命令窗口關閉輸入

:MainMenu 
set /p LMainMenu= 
if %LMainMenu%==1 goto PlayMenu 
if %LMainMenu%==2 goto ColourMenu 
if %LMainMenu%==3 goto Reset1 
if %LMainMenu%==4 goto AboutMenu 
goto MainMenu 

因此,如果有人不輸入任何東西,並按下「Enter」鍵,在CMD窗口將關閉。我如何防止這種情況發生?我添加了'goto MainMenu',所以如果他們輸入1,2,3,4以外的任何內容,他們將被收回。 很多將不勝感激。謝謝。

+0

你應該處理空字符串作爲其中一個答案 –

+0

我嘗試添加: 如果%LMainMenu%==轉到MainMenu的 它仍然如果我按Enter鍵則關閉。 – user2507295

+0

這是空字符串的語法錯誤。用引號環繞數值:'IF「%LMainMenu%==」「GOTO MainMenu' – mojo

回答

2

試試這個

:MainMenu 
set /a LMainMenu=1 
set /p "LMainMenu=enter a number: " 

如需更多幫助,請參閱help set在命令提示符。

+0

噢,我明白了,謝謝,您幫了很多忙。 – user2507295

+0

@ user2507295請避免發表」謝謝「意見。在SO上是對upvote和/或[接受](http://meta.stackexchange.com/a/5235)的回答。 –

0

添加此應該工作。 如果「%LMainMenu%」 ==「」 goto語句的MainMenu

+0

這不可能工作。當用戶剛剛按下[Enter]時變量保持未定義提示符,所以'%LMainMenu%'生成文字字符串「%LMainMenu%」。它沒有擴展爲空字符串。 –

1

如果你想有一個默認選擇(自動,當用戶只是按下了回車選擇),使用該解決方案Endoro建議。如果要循環播放,直到用戶進行有效選擇,利用這個來代替:

:MainMenu 
set "LMainMenu=" 
set /p "LMainMenu=Enter a number [1-4]: " 
if not defined LMainMenu goto MainMenu 
if "%LMainMenu%"=="1" goto PlayMenu 
...