variabile de mediu

Variabilele de mediu utilizate în pachet (comanda) fișiere care permit eliminarea fără căi absolute la directoare. De exemplu, în cazul în care nu ne-am cunoscut în avans a literei unității de sistem, putem folosi întotdeauna variabila%% systemdrive. se întoarce litera de unitate pe care este instalat sistemul de operare. De asemenea, variabilele sunt folosite pentru a optimiza codul - se repetă de mai multe ori un parametru (de exemplu, cheia de registru) poate fi atribuit unei variabile scurt și să-l utilizați. Acest articol analizează în detaliu diferitele metode de lucru cu variabile, precum și metode de a schimba și de a crea noi variabile. Acum primele lucruri mai întâi.







variabile de mediu

Clasificarea variabilelor de mediu

Ajutorul Windows distinge între două tipuri de variabile de mediu. sistemice și locale. Variabilele de sistem returnează aceeași valoare pentru toți utilizatorii. De exemplu,% SystemDrive% - litera unității de sistem, și este aceeași pentru toți utilizatorii. Dar valorile returnate de variabilele locale, variază în funcție de utilizatorul conectat. De exemplu,% userprofile% se poate întoarce C: # 92; Documente și setări # 92; TekuschiyPolzovatel unde TekuschiyPolzovatel - numele contului de utilizator.

Returnează locația implicită în cazul în care datele aplicații magazin.

Utilizarea variabilelor în fișiere lot

Să începem cu un exemplu simplu:

DEL / F / Q "% AllUsersprofile% # 92; # 92 Meniu principal; Windows.lnk de activare"
DEL / F / Q "% AllUsersprofile% # 92; # 92 Meniu principal; WindowsUpdate.lnk" DEL / F / Q "% systemroot% # 92; system32 dosar # 92 ;. * Scr"

