Secretele Windows: articole despre registru, rundll32.exe, programe Și din nou fișiere batch, partea 1
Celelalte liste de discuții:- Știrile din lumea IT. Link-uri zilnice către știri și articole noi de pe site-uri populare pe computer.
- Recenzii de cărți noi. Descrierea noilor cărți despre computere, design, contabilitate, psihologie și alte direcții ale gândirii umane.
- Știri ale site-ului nostru. Link-uri zilnice către materiale noi care vin pe site-ul nostru: de la linkuri către articole la linkuri către înregistrări noi și actualizate ale bazelor de date online.
Sistemul de operare Windows Vista acceptă o varietate de metode pentru automatizarea acțiunilor deseori efectuate. În special, metodele standard includ fișiere batch, fișiere inf, Windows Script Host (WSH) și Windows Management Instrumentation (WMI). În plus, separat de sistemul de operare vine un set de PowerShell, care are o funcționalitate uriașă.
Dar să lăsăm toate aceste tehnologii moderne într-un viitor apropiat și acum să vorbim despre fișierele vechi vechi vechi (fișiere bat). În ciuda vârstei sale considerabile, această metodă de automatizare este încă populară, deoarece vă permite să creați rapid și ușor un script care execută diverse comenzi.
Un fișier batch este un fișier text simplu cu extensie .bat sau .cmd care conține o listă de comenzi care trebuie executate de linia de comandă cmd.exe. În sistemul de operare Windows Vista nu există practic nici o diferență între fișierele de tip bat și fișierele cmd. Fișierele cu una sau cealaltă extensie sunt procesate utilizând linia de comandă cmd.exe. În versiunile anterioare de Windows, fișierele de tip bat au fost procesate de linia de comandă command.com. Această linie de comandă nu suportă toate funcțiile programului cmd.exe, deci este mai bine să creați fișiere cmd (mai ales dacă le veți folosi nu numai în sistemul de operare Windows Vista).
În cel mai simplu caz, fișierul bat conține doar câteva comenzi pentru pornirea programelor, fiecare dintre acestea fiind scrise dintr-o linie nouă. De exemplu, mai jos este un exemplu de fișier simplu de tip bat care rulează două programe: regedit.exe și calc.exe. În acest caz, programele sunt executate secvențial. Asta este, până când prima comandă de fișiere bat este terminată, a doua comandă nu va fi executată.
Exemple mai complexe de fișiere bat utilizează instrumentele speciale de comandă cmd.exe, care permit interacțiunea dintre diferite programe, precum și pornirea lor incoerentă. În continuare vom lua în considerare aceste programe.
Unele caractere în fișiere bat au un scop special, astfel încât acestea nu pot fi folosite în șiruri care nu sunt înconjurate de citate. De exemplu, aceste simboluri includ următoarele caractere: () <> ^ |.
Dacă dintr-un motiv oarecare doriți să utilizați aceste caractere într-un șir care nu este înconjurat de ghilimele, atunci înainte de caracterele care au un scop special, trebuie să puneți caracterul ^. De exemplu, în loc de fraza Tom Jarry trebuie să folosească fraza Tom ^ Jarry,
În loc de ecou off și ecou pe comenzi, puteți folosi @echo off și @ echo pe comenzi. În acest caz, linia de comandă nu va afișa, de asemenea, o intrare despre executarea comenzii ecou corespunzătoare.
După cum probabil ați observat, cele două metode pentru introducerea comenzii ecou de mai sus diferă numai de simbolul @ de la începutul liniei. Regula generală este după cum urmează. Pentru a împiedica executarea oricăror comenzi la linia de comandă, trebuie să o precede cu simbolul @.
Cum se afișează un mesaj pe ecran
Pentru a afișa un mesaj pe ecran este foarte simplu. Pentru a face acest lucru, este suficient să folosiți o comandă a formularului ecou [textul mesajului]. Această comandă afișează mesajul chiar dacă este specificată comanda ecou off (și afișează mesajul o singură dată). Dacă ecoul pe comandă este instalat în script, atunci textul mesajului ecou va fi duplicat.
Cum se lucrează cu argumentele fișierului bat
O posibilitate interesantă de fișiere bat este capacitatea de a procesa argumentele de pornire. Argumentele startului sunt valorile transmise fișierului bat atunci când este rulat. De exemplu, test.bat o comandă de test 34 rulează fișierul test.bat, trecând trei argumente: una, 34 și test.
Lucrul cu argumentele primite la pornire este destul de simplu. Pentru a face acest lucru, este suficient să le accesați utilizând variabilele% 1 (primul argument),% 2 (al doilea argument),% 3 (al treilea argument) etc.
De asemenea, în scenariu, puteți utiliza variabila% 0, care indică calea spre fișierul bat pe care îl executați.
Conținutul variabilelor care determină argumentele pentru a executa fișierul bat (și, de asemenea, variabila% 0) poate fi specificat utilizând un set de variabile speciale ale formularului%
[simbol] [număr variabil]. Aceste variabile sunt prezentate mai jos.
1. Eliminați citatele din jurul conținutului variabilei% 1.$ PATH: 1. Înlocuiți valoarea variabilei% 1 cu numele complet al primului fișier găsit în variabila de mediu PATH. Dacă nu se găsesc fișiere în variabila de mediu PATH, atunci valoarea variabilei% 1 este înlocuită cu un șir gol.
O posibilitate interesantă de a folosi variabilele din formularul%
[simbolul] [numărul variabil] este posibilitatea combinării (adică combinarea datelor pe care le emite). Pentru aceasta, este suficient să se folosească, în loc de două variabile, un tip de%
[simbol al primei variabile] [simbolul celei de-a doua variabile] [număr variabil].
De exemplu, să aruncăm o privire asupra fișierului bat (lista de mai jos), care execută două comenzi transmise acestuia, ca două argumente de pornire.
Un alt exemplu de utilizare a variabilelor specifice poate fi exprimat cu o singură linie - "%
DP0 [filename]. „Cu aceasta linie lansați un program special, care este în același director ca și BAT-fișierul în sine. Uneori, această linie este deosebit de utilă și necesară.
Variabila de mediu% ERRORLEVEL%
Variabila de mediu% ERRORLEVEL% conține codul în care a revenit comanda anterioară executată de fișierul bat. Nu toate comenzile returnează codurile. Dacă comanda nu a returnat nimic, atunci valoarea variabilei de mediu% ERRORLEVEL% este 0.
Următoarele sunt programele care utilizează variabila de mediu% ERRORLEVEL%.
- Choice.exe. Localizează numărul cheii de utilizator apăsată în variabila de mediu.
- Color.exe. Alocă o valoare de 1 dacă culoarea textului și culoarea de fundal se potrivesc.
- Exit.exe. O valoare de cod de retur este atribuită dacă a fost specificată când a fost apelat acest program.
- Set.exe. Alocă o valoare de 1 dacă variabila de mediu dorită nu este găsită.
- Setlocal.exe. Alocă o valoare de 1 dacă opțiunea utilizată la pornirea setlocal.exe nu este acceptată, deoarece procesarea extinsă a mediului este dezactivată.
Cum de a determina linia folosită pentru a rula fișierul bat
Pentru a face acest lucru, trebuie doar să utilizați variabila de mediu% CMDCMDLINE%. Acesta conține linia pe care utilizatorul a introdus-o pentru a rula acest fișier bat.
Ce este procesarea avansată a comenzilor
Extinderea procesării comenzilor este modulul de comandă cmd.exe, în care unele programe standard ale sistemului de operare Windows Vista au capacități suplimentare.
Implicit, procesarea avansată a comenzilor este întotdeauna activată. Cu toate acestea, puteți să-l dezactivați sau să-l activați singur. Pentru a face acest lucru, este suficient să utilizați una dintre următoarele metode.
- Pentru a dezactiva / activa instrucțiuni avansate de procesare pentru o anumită sesiune cu linia de comandă, pur și simplu rulați linia de comandă de pornire folosind cmd.exe / E tipuri de sintaxă: OFF (pentru a dezactiva comenzile avansate de prelucrare) sau cmd.exe / E: ON (pentru a activa extins procesare de comandă).
- Pentru a dezactiva / activa procesarea avansată a comenzilor pentru un anumit utilizator, trebuie să creați parametrul REG_DWORD al tipului EnableExtensions. Acest parametru trebuie localizat în filiala de registry HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor. Pentru a dezactiva procesarea avansată a comenzilor, acest parametru trebuie să fie setat la 0. Altfel, 1.
- Pentru a dezactiva / activa procesarea avansată a comenzilor pentru toți utilizatorii de calculatoare, trebuie să creați parametrul REG_DWORD al tipului EnableExtensions. Acest parametru trebuie să fie în filiala de registry HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Command Processor. Pentru a dezactiva procesarea avansată a comenzilor, acest parametru trebuie să fie setat la 0. Altfel, 1.
Mai jos sunt programele afectate de dezactivarea / activarea procesării comenzilor extinse, precum și opțiunile acestora, care sunt disponibile numai când este activată procesarea extinsă a comenzilor.
- DEL | ȘTERGE. Ieșirea pentru comutatorul / S este inversată (adică numai numele fișierelor șterse sunt afișate).
- CD | CHDIR. Spațiile nu mai sunt tratate ca delimitatoare. Aceasta înseamnă că nu puteți închide calea către director în ghilimele, chiar dacă conține spații. Dacă procesarea comenzilor este dezactivată, calea către director trebuie citată.
- MD | MKDIR. Creează automat toate directoarele intermediare definite în cale, dar nu există în realitate. Cu procesarea dezactivată a comenzilor, niciun director intermediar existent nu trebuie creat independent.
- PROMPT. Suporta caractere suplimentare de formatare $ + (afișare cât mai multe semne plus, ce adancime software-ul pushd stivă instalat în prezent) și M $ (în cazul în care unitatea de curent este o rețea, în timp ce, de asemenea, afișa calea completă la telecomandă).
- Pushd. Puteți salva căile de rețea în stivă. În acest caz, unităților de rețea li se atribuie nume de unități temporare.
- Popd. Șterge automat numele de unități temporare create pentru directoarele de rețea stivuite.
- SET. Este posibil să se afișeze toate variabilele de mediu disponibile care încep cu litera pe care ați scris-o (utilizând sintaxa setată). Se acceptă două opțiuni suplimentare: opțiunea / A și opțiunea / P.
- Setlocal. ENABLEEXTENSIONS acceptate și opțiuni DISABLEEXTENSIONS pentru a activa / dezactiva avansate de procesare comenzi pentru a executa comanda. ENABLEDELAYEDEXPANSION Sprijinit și DISABLEDELAYEDEXPANSION opțiuni pentru a activa / dezactiva mediul întârziat de expansiune variabilă la comanda.
- ENDLOCAL. Restabilește de stat a extins procesarea comenzii implicit în cazul în care comanda anterioară setlocal schimba această stare, folosind ENABLEEXTENSIONS și opțiuni DISABLEEXTENSIONS.
- IF. Sprijină operatorii relaționale (EQL, NEQ, LSS, LEQ, GTR, GEQ) și sintaxe IF DEFINIT [variabila] [comanda] și IF CMDEXTVERSION [numărul] [comanda].
- PENTRU. Sunt acceptate următoarele opțiuni de sintaxă:
- CALL. Utilizarea etichetelor este acceptată. Adică, comenzi precum apel: [nume etichetă].
- SHIFT. Opțiunea / n este acceptată, ceea ce permite determinarea începutului schimbării.
- GOTO. Comanda GOTO este acceptată: EOF, care transmite controlul la sfârșitul fișierului batch.
- START. Dacă extensia fișierului executabil nu este specificată, programul înlocuiește automat următoarele extensii. COM, .EXE, .BAT, .CMD. Când rulați fișiere ne-executabile prin intermediul motorului de mapare (de exemplu, atunci când porniți fișierul primer.doc), nu este necesar să specificați o extensie pentru cartografiere.