Următorul tabel prezintă descriptorii disponibili.
descriptor Echivalentul numeric al unui descriptor
STDIN 0 Intrare tastatură
STDOUT 1 Ieșire în fereastra de comandă
STDERR 2 Eroare de ieșire în fereastra de comandă
NEDEFINATE 3-9 Descriptorii sunt definiți individual
pentru fiecare program de aplicații
Pentru a determina redirecționarea descriptorilor existenți, utilizați caracterul ampersand () urmat de numărul descriptorului redirecționat (care este, numărul descriptorului). De exemplu, pentru a redirecționa descriptorul 2 (STDERR) la descriptorul 1 (STDOUT), introduceți:
2> 1
Tabelul următor descrie operatorii de redirecționare pentru fluxurile de intrare și de ieșire.
Operatorul de redirecționare Descriere
> Înregistrează ieșirea comenzii în locul ferestrei de comandă
linie sau descriptor
la un fișier sau la un dispozitiv, de exemplu, la o imprimantă.
<Читает поток входных данных команды из файла, а не с
tastatură sau descriptor.
>> Adăugă ieșirea comenzii la sfârșitul fișierului, nu
în timp ce ștergeți informațiile existente din fișier.
> Citește ieșirea unui descriptor ca intrare
date pentru un alt descriptor.
<& Считывает входные данные одного дескриптора как выходные
datele unui alt descriptor.
| | Citește ieșirea unei comenzi și le scrie
la intrarea unei alte echipe.
Această procedură este cunoscută sub numele de "canal".
În mod implicit, intrarea de date de comandă (mâner STDIN) este trimis de la tastatură interpret comenzi cmd.exe și Cmd.exe trimite ieșirea de comandă (mâner STDOUT) în fereastra de comandă.
Redirecționarea intrărilor (<)
Pentru a redirecționa intrarea tastaturii într-un fișier sau dispozitiv, folosiți butonul "<». Например, для ввода данных в команду sort из файла File.txt введите:
sort
Operatorul "<» открывает файл с заданным именем только для чтения. Поэтому с его помощью нельзя записывать в файл. Например, при запуске программы с помощью перенаправления <&2 все попытки прочитать дескриптор 0 заканчиваются неудачей, так как дескриптор 2 первоначально открыт с доступом только для чтения.
remarcă
• Zero este descriptorul implicit pentru operatorul de redirecționare a intrărilor "<».
Redirecționări de ieșire (>)
Ieșirea din aproape toate comenzile este afișată în fereastra de comandă. Chiar și comenzi care ies de date pe un disc sau o imprimantă, emite mesaje și solicitări în fereastra de comandă. Pentru a redirecționa ieșirea din fereastra de comandă într-un fișier sau dispozitiv, utilizați operatorul ">". Acest operator este utilizat cu majoritatea comenzilor. De exemplu, pentru a redirecționa ieșirea comenzii dir la fișierul Dirlist.txt, tastați:
dir> dirlist.txt
Dacă fișierul Dirlist.txt nu există, interpretul de comandă Cmd.exe îl va crea. Dacă fișierul există, Cmd.exe va înlocui informațiile din fișier cu datele primite de la comanda dir.
Pentru a executa comanda netsh de comutare a rutei și a trimite rezultatele către fișierul Route.cfg, tastați:
netsh rutare dump> c: \ route.cfg
Operatorul ">" deschide fișierul specificat numai pentru scriere. Prin urmare, cu ajutorul acestui operator, fișierul nu poate fi citit. De exemplu, dacă executați un program cu redirecționare> 0, toate încercările de scriere a mânerului 1 nu reușesc, deoarece mânerul 0 este inițial deschis cu acces numai pentru citire.
remarcă
• Unitatea este descriptorul implicit pentru operatorul de redirecționare ">".
Utilizând operatorul "" pentru a redirecționa intrarea și duplicarea
Pentru a utiliza un operator de redirecționare a intrărilor (<) с оператором дублирования (&), указанный файл должен существовать. Если входной файл существует, Cmd.exe открывает его только для чтения и отправляет его содержимое в файл, как если бы ввод выполнялся с клавиатуры. При задании дескриптора интерпретатор команд Cmd.exe дублирует его в дескриптор, существующий в системе.
Pentru a deschide fișierul File.txt, sortați conținutul acestuia și apoi trimiteți-l în fereastra de comandă (adică în fluxul STDOUT), introduceți: Pentru a găsi fișierul File.txt și a redirecționa descriptorul 1 (STDOUT) și descriptorul 2 (STDERR) în Search.txt, introduceți: Pentru a duplica un descriptor definit de utilizator 3 ca intrare pentru a manipula 0 (STDIN), introduceți: Utilizând operatorul "" pentru a redirecționa ieșirea și duplicarea Utilizând operatorul ">>" pentru a adăuga ieșire Pentru a adăuga ieșirea comenzii netstat la sfârșitul fișierului Tcpinfo.txt, introduceți: Utilizarea conductei de țeavă (|) - țeavă În acest exemplu, ambele comenzi sunt pornite în același timp, dar comanda de sortare se oprește până la obținerea ieșirii comenzii dir. Comanda de sortare utilizează ieșirea comenzii dir ca intrare și apoi trimite ieșirea către descriptorul 1 (STDOUT). Combinarea comenzilor cu operatori de redirecționare Când se utilizează mai mult de un filtru într-o singură comandă, acestea trebuie separate cu un canal (|). De exemplu, următoarea comandă caută fișierele din fiecare director al unității C, în numele căruia este prezentă linia "Log", și le afișează pagină după pagină: 5. Pentru linia de comandă, este posibil să utilizați filtre, care vă permit să controlați ieșirea informațiilor. Există trei comenzi de filtrare: 6. Utilizarea mai multor comenzi și simboluri de procesare condiționată Pentru a trimite mai multe comenzi, puteți utiliza caracterele speciale listate în tabelul următor. notițe 7. Utilizarea operatorului de canal (|) din scriptul VBS
sort
findfile file.txt> search.txt 2<&1
<&3
Când redirecționați ieșirea la un fișier și specificați un nume de fișier existent, interpretul de comandă Cmd.exe deschide fișierul cu acces numai pentru scriere și suprascrie conținutul acestuia. Dacă este specificat descriptorul, interpretul de comandă Cmd.exe duplică fișierul într-un descriptor existent. Pentru a duplica un descriptor definit de utilizator 3 în descriptorul 1, introduceți:
> 3
Pentru a redirecționa toate ieșire, inclusiv descriptor de ieșire 2 (fluxul STDERR), de la comanda ipconfig să se ocupe de 1 (fluxul STDOUT) și apoi redirecționați ieșirea la Output.log fișier, tip:
ipconfig.exe >> output.log 2> 1
Pentru a adăuga ieșire la un fișier fără a pierde datele conținute în el, se folosește un simbol dublu "more" (adică >>). De exemplu, următoarea comandă adaugă o listă de directoare create de comanda dir fișierului Dirlist.txt:
dir >> dirlist.txt
netstat >> tcpinfo.txt
Operatorul de canal "vertical line" (|) ia ieșirea unei comenzi (STDOUT în mod implicit) și le trimite la intrarea unei alte comenzi (STDIN în mod implicit). De exemplu, următoarea comandă sortează directorul:
dir | sort
Prin combinarea comenzilor de filtrare cu alte comenzi și nume de fișiere, puteți crea comenzi pentru a comanda. De exemplu, pentru a salva numele fișierelor care conțin șirul "LOG", utilizați următoarea comandă:
dir / b | găsiți "log" loglist.txt
Ieșirea comenzii dir este trimisă comenzii de căutare. Numele de fișiere care conțin șirul "LOG" sunt stocate în fișierul Loglist.txt ca o listă (de exemplu, NetshConfig.log, Logdat.svd și Mylog.bat).
dir c: \ / s / b | găsi "jurnal" | mai mult
Prezența unui canal (|) indică Cmd.exe că ieșirea comenzii dir trebuie trimisă comenzii find. Comanda de căutare selectează numai acele nume de fișiere care conțin șirul "LOG". Cea mai mare comandă afișează numele fișierelor obținute de comanda de căutare cu o pauză după umplerea fiecărui ecran.
Mai mult Afișează conținutul fișierului sau ieșirea comenzii într-o singură fereastră de comandă.
Găsiți Căutați caracterele specificate în fișiere și ieșirea comenzii.
Sortați Sortarea fișierelor și ieșiți din comanda în ordine alfabetică.
Puteți rula mai multe comenzi din aceeași linie de comandă sau script folosind simboluri de procesare condiționată. Când se utilizează mai multe comenzi care conțin simboluri de procesare condiționată, executarea comenzilor din dreapta simbolului procesării condiționale va fi efectuată în funcție de rezultatele comenzii din stânga simbolului. De exemplu, doriți ca comanda să ruleze numai dacă comanda anterioară nu a reușit. Sau necesită ca comanda să fie executată numai dacă comanda anterioară a avut succes.
Simbol Sintaxă Definiție
[. ] command1 command2 Folosit pentru a separa mai multe
comenzi într-o singură linie de comandă.
Prima comandă este executată în Cmd.exe,
apoi a doua comandă.
[. ] command1 command2 Pornește comanda din spatele simbolului .
Doar dacă echipa se confruntă cu asta
simbolul a fost executat cu succes.
Prima comandă este executată în Cmd.exe.
A doua comandă este executată numai dacă
primul a avut succes.
|| [. ] command1 || command2 Pornește comanda din spatele lui ||,
Numai în cazul în care echipa se confruntă
simbol || nu a fost efectuată.
Prima comandă este executată în Cmd.exe.
A doua comandă este executată numai dacă
prima nu a fost executată (codul primit
eroarea este mai mare decât zero).
() [. ] (comanda1 command2) Folosit pentru grupare sau atașare
comenzi.
; sau. command1 parameter1; parameter2 Se utilizează pentru a separa parametrii
echipa.
• ampersand (), o conductă verticală (|) și paranteze () sunt caractere speciale, care trebuie să fie precedate de caracterul de evacuare (^) sau ghilimele, atunci când aceste caractere sunt transmise ca argumente.
• Dacă comanda finalizează operația cu succes, este returnat un cod de eroare zero (0) sau nu este returnat nici un cod. Pentru mai multe informații despre codurile de terminare, consultați Utilizarea Windows Deployment Kit și Windows Resource Kit.
- creați un fișier numit test.vbs cu acest conținut:
WScript.Echo "calc"
- tastați în linia de comandă
cscript test.vbs // Nologo | cmd
După ce apăsați Enter, calculatorul porneșteArticole similare