Choice 命令
使用此命令可以讓用戶輸入一個字符,從而運行不同的命令。使用時應(yīng)該加/c:參數(shù),c:后應(yīng)寫提示可輸入的字符,之間無空格。它的返回碼為1234……。這個命令在有些Windows版本(比如WindowsXP)上可能不可用。
語法:
CHOICE:[/C[:]按鍵表] [/N] [/S] [/T[:]選擇值,秒數(shù)] [顯示文本]
其中,/C表示可選則的按鍵,/N表示不要顯示提示信息,/S表示大小寫字符敏感方式,/T表示若在批定的時間內(nèi)沒有選擇的話,自動執(zhí)行/C中定義的某個選擇值。顯示文本是CHOICE命令執(zhí)行時的提示信息。選擇結(jié)果將用ERRORLEVEL值來表示。
示例:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag
REM 應(yīng)先判斷數(shù)值最高的錯誤碼
if errorlevel 2 goto mem
if errorlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件運行后,將顯示 defrag,mem,end[D,M,E]? 用戶可選擇d m e ,然后if語句將作出判斷,d表示執(zhí)行標(biāo)號為defrag的程序段,m表示執(zhí)行標(biāo)號為mem的程序段,e表示執(zhí)行標(biāo)號為end的程序段,每個程序段最后都以goto end將程序跳到end標(biāo)號處,然后程序?qū)@示good bye,文件結(jié)束。
可替換的命令
對WindowsXP上不能使用CHOICE命令的情形,如果想使用相似的功能,可以使用 SET 命令,參見Set 命令 /P選項。
choice一般在cmd批處理中用來根據(jù)用戶輸入執(zhí)行不同的操作,非常實用,例如
下面是兩個軟件根據(jù)用戶選擇來執(zhí)行
@echo off
遠(yuǎn)程協(xié)助工具集
:start
cls
color 0a
MODE con: COLS=60 LINES=20
echo.
echo ===============================
echo 請選擇遠(yuǎn)程工具
echo ===============================
echo.
echo 1. AnyDesk
echo.
echo 2. TeamViewer
echo.
echo.
:cho
set choice=
set /p choice= 請輸入工具編號:
IF NOT "%Choice%"=="" SET Choice=%Choice:~0,1%
if /i "%choice%"=="1" goto AnyDesk
if /i "%choice%"=="2" goto TeamViewer
:AnyDesk
AnyDesk.exe
exit
:TeamViewer
TeamViewer.exe
exit
下面來介紹一下choice的命令使用
CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]
描述:
該工具允許用戶從選擇列表選擇一個項目并返回所選項目的索引。
參數(shù)列表:
/C choices 指定要創(chuàng)建的選項列表。默認(rèn)列表是 "YN"。
/N 在提示符中隱藏選項列表。提示前面的消息得到顯示,選項依舊處于啟用狀態(tài)。
/CS 允許選擇分大小寫的選項。在默認(rèn)情況下,這個工具是不分大小寫的。
/T timeout 做出默認(rèn)選擇之前,暫停的秒數(shù)。可接受的值是從 0到 9999。如果指定了 0,就不會有暫停,默認(rèn)選項會得到選擇。
/D choice 在 nnnn 秒之后指定默認(rèn)選項。字符必須在用 /C 選項指定的一組選擇中; 同時,必須用 /T 指定 nnnn。
/M text 指定提示之前要顯示的消息。如果沒有指定,工具只顯示提示。
/? 顯示此幫助消息。
注意:
ERRORLEVEL 環(huán)境變量被設(shè)置為從選擇集選擇的鍵索引。列出的第一個選擇返回 1,第二個選擇返回 2,等等。如果用戶按的鍵不是有效的選擇,該工具會發(fā)出警告響聲。如果該工具檢測到錯誤狀態(tài),它會返回 255 的ERRORLEVEL 值。如果用戶按 Ctrl+Break 或 Ctrl+C 鍵,該工具會返回 0 的 ERRORLEVEL 值。在一個批程序中使用 ERRORLEVEL 參數(shù)時,將參數(shù)降序排列。
示例:
CHOICE /?
CHOICE /C YNC /M "確認(rèn)請按 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。"
下面是來自國外網(wǎng)站的介紹
The CHOICE command was introduced in MS-DOS 6 and is still available in MS-DOS 7 (Windows 95/98).
In Windows NT 4, 2000 and XP, CHOICE is no longer a part of the standard distribution. It is, however, available as part of the Windows NT 4 Resouce Kit.
On the other hand, if you still have that old unused MS-DOS 6 or Windows 95/98 version lying around, you can use the CHOICE.COM from that version instead. (*)
Just copy it to a directory that is in your PATH.
Note: 16-bit DOS versions will not work in 64-bit Windows versions.
CHOICE is available again in Windows Vista and later versions.
大部分意思就是 這個命令會在以后的系統(tǒng)中一直存在,但注意16位的系統(tǒng)無法在64位系統(tǒng)自帶了,而我們安裝的64位系統(tǒng)已經(jīng)集成了64的choice命令,大家可以放心使用。
注釋
ERRORVALUE 環(huán)境變量被設(shè)置為用戶從選擇列表中選擇的鍵的索引。您指派的第一個鍵將返回值 1,第二個將返回值 2,第三個將返回值 3,依此類推。如果用戶按下一個不在您指派的鍵中間的鍵,Choice.exe 將發(fā)出警告聲(即,它向控制臺發(fā)送一個 BEL 或 07h 字符)。如果 Choice.exe 檢測到錯誤情況,它就會返回錯誤值 255。如果用戶按 Ctrl+Break 或 Ctrl+C,Choice.exe 就會返回錯誤值 0。當(dāng)您在批處理程序中使用錯誤值參數(shù)時,請將它們以降序列出。
示例
請在批處理文件中鍵入下列語法:
choice /c ync
運行 Choice.exe 時出現(xiàn)下列語句:
[Y,N,C]?
請在批處理文件中鍵入下列語法:
choice /c ync /n /m Yes, No or Continue?
運行 Choice.exe 時出現(xiàn)下列語句:
Yes, No, or Continue?
按如下方式將文字添加到語法中:
choice /c ync /m Yes, No, or Continue
運行 Choice.exe 時出現(xiàn)下列語句:
Yes, No, or Continue [Y,N,C]?
/t 命令行選項將設(shè)置一個時間限制(在該限制內(nèi)用戶必須響應(yīng)),并指定當(dāng)用戶在該時間限制內(nèi)沒有作出響應(yīng)時將顯示的值。要將時間限制設(shè)置為五秒并指定 N 作為默認(rèn)值,請在批處理程序中鍵入下列命令行:
choice /c ync /t 5 /d n
當(dāng)批處理文件啟動 Choice.exe 時,將出現(xiàn)下列消息:
[Y,N,C]?
如果用戶未能在五秒鐘內(nèi)按下一個鍵,Choice.exe 將選擇 N 并返回錯誤值 2。否則,Choice 將返回與用戶所選對應(yīng)的值。
您可能感興趣的文章:- 批處理入門手冊之批處理常用DOS命令篇(attrib、del、copy、xcopy)
- 批處理入門手冊之批處理常用DOS命令篇(echo、rem、cd、dir)
- dos下通過wmic命令查看硬盤和內(nèi)存/CPU信息(windows自帶命令查看硬件信息)
- dos里執(zhí)行tracert命令只有一跳的原因及解決方法
- cmd命令行大全 dos命令 cmd命令整理
- dos(cmd)中刪除、添加、修改注冊表命令
- dos命令 cd命令使用說明[圖文說明]
- C/C++中一次性執(zhí)行多個DOS命令的實現(xiàn)思路