我想阻止用戶的選擇,除了相關選單中定義的默認選項。
ECHO 選擇一個檔案
ECHO。
ECHO 1. 處理檔案和命令
ECHO 2. 另一個檔案和命令
ECHO 3.另一個檔案和它的命令
ECHO 4. 斷開連接
ECHO 5. 退出
ECHO.
set /p choice="選擇一個選項。"
如果"%choice%"=="1",轉到smenu_1
如果"%choice%"=="2",轉到smenu_2。
如果"%choice%"=="3",則轉到smenu_3。
如果"%選擇%"=="4",轉到smenu_4
如果"%選擇%"=="5",則轉入結束。
:smenu_1
ECHO 選擇另一個選項
ECHO。
ECHO 1 - 這是一個選項
ECHO 2 - 回傳到起點
ECHO.
SET /P M=選擇一個選項。
IF %M%==1 GOTO This_Submenu_Does_Multiple_Commands
IF %M%==2 GOTO start
這是我的示例代碼。在主選單中,如果我輸入 "6",它會自動進入第一個子選單。我嘗試了很多類似問題中提供的選項或通過網路,如輸入驗證或類似的東西。我想讓用戶在選項中輸入一個數字。例如,在主選單中,如果選擇了 "6 "或者 "25",它應該警告用戶選擇了一個錯誤的選項并給予更多嘗試。我希望所有的子選單都能這樣。此外,在這一點上還出現了另一個問題。選單選項可能超過30個,這意味著可能不只是個位數。你能告訴我如何限制用戶輸入盡可能多的選單選項(包括子選單選項可能與他們自己的選項數量不同)。謝謝。
uj5u.com熱心網友回復:
如果你仍然想使用連續的數字,并且希望有超過9個可能的條目,你可以使用完全相同的方法,就像我在我對你之前問題的回答中使用的那樣。它仍然使用Set /P,但使用Set命令和FindStr來執行輸入驗證。
示例:
@Echo Off
SetLocal EnableExtensions
:選單
激活
Echo選項選單
Echo(
Echo 1. 處理檔案和命令
Echo 2.另一個檔案和命令
Echo 3.另一個檔案和命令
Echo 4. 另一個檔案和命令
回音5。一個不同的檔案和命令
回音6. 其他一些檔案和命令
回音7. 替代檔案和命令
Echo 8. 也許是這個檔案和命令
Echo 9. 或者甚至是這個檔案和它的命令
Echo 10. 斷開連接
Echo 11. 退出
Echo(
對于 /F "Delims==" %%G In ('"(Set option) 2>NUL"') 設定"%%G="。
設定/P選項="請輸入你選擇的選項編號,并按下ENTER>"。
設定選項 | %SystemRoot%System32findstr.exe /R "^option=[123456789]$ ^option=1[01]$" 1>NUL || GoTo Menu
:已驗證
許可證
Echo(
Echo 你選擇的選項是%option%。
%SystemRoot%System32 imeout.exe /T 5
當你的選項數量改變時,你只需根據需要改變findstr.exe的匹配字串。例如,對于27個選項(1...27),"^option=[123456789]$ ^option=1[0123456789]$ ^option=2[01234567]$"/code>。要學習如何使用FindStr,請打開一個命令提示符視窗,輸入findstr /?并按下ENTER鍵。
uj5u.com熱心網友回復:
添加:menu作為批處理的第一行,并在if "%choice%"=="5" goto End行下添加cls & goto menu。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/315732.html
標籤:
下一篇:用&批量創建檔案
