alegere (comandă) - choice (command)

alegere
Comanda de alegere ReactOS-0.4.13 667x434.png
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 .microsoft .com / en-us / windows-server / administration / windows-commands / choice

Î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,nn Această 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.
  • /S Specifică 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[:]c Această opțiune implicită este „c”.
  • /M text Specifică șirul de prompt de afișat.

Steaguri:

  • /NSpecifică să nu se afișeze opțiunile și „?” la sfârșitul șirului prompt.
  • /CS Specifică 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

linkuri externe