alegere (comandă) - choice (command)
|
Cele ReactOS
choice comanda | |
| Dezvoltatori | Microsoft , Novell , Datalight , Jim Hall , colaboratori ReactOS |
|---|---|
| Eliberarea inițială | 1993, acum 27-28 de ani |
| Sistem de operare | DOS , Windows , ReactOS |
| Platformă | Cross-platform |
| Tip | Comanda |
| Licență | MS-DOS, PC - DOS, DR-DOS, Windows, PTS-DOS: brevetate de software comercial FreeDOS, ReactOS: GPL v2 |
| Site-ul web | docs |
În calcul , choiceeste o comandă care permite fișierelor batch să-i invite pe utilizator să selecteze un element dintr-un set de opțiuni cu un singur caracter. Este disponibil într-o serie de shell-uri de linie de comandă ale sistemului de operare .
Istorie
Comanda a fost introdusă mai întâi ca o comandă externă (cu numele de fișier CHOICE.COM sau CHOICE.EXE) cu MS-DOS 6.0. Este inclus în Novell DOS 7 și IBM PC DOS 7.0 și este, de asemenea, disponibil din shell - ul de linie de comandă al unor versiuni de Microsoft Windows , dar nu sub Windows 2000 și Windows XP . Prima dată a fost disponibil pentru Windows în Windows XP Resource Kit . A fost reintrodus în Windows Server 2003 și este prezent în versiunile ulterioare.
Începând cu Windows 2000, SETcomanda are funcționalități similare folosind /P argumentul liniei de comandă . Cu toate acestea, această comandă necesită o lovitură suplimentară a tastei (apăsând tasta ENTER), care nu este necesară de către choice.
choiceComanda a fost adaptată pentru OS / 2 , REXX și Perl . Este, de asemenea, disponibil în ROM-DOS Datalight , FreeDOS , PTS-DOS și ReactOS . Versiunea FreeDOS a fost dezvoltată de Jim Hall și este licențiată sub GPL v2 .
Utilizare
Comanda returnează opțiunea selectată ca un cod de ieșire care este setat la indexul cheii pe care utilizatorul o selectează din lista de opțiuni. Prima alegere din listă returnează o valoare de 1, a doua o valoare de 2 și așa mai departe. Dacă este apăsată o tastă care nu este o alegere validă, comanda va emite un bip de avertizare. Dacă este detectată o condiție de eroare, va fi returnată o valoare a codului de ieșire de 255. O valoare a codului de ieșire 0 va fi returnată dacă utilizatorul apasă CTRL+ BREAKsau CTRL+ C. Alegerea afișează opțiunile implicite Y și N dacă sunt utilizate fără parametri.
Sintaxă
DOS
CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] ["text"]
Argumente:
-
/C[:]choicesSpecifică cheile permise. Valoarea implicită este „YN”. -
/T[:]c,nnAceastă opțiune implicită este „c” după „nn” secunde. -
textSpecifică șirul de prompt de afișat. (Cotațiile sunt opționale).
Steaguri:
-
/NSpecifică să nu se afișeze opțiunile și „?” la sfârșitul șirului prompt. -
/SSpecifică faptul că tastele de alegere trebuie tratate ca fiind sensibile la majuscule.
Microsoft Windows, ReactOS
CHOICE [/C [<Choice1><Choice2><…>]] [/N] [/CS] [/T <Timeout> /D <Choice>] [/M <"Text">]
Argumente:
-
/C[:]choicesSpecifică cheile permise. Valoarea implicită este „YN”. (Microsoft Windows restricționează cheile de alegere valide la valorile az, AZ, 0-9 și ASCII de la 128 la 254) -
/T[:]nnAceastă opțiune implicită este / D după „nn” secunde. Trebuie specificat cu implicit / D. -
/D[:]cAceastă opțiune implicită este „c”. -
/M textSpecifică șirul de prompt de afișat.
Steaguri:
-
/NSpecifică să nu se afișeze opțiunile și „?” la sfârșitul șirului prompt. -
/CSSpecifică faptul că tastele de alegere trebuie tratate ca fiind sensibile la majuscule.
Exemplu
Fișierul batch de mai jos oferă utilizatorului trei opțiuni. Utilizatorul este direcționat în funcție de introducerea sa prin evaluarea codului de ieșire folosind IF ERRORLEVELcomanda (care testează pe „mai mare sau egal”). Alegerea selectată este apoi tipărită pe ecran folosind ECHOcomanda.
@ECHO off
@CHOICE /C:123
IF ERRORLEVEL 3 GOTO three
IF ERRORLEVEL 2 GOTO two
IF ERRORLEVEL 1 GOTO one
GOTO end
:one
ECHO You have pressed "1"!
GOTO end
:two
ECHO You have pressed "2"!
GOTO end
:three
ECHO You have pressed "3"!
:end
@PAUSE
- Rețineți că exemplul utilizează sintaxa DOS. Acest exemplu necesită ajustări ușoare înainte de a se aplica direct versiunilor Windows ale
CHOICEcomenzii. - Rețineți că comanda IF, atunci când verificați ERRORLEVEL, compară numărul și se potrivește dacă ERRORLEVEL este egal sau mai mare decât acel număr. Din acest motiv, comparațiile IF ERRORLEVEL ar trebui făcute în ordine descrescătoare.
- Rețineți că, dacă utilizatorul apasă Control-C pentru a scăpa de CHOICE urmat de N, atunci programul va continua. Este nevoie de primul „Goto end”.
Vezi si
Referințe
Lecturi suplimentare
- Cooper, Jim (2001). Ediție specială folosind MS-DOS 6.22, ediția a treia . Editura Que . ISBN 978-0789725738.
- Stanek, William R. (2008). Consultant de buzunar al administratorului liniei de comandă Windows, ediția a II-a . Microsoft Press . ISBN 978-0735622623.