Fișier lot - Batch file
| Extensii de nume de fișier |
.bat, .cmd,.btm
|
|---|---|
| Tipul media internet | |
| Tipul formatului | Scripting |
| Container pentru | Scripturi |
Un fișier batch este un fișier script în DOS , OS / 2 și Microsoft Windows . Acesta constă dintr-o serie de comenzi care trebuie executate de interpretul din linia de comandă , stocate într-un fișier text simplu . Un fișier de lot poate conține orice comandă interpretul acceptă în mod interactiv și de a folosi constructe care permit ramificare condiționată și de buclare în cadrul fișierului de lot, cum ar fi IF, FORși GOTO etichete . Termenul „batch” provine din procesarea batch , adică „execuție non-interactivă”, deși un fișier batch nu poate procesa un lot de date multiple.
Similar cu Job Control Language (JCL), DCL și alte sisteme de pe sistemele mainframe și minicomputer, au fost adăugate fișiere batch pentru a ușura munca necesară pentru anumite sarcini regulate, permițând utilizatorului să configureze un script pentru a le automatiza. Când se execută un fișier batch, programul shell (de obicei COMMAND.COM sau cmd.exe ) citește fișierul și execută comenzile sale, în mod normal linie cu linie. Unix- sisteme de operare , cum ar fi Linux , au o structură similară, dar este mai flexibilă, tip de fișier numit un script de shell .
Extensia nume de fișier .bat este utilizat în DOS și Windows. Windows NT și OS / 2 au adăugat de asemenea .cmd . Fișierele batch pentru alte medii pot avea extensii diferite, de exemplu .btm în shell- urile legate de 4DOS , 4OS2 și 4NT .
Gestionarea detaliată a fișierelor batch s-a schimbat semnificativ între versiuni. Unele detalii din acest articol se aplică tuturor fișierelor batch, în timp ce alte detalii se aplică numai anumitor versiuni.
Variante
DOS
În DOS, un fișier batch poate fi pornit din interfața liniei de comandă, tastând numele acestuia, urmat de parametrii necesari și apăsând ↵ Entertasta. Când DOS se încarcă, fișierul AUTOEXEC.BAT , când este prezent, este executat automat, astfel încât orice comandă care trebuie executată pentru a configura mediul DOS poate fi plasată în acest fișier. Utilizatorii de computere ar trebui ca fișierul AUTOEXEC.BAT să configureze data și ora sistemului, să inițializeze mediul DOS, să încarce orice programe rezidente sau driverele de dispozitiv sau să inițializeze conexiunile și atribuțiile de rețea.
O extensie de nume de fișier .bat identifică un fișier care conține comenzi care sunt executate de către interpretul de comenzi COMMAND.COM linie cu linie, ca și cum ar fi o listă de comenzi introduse manual, cu câteva comenzi suplimentare specifice fișierului lot pentru funcționalități de programare de bază, inclusiv o GOTOcomandă pentru schimbarea fluxului de execuție a liniei.
Windows timpuriu
Microsoft Windows a fost introdus în 1985 ca o suprapunere grafică bazată pe interfața utilizatorului (GUI) pe sisteme de operare bazate pe text și a fost conceput pentru a rula pe DOS. Pentru a porni, a WINfost utilizată comanda, care ar putea fi adăugată la sfârșitul fișierului AUTOEXEC.BAT pentru a permite încărcarea automată a Windows. În versiunile anterioare, se putea rula un fișier de tip .bat din Windows în MS-DOS Prompt. Windows 3.1x și versiunile anterioare, precum și Windows 9x au invocat COMMAND.COM pentru a rula fișiere batch.
OS / 2
Sistemul de operare IBM OS / 2 a acceptat fișiere batch în stil DOS. De asemenea, a inclus o versiune a REXX , un limbaj de scriptare mai avansat pentru fișierele batch . IBM și Microsoft au început să dezvolte acest sistem, dar în timpul construcției acestuia s-a despărțit după o dispută; ca rezultat al acestui fapt, IBM s-a referit la shell-ul consolei lor DOS, fără a menționa Microsoft, numindu-l doar DOS, deși aparent nu a făcut nicio diferență în ceea ce privește modul în care au funcționat fișierele batch de la COMMAND.COM.
Interpretorul de fișiere batch al OS / 2 acceptă, de asemenea, o comandă EXTPROC. Aceasta transmite fișierul batch către programul numit în fișierul EXTPROC ca fișier de date. Programul numit poate fi un fișier script; acest lucru este similar cu #! mecanism.
Windows NT
Spre deosebire de Windows 98 și versiunile anterioare, familia de sisteme de operare Windows NT nu depinde de MS-DOS. Windows NT a introdus un interpretor de comandă îmbunătățit pe 32 de biți ( cmd.exe ) care ar putea executa scripturi fie cu extensia .CMD, fie cu .BAT. Cmd.exe a adăugat comenzi suplimentare și le-a implementat pe cele existente într-un mod ușor diferit, astfel încât același fișier batch (cu extensie diferită) să funcționeze diferit cu cmd.exe și COMMAND.COM. În majoritatea cazurilor, funcționarea este identică dacă nu sunt utilizate câteva comenzi neacceptate. Extensiile Cmd.exe la COMMAND.COM pot fi dezactivate pentru compatibilitate.
Microsoft a lansat o versiune de cmd.exe pentru Windows 9x și ME numită WIN95CMD pentru a permite utilizatorilor de versiuni mai vechi de Windows să utilizeze anumite fișiere batch în stil cmd.exe.
Începând cu Windows 8, cmd.exe este interpretul normal de comandă pentru fișierele batch; mai vechi COMMAND.COM poate fi rulat și în versiunile de 32 de biți de Windows capabile să ruleze programe pe 16 biți.
Extensii de nume de fișier
- .băţ
- Prima extensie de nume de fișier utilizată de Microsoft pentru fișierele batch. Această extensie rulează cu DOS și toate versiunile de Windows, sub COMMAND.COM sau cmd.exe, în ciuda diferitelor moduri în care cei doi interpreți de comandă execută fișiere batch.
- .cmd
- Folosit pentru fișiere batch din familia Windows NT și trimis la cmd.exe pentru interpretare. COMMAND.COM nu recunoaște această extensie de nume de fișier, deci scripturile cmd.exe nu sunt executate din greșeală în mediul Windows greșit. În plus,
append,dpath,ftype,set,path,assocșipromptcomenzi, atunci când sunt executate dintr - un fișier .bat, modifica valoareaerrorlevelvariabilei numai la o eroare, în timp ce din interiorul unui fișier .cmd, acestea ar afecta ERRORLEVEL chiar și atunci când se întoarce fără o eroare. De asemenea, este utilizat de OS / 2 IBM pentru fișiere batch. - .btm
- Extensia utilizată de 4DOS , 4OS2 , 4NT și Take Command . Aceste scripturi sunt mai rapide, mai ales cu cele mai lungi, deoarece scriptul este încărcat complet pregătit pentru executare, mai degrabă decât linie cu linie.
Parametrii fișierului lot
COMMAND.COM și cmd.exe acceptă faptul că o serie de variabile speciale ( %0, %1prin %9) pentru a se referi la calea și numele lucrării batch și la primii nouă parametri de apelare din cadrul jobului batch, vezi și SHIFT. Parametrii inexistenți sunt înlocuiți cu un șir de lungime zero. Ele pot fi utilizate similar cu variabilele de mediu , dar nu sunt stocate în mediu. Microsoft și IBM se referă la aceste variabile ca parametri de înlocuire sau parametri înlocuibili , în timp ce Digital Research, Novell și Caldera au stabilit termenul de variabile de înlocuire pentru acestea. JP Software îi numește parametri de fișiere batch .
Exemple
Acest exemplu de fișier batch afișează Hello World!, solicită și așteaptă ca utilizatorul să apese o tastă și apoi se termină. (Notă: nu contează dacă comenzile sunt minuscule sau majuscule, cu excepția cazului în care se lucrează cu variabile)
@ECHO OFF
ECHO Hello World!
PAUSE
Pentru a executa fișierul, acesta trebuie salvat cu extensia numelui de fișier .bat (sau .cmd pentru sistemele de operare de tip Windows NT) în format text simplu, de obicei creat utilizând un editor de text precum Microsoft Notepad sau un procesor de text care lucrează în modul text simplu.
Când este executat, se afișează următoarele:
Hello World! Press any key to continue . . .
Explicaţie
Interpretul execută fiecare rând pe rând, începând cu prima. @Simbolul la începutul oricărei linii împiedică solicitarea de la afișarea că comanda așa cum este executat. Comanda ECHO OFFoprește promptul permanent sau până când este pornit din nou. Combinația @ECHO OFFeste adesea ca aici prima linie a unui fișier batch, împiedicând afișarea oricăror comenzi, ea însăși inclusă. Apoi se execută următoarea linie și ECHO Hello World!ieșirea comenzii Hello World!. Următoarea linie este executată și PAUSEcomanda afișează Press any key to continue . . .și întrerupe execuția scriptului. După apăsarea unei taste, scriptul se termină, deoarece nu mai există comenzi. În Windows, dacă scriptul este executat dintr-o fereastră de prompt de comandă care rulează deja , fereastra rămâne deschisă la prompt ca în MS-DOS; în caz contrar, fereastra se închide la terminare.
Limitări și excepții
Valori nule în variabile
Extensiile variabile sunt substituite textual în comandă și astfel variabilele care nu conțin nimic dispar pur și simplu din sintaxă, iar variabilele care conțin spații se transformă în jetoane multiple. Acest lucru poate duce la erori de sintaxă sau erori.
De exemplu, dacă% foo% este gol, această afirmație:
IF %foo%==bar ECHO Equal
analizează ca construcție eronată:
IF ==bar ECHO Equal
În mod similar, dacă %foo%conține abc def, rezultă o eroare de sintaxă diferită:
IF abc def==bar ECHO Equal
Modul obișnuit de a preveni această problemă este de a înconjura expansiunile variabilelor între ghilimele, astfel încât o variabilă goală să se extindă în expresia validă IF ""=="bar"în loc de invalid IF ==bar. Textul care este comparat cu variabila trebuie, de asemenea, să fie inclus între ghilimele, deoarece ghilimelele nu sunt o sintaxă specială de delimitare; aceste personaje se reprezintă pe ele însele.
IF "%foo%"=="bar" ECHO Equal
Întârziat! VARIABIL! extinderea disponibilă în Windows 2000 și ulterior poate fi utilizată pentru a evita aceste erori sintactice. În acest caz, variabilele nul sau multi-cuvânt nu eșuează din punct de vedere sintactic, deoarece valoarea este extinsă după ce comanda IF este analizată:
IF !foo!==bar ECHO Equal
O altă diferență în Windows 2000 sau mai mare este că o variabilă goală (nedefinită) nu este substituită. Așa cum s-a descris în exemplele anterioare, comportamentul anterior al interpretului de lot ar fi rezultat într-un șir gol. Exemplu:
C:\>set MyVar=
C:\>echo %MyVar%
%MyVar%
C:\>if "%MyVar%"=="" (echo MyVar is not defined) else (echo MyVar is %MyVar%)
MyVar is %MyVar%
Interpreții de lot înainte de Windows 2000 ar fi afișat rezultatul MyVar is not defined.
Ghilimele și spațiile din șirurile trecute
Spre deosebire de procesele Unix / POSIX, care primesc argumentele din linia de comandă deja împărțite de shell într-o matrice de șiruri, un proces Windows primește întreaga linie de comandă ca un singur șir, prin intermediul funcției API GetCommandLine . Ca rezultat, fiecare aplicație Windows poate implementa propriul analizator pentru a împărți întreaga linie de comandă în argumente. Multe aplicații și instrumente din linia de comandă și-au dezvoltat propria sintaxă pentru a face acest lucru și, prin urmare, nu există o singură convenție pentru citarea sau evadarea metacaracterelor pe liniile de comandă Windows.
- Pentru unele comenzi, spațiile sunt tratate ca delimitatori care separă argumentele, cu excepția cazului în care acele spații sunt încadrate de ghilimele. Există diferite convenții cu privire la modul în care ghilimelele pot fi transmise aplicației:
- O convenție utilizată pe scară largă este implementată de parserul de linie de comandă încorporat în biblioteca de runtime Microsoft Visual C ++ în funcția CommandLineToArgvW . Se folosește convenția conform căreia 2 n bare oblice urmate de ghilimele (") produc n bare oblice urmate de ghilimele de început / sfârșit, în timp ce (2 n ) + 1 bare oblice urmate de ghilimele produc din nou n bare oblice urmate de un ghilimel literal Aceeași convenție face parte din specificațiile .NET Framework .
- Un aspect nedocumentat este că "" care apare în mijlocul unui șir citat produce un singur ghilimă. (O modificare CRT în 2008 [msvcr90] a modificat această manipulare nedocumentată a ghilimelelor.) Acest lucru este util pentru inserarea ghilimelelor într-un argument fără a reactiva interpretarea metacaracterelor cmd precum | , & și > . (cmd nu recunoaște obișnuitul " ca scăpând de citat. Reactivează aceste semnificații speciale la vizualizarea citatului, considerând că cotația sa încheiat.)
- O altă convenție este că un ghilimel unic ( " ) nu este inclus ca parte a șirului. Cu toate acestea, un ghilimel scăpat ( " "" ) poate face parte din șir.
- O altă convenție comună vine din utilizarea programelor portate derivate de Cygwin . Nu face diferența între backslash-uri care apar înainte sau nu înainte de ghilimele. Consultați glob (programare) § Windows și DOS pentru informații despre acești parseri alternativi din linia de comandă.
- Unele comenzi Windows importante, cum ar fi
cmd.exeșiwscript.exe, își folosesc propriile reguli.
- O convenție utilizată pe scară largă este implementată de parserul de linie de comandă încorporat în biblioteca de runtime Microsoft Visual C ++ în funcția CommandLineToArgvW . Se folosește convenția conform căreia 2 n bare oblice urmate de ghilimele (") produc n bare oblice urmate de ghilimele de început / sfârșit, în timp ce (2 n ) + 1 bare oblice urmate de ghilimele produc din nou n bare oblice urmate de un ghilimel literal Aceeași convenție face parte din specificațiile .NET Framework .
- Pentru alte comenzi, spațiile nu sunt tratate ca delimitatori și, prin urmare, nu au nevoie de ghilimele. Dacă sunt incluse ghilimelele, acestea devin parte a șirului. Acest lucru se aplică unor comenzi încorporate, cum ar fi echo .
În cazul în care un șir conține ghilimele și trebuie inserat într-o altă linie de text care trebuie, de asemenea, să fie inclusă între ghilimele, este necesară o atenție deosebită la mecanismul de ghilimelare:
C:\>set foo="this string is enclosed in quotation marks"
C:\>echo "test 1 %foo%"
"test 1 "this string is enclosed in quotation marks""
C:\>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%"
ERROR: Invalid Argument/Option - 'string'.
Type "EVENTCREATE /?" for usage.
În Windows 2000 și versiunile ulterioare, soluția este înlocuirea fiecărei apariții a unui caracter de citat într-o valoare printr-o serie de trei caractere de citat:
C:\>set foo="this string is enclosed in quotes"
C:\>set foo=%foo:"="""%
C:\>echo "test 1 %foo%"
"test 1 """this string is enclosed in quotes""""
C:\>eventcreate /T Warning /ID 1 /L System /SO "Source" /D "Example: %foo%"
SUCCESS: A 'Warning' type event is created in the 'Source' log/source.
Caracterele evadate în șiruri
Unele caractere, cum ar fi caracterele pipe ( |), au o semnificație specială pentru linia de comandă. Acestea nu pot fi tipărite ca text folosind comanda ECHO decât dacă sunt evadate folosind simbolul caret ^:
C:\>Echo foo | bar
'bar' is not recognized as an internal or external command,
operable program or batch file.
C:\>Echo foo ^| bar
foo | bar
Cu toate acestea, escape nu funcționează așa cum era de așteptat atunci când se introduce caracterul escape într-o variabilă de mediu. Variabila ajunge să conțină o comandă live pipe atunci când este doar ecou. Este necesar să scăpați atât caracterul în sine, cât și caracterul scăpat pentru afișarea caracterelor ca text în variabilă:
C:\>set foo=bar | baz
'baz' is not recognized as an internal or external command,
operable program or batch file.
C:\>set foo=bar ^| baz
C:\>echo %foo%
'baz' is not recognized as an internal or external command,
operable program or batch file.
C:\>set foo=bar ^^^| baz
C:\>echo %foo%
bar | baz
Întârziat ! VARIABIL! extinderea disponibilă cu CMD /V:ONsau cu SETLOCAL ENABLEDELAYEDEXPANSIONWindows 2000 și ulterior poate fi utilizată pentru a afișa caractere speciale stocate în variabilele de mediu, deoarece valoarea variabilei este extinsă după ce comanda a fost analizată:
C:\>cmd /V:ON
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\>set foo=bar ^| baz
C:\>echo !foo!
bar | baz
Somn sau întârziere scriptată
Până când comanda TIMEOUT a fost introdusă cu Windows Vista, nu a existat o modalitate ușoară de a implementa o pauză temporizată, deoarece comanda PAUSE oprește activitatea scriptului la nesfârșit până când este apăsată orice tastă.
Multe soluții au fost posibile, dar în general au funcționat doar în unele medii: CHOICEComanda nu era disponibilă în versiunile mai vechi DOS, PINGera disponibilă numai dacă TCP / IP a fost instalat și așa mai departe. Nicio soluție nu era disponibilă de la Microsoft, dar un număr de programe utilitare mici puteau fi instalate din alte surse. Un exemplu comercial ar fi comanda Norton Utilities Batch Enhancer (BE) din 1988 , unde BE DELAY 18ar aștepta o secundă sau WAIT.COM gratuit de 94 de octeți unde WAIT 5ar aștepta 5 secunde, apoi va restabili controlul la script. Majoritatea acestor programe sunt fișiere .COM pe 16 biți, deci sunt incompatibile cu Windows pe 64 de biți.
Ieșire text cu CR / LF dezbrăcat
În mod normal, tot textul tipărit are în mod automat caracterele de control pentru returnarea transportului (CR) și avansul de linie (LF) atașate la sfârșitul fiecărei linii.
- batchtest.bat
@echo foo @echo bar
C:\>batchtest.bat foo bar
Nu contează dacă cele două comenzi ecou au aceeași linie de comandă; codurile CR / LF sunt inserate pentru a sparge ieșirea pe linii separate:
C:\>@echo Message 1&@echo Message 2
Message 1
Message 2
Un truc descoperit cu Windows 2000 și mai târziu este acela de a utiliza promptul special pentru introducerea textului fără ca CR / LF să urmărească textul. În acest exemplu, CR / LF nu urmează mesajul 1, dar urmează linia 2 și linia 3:
- batchtest2.bat
@echo off set /p ="Message 1"<nul echo Message 2 echo Message 3
C:\>batchtest2.bat Message 1Message 2 Message 3
Aceasta poate fi utilizată pentru a transmite date într-un fișier text fără CR / LF atașat la final:
C:\>set /p ="Message 1"<nul >data.txt
C:\>set /p ="Message 2"<nul >>data.txt
C:\>set /p ="Message 3"<nul >>data.txt
C:\>type data.txt
Message 1Message 2Message 3
Cu toate acestea, nu există nicio modalitate de a injecta această ieșire promptă CR / LF dezactivată direct într-o variabilă de mediu.
Setarea unui director de lucru al Convenției de denumire uniformă (UNC) dintr-o comandă rapidă
Nu este posibil să aveți un prompt de comandă care utilizează o cale UNC ca director de lucru curent; de exemplu\\server\share\directory\
Promptul de comandă necesită utilizarea literelor de unitate pentru a atribui un director de lucru, ceea ce face mai dificilă rularea fișierelor batch complexe stocate pe un server UNC share. În timp ce un fișier batch poate fi rulat dintr-o cale de fișier UNC, directorul de lucru implicit este C:\Windows\System32\.
În Windows 2000 și versiunile ulterioare, o soluție este să folosiți comanda PUSHDși POPDcu extensii de comandă.
Dacă nu sunt activate în mod implicit, extensiile de comandă pot fi activate temporar folosind /E:ONcomutatorul pentru interpretul de comandă.
Deci, pentru a rula un fișier batch pe o partajare UNC, atribuiți o literă temporară de unitate partajării UNC și utilizați partajarea UNC ca director de lucru al fișierului batch, poate fi construită o comandă rapidă Windows care arată astfel:
- Ţintă:
%COMSPEC% /E:ON /C "PUSHD """\\SERVER\SHARE\DIR1\DIR2\""" & BATCHFILE.BAT & POPD"
Atributul directorului de lucru al acestei comenzi rapide este ignorat.
Aceasta rezolvă, de asemenea, o problemă legată de Controlul contului de utilizator (UAC) pe Windows Vista și mai recent. Când un administrator este conectat și UAC este activat și încearcă să ruleze un fișier batch ca administrator dintr-o literă de unitate de rețea, utilizând meniul contextual al fișierului cu clic dreapta, operația va eșua în mod neașteptat. Acest lucru se datorează faptului că contextul de cont privilegiat UAC ridicat nu are alocări de litere de unitate de rețea și nu este posibil să atribuiți litere de unitate pentru contextul ridicat prin shell-ul Explorer sau scripturile de conectare. Cu toate acestea, prin crearea unei comenzi rapide către fișierul batch folosind cele de mai sus PUSHD/ POPDconstruct și folosind comanda rapidă pentru a rula fișierul batch ca administrator, litera temporară a unității va fi creată și eliminată în contextul contului ridicat, iar fișierul batch va funcționa corect .
Următoarea sintaxă se extinde corect la calea scriptului de lot curent.
%~dp0
Căile implicite UNC sunt dezactivate în mod implicit, deoarece obișnuiau să blocheze programele mai vechi.
Valoarea de registry Dword DisableUNCCheckla HKEY_CURRENT_USER\Software\Microsoft\Command Processorpermite ca directorul implicit să fie UNC. CDcomanda va refuza schimbarea, dar plasând o cale UNC în directorul implicit într-o comandă rapidă către Cmd sau folosind comanda Start. ( cota este pentru administratori).
start "" /d \\127.0.0.1\C$ "cmd /k"C$
Set de caractere
Fișierele lot folosesc un set de caractere OEM, așa cum este definit de computer, de exemplu pagina Cod 437 . Părțile care nu sunt ASCII ale acestora sunt incompatibile cu seturile de caractere Unicode sau Windows utilizate altfel în Windows, așa că trebuie să aveți grijă. Numele de fișiere non-englezești funcționează numai dacă sunt introduse printr-un set de caractere DOS editor compatibil. Numele de fișiere cu caractere în afara acestui set nu funcționează în fișiere batch.
Pentru a obține ieșirea în Unicode în țevi de fișiere dintr-o comandă internă, cum ar fi dir, se poate utiliza cmd /Ucomanda. De exemplu, cmd /U /C dir > files.txtcreează un fișier care conține o listă de directoare cu caractere Windows corecte, în codificarea UTF-16 LE.
Loturi de viruși și programe malware
Ca și în orice alt limbaj de programare, fișierele batch pot fi folosite cu rea intenție. Troienii simpli și furca-bombe sunt ușor de creat, iar fișierele batch pot face o formă de otrăvire DNS modificând fișierul gazdă . Virușii lot sunt posibili și se pot răspândi de asemenea prin intermediul unităților flash USB utilizând capacitatea Windows Autorun .
Următoarea comandă dintr-un fișier batch va șterge toate datele din directorul curent (folder) - fără a cere mai întâi confirmarea:
del /Q *.*
Aceste trei comenzi sunt o simplă furcă bomba care se va replica continuu pentru a epuiza resursele disponibile ale sistemului, încetinind sau prăbușind sistemul:
:TOP
start "" %0
goto TOP
Alte limbaje de script Windows
Procesorul de comandă cmd.exe care interpretează fișierele .cmd este acceptat în toate versiunile de 32 și 64 de biți ale Windows până la cel puțin Windows 10. COMMAND.EXE, care interpretează fișierele .BAT, a fost acceptat în toate 16 și 32- versiuni de biți până la cel puțin Windows 10.
Există alte limbaje de script, mai târziu și mai puternice, disponibile pentru Windows. Cu toate acestea, acestea necesită instalarea interpretorului de limbaj de scriptare înainte de a putea fi utilizate:
- KiXtart ( .kix ) - dezvoltat de un angajat Microsoft în 1991, special pentru a satisface nevoia de comenzi utile într-un script de conectare la rețea, păstrând în același timp „simțirea” simplă a unui fișier .cmd.
- Windows Script Host ( .vbs , .js și .wsf ) - lansat de Microsoft în 1998 și format din cscript.exe și wscript.exe, rulează scripturi scrise în VBScript sau JScript . Le poate rula în modul fereastră (cu gazda wscript.exe) sau în modul bazat pe consolă (cu gazda cscript.exe). Acestea fac parte din Windows de la Windows 98 .
- PowerShell ( .ps1 ) - lansat în 2006 de Microsoft și poate funcționa cu Windows XP (SP2 / SP3) și versiunile ulterioare. PowerShell poate funcționa atât interactiv (dintr-o interfață din linia de comandă), cât și prin intermediul scripturilor salvate și are o asemănare puternică cu shell- urile Unix .
- Limbajele de scriptare shell în stil Unix pot fi utilizate dacă este instalat un instrument de compatibilitate Unix, cum ar fi Cygwin .
- Pentru Windows sunt disponibile instrumente multi -platformă de scripting, inclusiv Perl , Python , Ruby , Rexx , Node.js și PHP .
Fișierele script rulează dacă este introdus numele fișierului fără extensie. Există reguli de prioritate care reglementează interpretarea, să zicem, în DoThiscazul în care DoThis.com, DoThis.exe, DoThis.bat, DoThis.cmdetc. există; implicit DoThis.comare cea mai mare prioritate. Această comandă implicită poate fi modificată în sistemele de operare mai noi prin variabila de mediu PATHEXT setabilă de utilizator .
Vezi si
Note
Referințe
linkuri externe
- Referință fișier lot Microsoft Windows XP
- Cum funcționează fișierele batch Windows
- Comenzi de fișiere batch Windows 10
- FreeDOS 'FreeCOM: lista completă de funcții
- Legături de programare a scriptului interfeței de linie de comandă Windows
- informații despre scripting (de asemenea, linia de comandă)
-
dbenham. „Cum analizează scriptul Windows Command Interpreter (CMD.EXE)?”. Stive Overflow . Lipsește sau este gol
|url=( ajutor )