În toate comenzile, am folosit în mod specific „citate“ - nu este o coincidență. Întreaga cale, inclusiv variabilele trebuie să fie introduse între ghilimele dacă utilizați un traseu cu spații. Chiar dacă variabila în sine nu conține ghilimele, după ce sistemul parsing într-un fel, poate apărea lacune (de exemplu,% ProgramFiles% în C: # 92; Program Files). În orice caz, mai bine să folosiți ghilimele - aceasta este o bună practică pentru a proiecta fișierele de comandă.

Cum se setează variabilele

Exemplul discutat mai sus utilizate variabilele de mediu existente. Și ați observat, probabil, semnele la suta care inconjoara numele variabilelor. Aceste caractere sunt necesare pentru a permite înlocuirea valorilor variabile de la linia de comandă sau într-un fișier batch. Procentul semne indică faptul că Cmd.exe ar trebui să apeleze la valorile variabilelor, în loc de a face caracter cu caracter comparație. Mai jos veti vedea cum funcționează. Adresați-vă variabilele într-un fișier batch, puteți seta comanda.

SET

Puteți selecta în lot fișierul utilizând toate variabilele aceeași comandă SET.

Pentru a adăuga o variabilă, la un prompt de comandă:

Pentru a afișa o variabilă, la un prompt de comandă:

Pentru a șterge o variabilă, la un prompt de comandă:

Notă importantă: Variabilele sunt stabilite prin comanda set. valabilă numai pentru sesiunea de comandă. în care au fost ridicate.

Aceste variabile pot fi create, de exemplu, pentru toate căile, este necesar doar să se specifice sau să găsească algoritmul pentru atribuirea unei variabile în fiecare situație particulară, folosind exemple gata făcute sau de a crea propriile lor pe baza acestora. De obicei, aceste variabile sunt create în sesiunea curentă a fișierelor lot cu ajutorul unor operatori.

variabile Exemplu de destinație în fișierul RunOnceEx.cmd. Setările de import în registry

@echo off
SET KEY = HKLM # 92; SOFTWARE # 92; Microsoft # 92; pentru Windows # 92; CurrentVersion # 92; RunOnceEx
100 SET i =

REG ADD% KEY% / V TITLE / D "Aplicații Instalarea" / f

REG ADD% KEY% # 92;% i% / VE / D "WinRar 3.51" / f
REG ADD% KEY% # 92;% i% / V 1 / D "% SystemDrive% # 92; instala # 92; Software # 92; WinRar.exe / s" / f
REG ADD% KEY% # 92;% i% / V 2 / D "REGEDIT / S% systemdrive% # 92; instala # 92; Software # 92; rar_set.reg / s" / f
SET / A i + = 1

În acest script SET comandă setează două variabile -% i% și% KEY%. Rețineți că acestea nu sunt date de caractere la suta, dar pentru a le accesa %% mai este necesară. Variabilă% KEY% este proiectat pentru a simplifica și de a optimiza codul. Rămâne neschimbată pentru sesiunea curentă de comandă, ceea ce elimină necesitatea de fiecare dată pentru a include în codul de registru cheie. De fiecare dată când un cod este găsit% KEY%. înlocuirea acestuia va avea loc la HKLM # 92; SOFTWARE # 92; Microsoft # 92; pentru Windows # 92; CurrentVersion # 92; RunOnceEx. Dar% i% este utilizat pentru numerotarea secvențială a cheilor de registry. Atunci când valoarea inițială a variabilei 100 este incrementată cu comanda SET / A i + = 1, după fiecare unitate instrucțiune care dă secvența de 100, 101, 102, etc. Astfel, linia







REG ADD% KEY% # 92;% i% / V 1 / D "% SystemDrive% # 92; instala # 92; Software # 92; WinRar.exe / s" / f

de fapt, aceasta va funcționa bine

REG ADD HKLM # 92; SOFTWARE # 92; Microsoft # 92; Ferestre # 92; CurrentVersion # 92; RunOnceEx # 92; 100 / V 1 / D „C: # 92; instala # 92; Software # 92; WinRar.exe / s „/ f

Rețineți că, în zona specificată este, de asemenea, utilizat de variabila de sistem% SystemDrive%. care corespunde literei unității de sistem.

variabile Exemplu de destinație într-un fișier batch, aplicația este instalată pe CD-ul:

pentru %% i în (C D E F G H I J K L M N O P Q R S T U V W X Y Z) fac dacă există %% i: # 92; WIN51 set CDROM = %% i:
începe / așteptați "% CDROM% # 92; INSTALATI # 92; DVDTools # 92; NBRom # 92; Nero.exe"

În acest exemplu, toate aceste unități este în căutarea unui anumit fișier (WIN51). In cazul in care este detectat pe unul dintre discurile, acesta din urmă este atribuită variabilei% CDROM%. și apoi există deja instalarea software-ului utilizând o cale creată de variabila specificată.

Modificare variabile de mediu, și adăugarea de propriile variabile

După cum sa menționat mai sus, efectul variabilelor definite prin comanda set. limitată la sesiunea curentă de comandă. Dacă doriți să ieșiți din sistem variabil de timp sau de un utilizator, trebuie să-l înregistreze în registru. Asigurați-vă că poate fi, de asemenea, o varietate de moduri.

utilitate setenv

Utilitarul se execută din linia de comandă (site-ul. Descărcarea). Lucrul cu utilitatea este foarte simplu (setenv /?).

Setări personalizate: setenv -u Valoarea VARIABLE_NAME
Setări de sistem: setenv Valoarea VARIABLE_NAME -m
Setări implicite de utilizator: setenv valoarea VARIABLE_NAME -d
Setați sesiunea utilizatorului curent. -v setenv valoarea VARIABLE_NAME

De exemplu, în cazul în care aveți nevoie pentru a obține variabila% temp% chiar și în timpul fazei de instalare, este posibil să se facă acest lucru de la cmdlines.txt. de exemplu:

Crearea și setarea directorului Temp.
md% systemdrive% # 92; Temp
setenv Temp -u% systemdrive% # 92; Temp
setenv -u Tmp% systemdrive% # 92; Temp

Utilitatea este utilă în faptul că, după setarea unei variabile îl puteți folosi imediat. Ei bine, aproape imediat - în următoarea sesiune de comandă. Pentru a-l utiliza în sesiunea curentă, puteți utiliza vechiul set de comanda familiar:

Crearea # EgOrus # var
set EgOrus = D: # 92; EgOrus
setenv -u EgOrus% EgOrus%

Parametrii de import în registrul

Dacă vom trece printr-o schimbare în registru, după prima logare, variabilele vor „lucra“ numai după ce reporniți sau termina sesiunea. Desigur, în timpul instalării automate este posibil să se importe parametrii doriți pe T-12 (a se vedea. Articolul registru Tviki) și pentru a ocoli această problemă. Dacă nu intenționați să utilizați variabila atribuită în sesiunea utilizatorului curent, apoi importați registru, de asemenea, puteți aranja. Procesul de import REG-fișier din nou, nu voi descrie, și a discuta REG ADD comanda la un exemplu specific.

Să presupunem că doriți să aveți în sistem variabil% CDROM% pe o bază permanentă și să-l stabilească în procesul de instalare a aplicațiilor de pe un CD. În urma codul de mai sus, este necesar după determinarea variabilei de a atribui sistemului său.

pentru %% i în (C D E F G H I J K L M N O P Q R S T U V W X Y Z) fac dacă există %% i: # 92; WIN51 set CDROM = %% i:
REG ADD "HKEY_LOCAL_MACHINE # 92; SYSTEM # 92; CurrentControlSet # 92; control # 92; Session Manager # 92; Mediu" / v cdrom / d% CDROM% / f

După ce a constatat discul de fișier WIN51 pe care a fost găsit, este atribuit unei variabile locale% CDROM%. care imediat și administrat ca o variabilă continuă de către sistemul de import în registru. Această metodă este sugerată într-unul dintre subiectele de la conferința Oszone Sanja Alone. În același timp, știi. în cazul în care setarea variabilelor de sistem sunt stocate în registru. Variabilele personalizate sunt stocate în HKCU # 92; Mediu. Calea a revenit variabilă% PROGRAMFILES% și% CommonProgramFiles%, pot fi vizualizate în setările și ProgramFilesDir CommonFilesDir în HKLM # 92; Software # 92; Microsoft # 92; # 92 pentru Windows, CurrentVersion, dar pentru a le schimba nu ar trebui să fie. Programele de instalare Cataloage (altele decât% SystemDrive% # 92; Program Files) trebuie să fie configurat printr-un fișier de răspuns.

coajă de comandă Windows (cmd.exe) - acesta este un instrument foarte puternic pentru lucrul cu sistemul. Cu ajutorul fișierelor lot puteți automatiza o mare cantitate de probleme, și de aceea ele sunt adesea folosite pentru a instala în mod automat pentru Windows. Utilizați variabile în fișiere lot iscusiți vă permite să rezolve o gamă largă de probleme. Lucrul cu shell-ul devine mai eficient și, în același timp, simplifica codul de fișiere lot. Alte exemple de utilizare a variabilelor, puteți găsi pe site-ul sau forum. Toate exemplele folosite în acest articol sunt preluate din script-uri de participanți. pentru care vă mulțumesc foarte mult.

terminologie

Shell - este un produs software separat, care oferă o legătură directă între utilizator și sistemul de operare. Interfața utilizator text oferă un mediu de linie de comandă, care rulează aplicații și utilitare cu o interfață de text.

cmd.exe - interpret de comandă care shell Windows utilizează pentru a transfera comanda a intrat într-un format înțeles de către sistem. Textul ^

Sesiunea de comandă poate fi inițiată ca un cmd.exe de lansare. și să lanseze un fișier batch. Cu alte cuvinte, curentul generat coajă. În consecință, producția acestui pachet (de exemplu, la sfârșitul fișierului lot) completează sesiunea de comandă. Textul ^

sesiune de utilizator (sesiune de utilizator) începe cu utilizatorul este conectat (log on) și se termină la o ieșire (log off). Textul ^