批處理(bat)choice命令詳解

語法

choice [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
choice 命令可以讓用戶輸入一個字符,從而運行不同的命令

參數

$ choice /?
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
    該工具允許用戶從選擇列表選擇一個項目並返回所選項目的索引。

參數列表:
   /C    choices       指定要創建的選項列表。默認列表是 "YN"。
   /N                  在提示符中隱藏選項列表。提示前面的消息得到顯示,
                       選項依舊處於啓用狀態。
   /CS                 允許選擇分大小寫的選項。在默認情況下,這個工具
                       是不分大小寫的。
   /T    timeout       做出默認選擇之前,暫停的秒數。可接受的值是從 0
                       到 9999。如果指定了 0,就不會有暫停,默認選項
                       會得到選擇。
   /D    choice        在 nnnn 秒之後指定默認選項。字符必須在用 /C 選
                       項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。
   /M    text          指定提示之前要顯示的消息。如果沒有指定,工具只
                       顯示提示。
   /?                  顯示此幫助消息。

   注意:
   ERRORLEVEL 環境變量被設置爲從選擇集選擇的鍵索引。列出的第一個選
   擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,
   該工具會發出警告響聲。如果該工具檢測到錯誤狀態,它會返回 255 的
   ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0
   的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數時,將參數降
   序排列。

示例:
   CHOICE /?
   CHOICE /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"
   CHOICE /T 10 /C ync /CS /D y
   CHOICE /C ab /M "選項 1 請選擇 a,選項 2 請選擇 b。"
   CHOICE /C ab /N /M "選項 1 請選擇 a,選項 2 請選擇 b。"

參數說明:

  • /n 參數
    如果加上 /n 參數,那麼屏幕上的提示就會被屏蔽了.在實際運用中,爲了保持界面美觀,通常都加上 /n 參數。如:
    choice /c 123 /n

  • >nul
    choice /c 12 /n
    當你選擇時,你輸入的字符會顯示在屏幕上,影響美觀!
    choice /c 12 /n >nul
    可以屏蔽你輸入的字符,不在屏幕上顯示

  • /t
    choice /t/d還有延時功能,衆所周知,用ping可以延時
    ping /n 2 127.1 >nul
    choice也可以
    choice /c k /n /t 2 /d k
    choice還有一個好處:當你想快速跳過時,不停按k即可

  • /m
    echochoice,相當於set /p a=〔message〕一樣

  • /cs
    區分大小寫,通常是不區分的

返回值判斷

如果是set /p

set /p a=
if %a%==1 ………………
if %a%==2 ………………
if %a%==3 ………………

choice的返回值是環境變量errorlevel的值
例如:choice /c abc /n
當你選擇a時,a是第1個選項,所以errorlevel的值爲1
當你選擇b時,b是第2個選項,所以errorlevel的值爲2
當你選擇c時,c是第3個選項,所以errorlevel的值爲3

那麼,語句應該這樣寫:

choice /c abc /n
if %errorlevel%==1 ………………
if %errorlevel%==2 ………………
if %errorlevel%==3 ………………

示例

choice /C YNC /M "確認請按 Y,否請按 N,或者取消請按 C。"`

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章