2017-07-29 72 views
0

我完成了我的計劃,我已經有了一個基本的菜單:如何批量自動輸入單字母/數字

echo [1] - New Log Entry 
echo [2] - Read Log Entry 
echo [3] - Clear Log 
echo [4] - Exit 
set /p menu=Number: 
if %menu%==1 goto NewLog 
if %menu%==2 goto Readlog 
:::and so on 

但我希望它是這樣,當你在一個輸入的數字,它會自動輸入他們放入的數字。

我想我以前見過它,但我不太確定。

+0

見'選擇/?'或閱讀https://ss64.com/nt/choice.html – LotPings

+0

你的意思是「它會自動進入n他們把他們放在「? – Compo

+0

@Compo,讓您在按下按鍵後不必按Enter鍵 – awillers55

回答

0

命令CHOICE可用於選擇其中一個預定義選項。

@echo off 
:Menu 
cls 
echo/ 
echo [1] - New log entry 
echo [2] - Read log entry 
echo [3] - Clear log 
echo [4] - Exit 
echo/ 
choice /C 1234 /N /M "Your choice: " 
echo/ 
if errorlevel 4 goto :EOF 
if errorlevel 3 goto ClearLog 
if errorlevel 2 goto ReadLog 

rem User has taken first choice as being the only remaining choice. 

echo Creating new log entry ... 
echo/ 
pause 
goto Menu 

:ReadLog 
echo Reading log entry ... 
echo/ 
pause 
goto Menu 

:ClearLog 
echo Clearing log ... 
echo/ 
pause 
goto Menu 

CHOICE的使用率低於set /P variable=prompt text這樣的任務更好的用戶必須按所提供的關鍵之一立即繼續執行一旦提供密鑰通過批處理文件的用戶打。 set /P使用戶可以自由輸入任何內容,從根本不輸入任何內容,直到包含字符的很長的字符串,如果不寫入額外的代碼以確保批處理文件的工作,可能會導致評估環境變量值時出現語法錯誤即使對於任何無效的用戶輸入。

爲了解所使用的命令及其工作方式,請打開命令提示符窗口,在其中執行以下命令,並仔細閱讀爲每個命令顯示的所有幫助頁面。

  • choice /?
  • cls /?
  • echo /?
  • goto /?
  • if /?
  • pause /?

參見網頁: