Ympäristömuuttujien käyttö komentorivillä. CMD-BAT:n ominaisuudet ja toiminnot
Muuttujat määrittävät Cmd.exe-ympäristön. Ne määräävät paitsi kuoren käyttäytymisen, myös itse käyttöjärjestelmän. Muuttujat tulisi jakaa kahteen tyyppiin, joista jokaisella on ainutlaatuiset ominaisuudet: järjestelmä ja paikallinen. Ensimmäisen tyypin avulla voit määrittää globaalin käyttöjärjestelmäympäristön toiminnan työn aikana. Paikalliset muuttujat määrittävät ympäristötoiminnan vain tietyssä Cmd.exe-esiintymässä. Tämä on syytä huomata keskeisenä erona.
Se puhuu järjestelmämuuttujista, se on valmiiksi sisäänrakennettu käyttöjärjestelmään ja sitä voivat käyttää kaikki sovellukset. Jotta voit tehdä niihin muutoksia, sinulla on oltava järjestelmänvalvojan käyttöoikeudet. Yleisin käyttöpaikka on tarjota järjestelmän käynnistystehtävä. Kun tällainen tapahtuma suoritetaan tietylle käyttäjälle, voidaan puhua mahdollisuudesta käyttää paikallisia muuttujia.
Alla on luettelo olemassa olevista muuttujaluokista niiden prioriteetin tärkeyden perusteella (laskevassa järjestyksessä):
- Sisäänrakennettu järjestelmä. Niitä on kutsuttava vakavimmiksi, mikä edellyttää erityistä huomiota työprosessissa.
- HKEY_LOCAL_MACHINE:een liittyvät järjestelmätyyppimuuttujat.
- Paikalliset muuttujat liittyvät HKEY_CURRENT_USER.
- Täydellinen luettelo muuttujista ja ympäristöistä löytyy Autoexec.bat-asiakirjasta.
- Täydellinen luettelo muuttujista ja ympäristöistä, jotka löytyvät järjestelmän käynnistyskomentosarjasta. Tietyissä tilanteissa sitä ei ehkä ole olemassa.
- Muuttujat, joita voidaan soveltaa interaktiivisesti kirjoitettuun komentosarjaan tai eräasiakirjaan.
Paikalliseen tai järjestelmäluokkaan kuuluvista muuttujista on melko pitkä luettelo. Tähän asiaan on kiinnitettävä enemmän huomiota.
Paikalliset muuttujat
Nimi | Tiedot |
---|---|
% ALLUSERSPROFILE% |
Antaa tietoja siitä, missä tarkalleen Kaikki käyttäjät -profiili sijaitsee |
Tarjoaa oletussijainnin ohjelmille |
|
Mahdollistaa polun saamisen käytettyyn kansioon |
|
Tarjoaa komentorivin, jota käytetään Cmd.exe-tiedoston nykyisen ilmentymän suorittamiseen |
|
Antaa sen toimialueen ohjaimen nimen, joka todentaa annetun istunnon |
|
Voit antaa CA-parametrit nykyiselle tulkille. Päästäksesi käyttöösi, sinun on käytettävä Cmd.exe-tiedostoa |
|
Antaa sen verkkotunnuksen nimen, jolla on käyttäjätilien luettelo |
|
Antaa sisäänkirjautuneen käyttäjän nimen |
|
Palauttaa nykyisen käyttäjän tilin sijainnin |
Järjestelmän muuttujat
Voit antaa aktiivisten komentojen käsittelijän laajennusten versionumeron |
|
Antaa sen laitteen nimen, jolla työ suoritetaan |
|
Tarjoaa polun suoritettavaan komentotulkkiin |
|
Tarjoaa oikeat tiedot. On huomattava, että muotoa date / t vastaava muoto on suunniteltu. Kaikki tiedot määritetystä komennosta voidaan saada suoraan verkkosivuston vastaavasta osiosta |
|
Käytetään antamaan viimeksi käytetyn komennon virhekoodi. Vakiotilanne on muulle arvolle kuin nolla. |
|
Antaa työasemalevyn nimen, joka liittyy käyttäjän hakemistoon. Se on asennettava ottaen huomioon päähakemiston sijainti |
|
Tarjoaa polun käyttäjän päähakemistoon. Tulee asentaa käyttämällä päähakemiston sijaintia |
|
Tarjoaa polun käyttäjän jaettuun päähakemistoon. Tulee asentaa käyttämällä päähakemiston sijaintia |
|
% NUMBER_OF_PROCESSORS % |
Määrittää tietyssä laitteessa olevien prosessorien määrän |
Lähettää tietoja siitä, mikä nimi käyttöjärjestelmällä on tietyssä laitteessa. Joidenkin käyttöjärjestelmien nimen näyttämisessä on tiettyjä ominaisuuksia, ja tämä on otettava huomioon |
|
Asettaa hakupolun ohjelmien havaitsemiseksi |
|
Tarjoaa luettelon asiakirjalaajennuksista, jotka käyttöjärjestelmä pitää suoritettavina |
|
% PROCESSOR_ARCHITECTURE% |
Käytetään, kun on tarpeen hankkia tietyn prosessorin arkkitehtuuri |
% PROCESSOR_IDENTFIER% |
Sisältää lyhyet tiedot prosessorista |
% PROCESSOR_LEVEL% |
Antaa tietoja prosessorin versionumerosta |
Tarjoaa minkä tahansa kokonaisluvun välillä 0 - 32767, mukaan lukien |
|
Antaa sen levyn nimen, johon Windows XP:n juurihakemisto on kirjoitettu |
|
Tarjoaa käyttöjärjestelmän järjestelmähakemiston sijainnin |
|
Nämä muuttujat ovat järjestelmä- ja käyttäjämuuttujia. Tämä mahdollistaa samojen tehtävien suorittamisen eri tilanteissa. Tarjoaa väliaikaisia kansioita, joita kaikki käyttäjät voivat käyttää. Tietyissä ohjelmissa sinun on käytettävä TEMP- tai TMP-toimintoa. |
|
Tarjoaa tietoa nykyisestä ajasta. Näyttömuoto on samanlainen kuin aika / t. |
|
Mahdollistaa käyttöjärjestelmän hakemiston palauttamisen |
Ympäristömuuttujien asettaminen
Jos haluat luoda, poistaa tai näyttää ympäristömuuttujan, käytä erityistä set-komentoa. Erottuva piirre on huomattava muuttujien säätö yksinomaan käyttökuoren ympäristössä.
Tietyn muuttujan antamiseksi on tarkoitus kirjoittaa COP:iin:
aseta muuttujan_nimi
Yksi muuttuja lisätään lisää kirjoittamalla:
aseta muuttujan nimi = arvo
Poistotoimenpiteen suorittamiseksi kannattaa kirjoittaa rivi:
aseta muuttujan_nimi =
Järjestelmä on asetettu käyttämään useimpia olemassa olevia symboleja osoittamaan arvojen roolia. Prosesseja voidaan myös selittää. Jotta voit käyttää tiettyjä merkkejä, sinun on ensin syötettävä (^) tai lainaus. Jos tätä ei tehdä, on olemassa virheellisen suorituksen tai virheen mahdollisuus. On olemassa muutamia yksinkertaisia esimerkkejä. Oletetaan, että haluat luoda uuden & name -muuttujan. Käsillä olevan tehtävän suorittamiseksi COP:iin syötetään seuraava:
aseta varname = uusi ^ & nimi
Voit yrittää olla käyttämättä erikoismerkkiä (^), mutta tämä ei ole mahdollista. Syynä on, että sama virhe palautetaan koko ajan.
Kun muuttuja on asetettu, se ei edusta käytettyjen kirjainten merkitystä - suuria tai pieniä. Tapausta ei oteta huomioon. On yksi erottuva ominaisuus - muuttuja näytetään edelleen täsmälleen sellaisena kuin se syötettiin. Tämä helpottaa havaintotehtävää, jos käytät eri rekistereitä erottamiseen nimiä kirjoitettaessa.
Korvaus ympäristömuuttujissa
On olemassa tapa korvata tietyt arvot ympäristömuuttujissa suoraan COP:sta tai komentosarjasta. Tehtävän suorittamiseksi on suositeltavaa käyttää huonetta prosenttisymboleina. Se näyttää tältä:
% muuttujan_nimi%
Se on tarkoitettu osoittamaan, että Cmd.exe:n on päästävä välittömästi tietyn muuttujan arvoihin. Merkkikohtaista vertailua ei suoriteta. On tärkeää pitää mielessä, että itse substituutiota ei pidetä rekursiivisena. Tarkastus suoritetaan vain kerran.
Joskus se on muodostettava päivämäärä ja aika muuttuja v cmd / bat käsikirjoituksia ikkunat haluamallamme tavalla, ei miten käyttöjärjestelmä antaa meille.
Jos haluat esimerkiksi lisätä nämä tiedot lokitiedostoon, korjata tapahtuman kellonajan tai päivämäärän, luo tiedosto, jonka nimissä päivämäärä- tai aikatietojen pitäisi näkyä (päivä, kuukausi, vuosi, tunti, minuutit, skunda, millisekuntia.) Kyllä, et koskaan tiedä, mitkä ovat tehtävämme ... Yhdistämme mielikuvituksemme :)
Seuraavassa esimerkissä näemme muuttujien erittelyn tarvitsemiemme mallien mukaan.
h- tunti 2 merkkiä (eli tunti näytetään seuraavassa muodossa - 01, 02, ..., 09, ..., 12, ... 24)
m - minuuttia 2 merkkiä
s - sekuntia 2 merkkiä
ms - millisekuntia 2 merkkiä, jostain syystä 0 - 99
dd - päivä 2 merkkiä
mm - kuukausi 2 merkkiä
yyyy - vuosi 4 merkkiä
Esimerkki muuttujien käytöstä % PÄIVÄMÄÄRÄ% ja % AIKA% käsikirjoituksissa cmd / bat Windows:
@kaiku pois
aseta h = % AIKA: ~ 0,2 %
aseta m = % AIKA: ~ 3,2 %
aseta s = % AIKA: ~ 6,2 %
aseta ms = % AIKA: ~ 9,2 %
aseta curtime =% h%:% m%:% s%:% ms%
asettaa dd = % PÄIVÄMÄÄRÄ: ~ 0,2 %
aseta mm = % PÄIVÄMÄÄRÄ: ~ 3,2 %
aseta vvvv = % DATE: ~ 6,4 %
aseta juustomassa =% pp% -% kk% -% vvvv%
aseta curdatetime =% curdate%% curtime%
echo Nykyinen aika on% curdatetime%
Joissakin Windows-versioissa päivämäärän ja kellonajan näyttömuoto on erilainen, joten tämä komentosarja voi toimia juuri niin kuin tarvitsemme.
Teoriassa voit ottaa osia mistä tahansa muuttujasta samalla tavalla, lopputulos on, että muoto on seuraava:
Ensimmäinen numero seuraavan jälkeen: ~ on merkin numero, josta aloitamme arvon ottamisen, toinen numero on kaapattavien merkkien lukumäärä.
Siten käy ilmi, että voimme ottaa tarpeisiimme minkä tahansa osan, minkä tahansa muuttujan käytettävissämme olevasta Windows-ympäristöstä.
Tiedän seuraavat muuttujat, joiden arvot voimme saada:
KAIKKI KÄYTTÄJÄPROFIILI | Palauttaa Kaikki käyttäjät -profiilin sijainnin. |
SOVELLUSTIEDOT | Palauttaa sovellustietojen oletussijainnin. |
CD | Määrittää nykyisen kansion polun. Sama kuin CD-komento ilman argumentteja. |
CMDCMDLINE | tarkka komento, jota käytetään nykyisen cmd.exe-tiedoston suorittamiseen. |
CMDEXTVERSION | versio nykyisestä Command Processor Extensions -laajennuksista. |
CommonProgramFiles | "Yleiset tiedostot" -hakemiston sijainti (yleensä% ProgramFiles% \ Common Files) |
TIETOKONENIMI | tietokoneen nimi |
COMSPEC | polku shell-suoritettavaan tiedostoon |
PÄIVÄMÄÄRÄ | Palauttaa nykyisen päivämäärän. Käyttää samaa muotoa kuin päivämäärä / t-komento. Luotu Cmd.exe-komennolla. |
ERRORLEVEL | Palauttaa viimeksi käytetyn komennon virhekoodin. Nollasta poikkeava arvo tarkoittaa yleensä virhettä. |
KOTILAITE | Palauttaa käyttäjän kotihakemistoon liitetyn paikallisen työaseman aseman nimen. Se asetetaan päähakemiston sijainnin perusteella. Käyttäjän kotihakemisto määritetään Paikalliset käyttäjät ja ryhmät -laajennuksessa. |
KOTIPATI | Palauttaa koko polun käyttäjän kotihakemistoon. Se asetetaan päähakemiston sijainnin perusteella. Käyttäjän kotihakemisto määritetään Paikalliset käyttäjät ja ryhmät -laajennuksessa. |
KOTIJAKO | Palauttaa verkkopolun käyttäjän jaettuun kotihakemistoon. Se asetetaan päähakemiston sijainnin perusteella. Käyttäjän kotihakemisto määritetään Paikalliset käyttäjät ja ryhmät -laajennuksessa. |
LOGONSERVER | sen toimialueen ohjaimen nimi, jota käytetään nykyisen käyttäjän todentamiseen |
NUMBER_OF_PROCESSORS | järjestelmän prosessorien määrä |
OS | käyttöjärjestelmän nimi. Windows XP ja Windows 2000 näkyvät nimellä Windows_NT. |
PATH | Määrittää suoritettavien tiedostojen hakupolun. |
PATHEXT | Palauttaa luettelon tiedostopäätteistä, jotka käyttöjärjestelmä pitää suoritettavina. |
PROCESSOR_ARCHITECTURE | prosessorin arkkitehtuuri |
PROCESSOR_IDENTIFIER | prosessorin kuvaus |
PROSESSORI_TASO | prosessorin mallinumero |
PROCESSOR_REVISION | prosessorin versio |
OHJELMATIEDOSTOJA | polku Program Files -kansioon |
PROMPT | Palauttaa nykyisen tulkin komentorivivaihtoehdot. Luotu Cmd.exe-komennolla. |
RANDOM | satunnainen desimaaliluku väliltä 0 - 32767. Luonut Cmd.exe |
SESSIONNAME | Istuntotyyppi. Oletus on "konsoli" |
SYSTEMDRIVE | asema, jossa Windowsin juurikansio sijaitsee |
SYSTEMROOT | polku Windowsin juurikansioon |
TEMP tai TMP | Palauttaa oletusarvoiset väliaikaiset kansiot, joita käyttävät sovellukset, jotka ovat kirjautuneiden käyttäjien käytettävissä. Jotkut sovellukset vaativat TEMP-muuttujan, toiset vaativat TMP-muuttujan. Mahdollisesti TEMP ja TMP voivat osoittaa eri hakemistoihin, mutta yleensä ne ovat samoja. |
AIKA | Palauttaa nykyisen ajan. Käyttää samaa muotoa kuin aika / t-komento. Luotu Cmd.exe-komennolla. |
USERDOMAIN | sen verkkotunnuksen nimi, johon nykyinen käyttäjä kuuluu |
KÄYTTÄJÄNIMI | nykyinen käyttäjätunnus |
KÄYTTÄJÄPROFIILI | polku nykyisen käyttäjän profiiliin |
WINDIR | hakemisto, johon Windows on asennettu |
& nbsp & nbsp -tiimi ASETA käytetään ympäristömuuttujien katseluun ja muuttamiseen Windowsin komentorivillä. Ympäristömuuttujat ovat muuttujia, joiden hyväksytyt arvot kuvaavat ympäristöä, jossa nykyinen ohjelma suoritetaan - järjestelmätiedostopolut, laitteistotiedot, käyttäjähakemistot jne. Ympäristömuuttujien arvot luodaan Windowsin käynnistyksen, käyttäjän rekisteröinnin yhteydessä järjestelmään, yksittäisten prosessien suorittamisen aikana tai komentoa käyttämällä ASETA... Voit tarkastella tietyn muuttujan hyväksymää arvoa käyttämällä komentoa:
SET muuttuja
SET PATH- näyttää muuttujan arvon PATH
Voit luoda uuden muuttujan tai muuttaa olemassa olevan muuttujan arvoa komennolla:
SET muuttuja = merkkijono
muuttuja- Ympäristömuuttujan nimi.
linja- Määritetylle muuttujalle liitettävä merkkijono.
SET MyName = Vasya- asettaa muuttujan arvon Nimeni
SET polku = C: \ progs;% polku%- muuttaa muuttujan arvoa PATH lisäämällä rivin alkuun C: \ progs
Muuttujan hyväksymä arvo on käsiteltävissä erätiedostoissa käytettäessä sen nimeä, prosenttimerkkien sisällä - % ... Esimerkiksi komento näyttää tekstiä ECHO-näytöllä muodossa:
ECHO päivämäärä- näyttää sanan "päivämäärä" ja komennon
ECHO % päivämäärä % näyttää muuttujan arvon Päivämäärä, eli nykyinen päivämäärä käyttöjärjestelmän muodossa.
Komento ASETA ilman parametreja käytetään ympäristömuuttujien nykyisten arvojen näyttämiseen.
ALLUSERSPROFILE = C: \ ProgramData
APPDATA = C: \ Käyttäjät \ Usr \ AppData \ Roaming
CommonProgramFiles = C: \ Program Files \ Common Files
TIETOKONENIMI = TESTI7
ComSpec = C: \ windows \ system32 \ cmd.exe
FP_NO_HOST_CHECK = EI
KOTILAITE = C:
HOMEPATH = \ Käyttäjät \ Usr
LOCALAPPDATA = C: \ Users \ Usr \ AppData \ Local
LOGONSERVER = \\ TEST7
NUMBER_OF_PROCESSORS = 2
OS = Windows_NT
Polku = C: \ windows \ system32; C: \ windows;
PATHEXT = .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH; .MSC
PROSESSORI_ARKKITEHTI = x86
PROCESSOR_IDENTIFIER = x86 Family 15 Model 3 Stepping 4, GenuineIntel
PROSESSORI_TASO = 15
PROCESSOR_REVISION = 0304
ProgramData = C: \ ProgramData
ProgramFiles = C: \ Program Files
PROMPT = $ P $ G
PSModulePath = C: \ windows \ system32 \ Windows PowerShell \ v1.0 \ Moduulit \
JULKINEN = C: \ Käyttäjät \ Julkinen
SystemDrive = C:
SystemRoot = C: \ windows
TEMP = C: \ Users \ Usr \ AppData \ Local \ Temp
TMP = C: \ Users \ Usr \ AppData \ Local \ Temp
USERDOMAIN = testi7
KÄYTTÄJÄNIMI = Usr
KÄYTTÄJÄPROFIILI = C: \ Käyttäjät \ Usr
windir = C: \ windows
Listassa näkyvien muuttujien lisäksi SET-komentoa kutsuttaessa on muita, joiden arvot muuttuvat dynaamisesti:
% CD %- ottaa nykyisen hakemiston arvon.
% PÄIVÄMÄÄRÄ%- ottaa nykyisen päivämäärän arvon.
% AIKA%- ottaa nykyisen ajan arvon.
% RANDOM%- satunnaisluvun arvo välillä 0 - 32767.
% ERRORLEVEL%- ERRORLEVEL:n nykyinen arvo, erikoismuuttuja, jota käytetään ohjelman suoritustuloksen merkkinä.
% CMDEXTVERSION % CMD.EXE-laajennetun komentokäsittelyversion arvo.
% CMDCMDLINE %- laajenee alkuperäiseen komentoriville, joka kutsui komentoprosessorin.
Jos SET-komentoa kutsuttaessa määrität vain osan nimestä, näkyviin tulee luettelo muuttujista, joiden nimet alkavat määritetyllä merkkijonolla. Esimerkiksi:
SET U- näyttää kaikkien muuttujien arvot, joiden nimet alkavat "U":lla.
SET-komento tukee kahta lisävaihtoehtoa:
SET / lauseke
SET / P muuttuja =
/ A-kytkin osoittaa, että yhtäläisyysmerkin oikealla puolella oleva merkkijono on numeerinen lauseke, jonka arvoa arvioidaan. Lausekeprosessori on hyvin yksinkertainen ja tukee seuraavia toimintoja, jotka on lueteltu laskevassa tärkeysjärjestyksessä:
Kun käytät loogisia tai binäärioperaattoreita, sinun on sisällytettävä lausekemerkkijono lainausmerkkeihin. Lausekkeen ei-numeerisia merkkijonoja käsitellään ympäristömuuttujien niminä, joiden arvot muunnetaan numeerisiksi arvoiksi ennen käyttöä. Jos järjestelmässä ei ole määritetty muuttujaa määritellyllä nimellä, sen tilalle tulee nolla-arvo. Tämän avulla voit suorittaa aritmeettisia operaatioita ympäristömuuttujien arvoille ilman, että sinun tarvitsee kirjoittaa %-merkkejä arvojen saamiseksi. Jos SET / A -komento kutsutaan komentoriviltä komentosarjan sijaan, se tulostaa lausekkeen lopullisen arvon. Jokaisen määritysoperaattorin vasemmalla puolella on oltava ympäristömuuttujan nimi. Numeerisia arvoja pidetään desimaaliarvoina, ellei niiden eteen ole liitetty etuliite:
0x- heksadesimaaliluvuille
0
- oktaaliluvuille.
Esimerkki etuliitteiden käytöstä:
SET / A REZ = 0xA + 012
ECHO% REZ%
Tässä komentotiedostossa muuttujan arvo REZ lasketaan lisäämällä 10 heksadesimaalilukuna (0xA) ja 10 oktaalilukuna (012).
/ P-kytkimellä voit asettaa muuttujan arvon käyttäjän syöttämälle syöttömerkkijonolle. Näyttää määritetyn kehotemerkkijonon ennen syötetyn merkkijonon lukemista. PromptString voi olla tyhjä. Tämän näppäimen avulla voit järjestää vuoropuhelun käyttäjän kanssa erätiedostossa:
@ECHO POIS
SET / P NIMI = Anna käyttäjänimi:
SET / P pass = Anna salasana:
ECHO-käyttäjänimi -% NAME%, salasana -% PASS%
Erätiedostoissa on melko usein tarpeen työskennellä muuttujan hyväksymän osan kanssa, jolle käytetään korvausarvoja:
muuttuja: merkkijono1 = merkkijono2- korvaa muuttujan vastaanotetun arvon rivi1 päällä rivi 2
Seuraava erätiedosto käyttää pistemerkin korvaamista viivamerkillä nykyistä päivämäärää vastaavan muuttujan arvossa:
@ECHO POIS
aseta tm = % DATE %
ECHO Date1 = % tm %
SET tm = % DATE:. = -%
ECHO Date2 = % tm %
Korostaaksesi osan muuttujan hyväksymästä arvosta, käytetään seuraavaa rakennetta:
muuttuja: ~ x, y- missä x- ohitettavien merkkien määrä rivin alusta, ja y- muuttujan arvona käytettyjen merkkien määrä.
Seuraava esimerkki käyttää nykyisen ajan näyttöä ilman sekunteja ja sekuntien murto-osia (vain 5 ensimmäistä merkkiä TIME-muuttujan vakioarvosta):
@ECHO POIS
aseta tm = % TIME%
ECHO-aika1 =% tm%
SET tm = % AIKA: ~ 0,5 %
ECHO-aika2 =% tm%
Jos arvo y(pituus) ei ole määritetty, silloin käytetään rivin loppuun jäljellä olevan muuttujan arvoa. Jos arvo y negatiivinen, silloin käytetään osaa muuttujan arvomerkkijonosta lopusta. Edellistä esimerkkiä voidaan muokata määrittämään, että 6 merkkiä lopusta hylätään vastaanotetussa aika-arvossa:
@ECHO POIS
aseta tm = % TIME%
ECHO-aika1 =% tm%
SET tm = % AIKA: ~ 0, -6 %
ECHO-aika2 =% tm%
Ehkä tyhjien lukujen käyttöä ei ole määritetty ja käytetään negatiivista lukua, niin hyväksytty arvo on osa muuttujaa rivin lopusta:
% PATH: ~ -10 %- purkaa PATH-muuttujan viimeiset 10 merkkiä
Voit jättää nolla-arvon pois säilyttäen korvausmuodon:
% PATH: ~ 0, -2 % vastaa % PATH: ~, -2 %
Käytettäessä ympäristömuuttujia erätiedostoissa, liittyy tietty rajoitus siihen, että annettu arvo pysyy muuttumattomana, kun sitä muutetaan suluissa määritetyn komentoryhmän sisällä, esimerkiksi komennoissa. JOS tai FOR... Voit kiertää tämän rajoituksen käynnistämällä komentoprosessorin parametrilla / V: ON ja käyttämällä huutomerkkejä prosenttimerkkien sijaan saadaksesi muuttujan hyväksymän arvon. Lisäksi on mahdollista käyttää komentoprosessorin tavallista käynnistystä, mutta tämän tilan paikallisella aktivoinnilla komennolla:
Muuttujien arvojen käytön tulosten ero näkyy melko selvästi seuraavassa komentotiedostossa:
@ECHO POIS
aseta VAR = ennen
if "% VAR%" == "ennen" (
aseta VAR = after
jos "! VAR!" == "jälkeen" @echo Prosentti =% VAR%, Kysymysmerkki =! VAR!
Komento aseta VAR = after suoritetaan suluilla rajatun aliohjelman sisällä ja jos poistat komennon Setlocal EnableDelayedExpansion tai älä käytä muuttujan arvon saamiseksi VAR huutomerkkejä, sen arvo pysyy samana (mikä asetettiin ennen aliohjelmaan siirtymistä). Sama ongelma havaitaan, kun muuttujan arvo muuttuu komentosilmukan sisällä FOR... Esimerkiksi nykyisen hakemiston tiedostojen luetteloimiseksi tällainen erätiedosto ei toimi:
aseta LIST =
%% i:lle (*) aseta LIST =% LIST% %% i
kaiku% LIST%
Muuttuva arvo LISTA silmukan sisällä ei muutu. Jotta tämä tapahtuisi, erätiedostoa on muutettava seuraavasti:
Setlocal EnableDelayedExpansion
aseta LIST =
%% i:lle (*) aseta LIST = LIST! %% i
kaiku% LIST%
Nyt muuttujan arvo LISTA silmukan sisällä FOR muuttuu peräkkäin ottamalla tiedostonimien arvot välilyönnillä erotettuina ( aseta LIST = LIST! %% i)
0.00 (1 )
Yleinen lähestymistapa.
Erätiedostot ovat tekstitiedostoja, joiden tunniste bat tai cmd joiden merkkijonot ovat komentoja tai suoritettavien tiedostojen nimiä. Kun suoritat komentotiedoston suoritusta varten, käyttöjärjestelmän komentoprosessori (jota usein kutsutaan komentokulkiksi) ottaa hallinnan, joka lukee ja tulkitsee komentotiedoston rivit peräkkäin. Windows 9X:ssä se tekee tämän command.com, WinNT / 2K / XP - cmd.exe... Komentotiedostorivit voivat sisältää komentoja itse komentoprosessorilta (FOR, GOTO, IF jne.) tai suoritettavien moduulien nimiä (net.exe, regedit.exe, win.com jne.). WinNT / 2K / XP -käyttöjärjestelmissä voit saada lyhyttä apua komentojen koostumukseen komentorivin avulla:
tai tietyllä komennolla:
HELP komennon nimi
Voit näyttää ohjetekstin ei näytöllä, vaan tiedostossa ohjaamalla ulostuloa ... Komentoriviä käytettäessä vakiosyöte on näppäimistö ja lähtö on näyttö, mutta nämä laitteet voidaan määrittää uudelleen käyttämällä uudelleenohjausmerkkejä
< - syötteen uudelleenohjaus
> - tulosteen uudelleenohjaus (tai>> - uudelleenohjaus olemassa olevaan tiedostoon, kun tulos liitetään tiedoston loppuun.)
Tulostaa komennon tietovirran
AUTAtiedostolle help.txt komentorivi on seuraava:OHJE> help.txt
GOTO-komennon ohjeen näyttäminen goto.txt-tiedostossa:
OHJE GOTO> goto.txt
Ympäristömuuttujien käyttö.
Erätiedostoissa voit ja usein pitäisi käyttää ympäristömuuttujat - muuttujat, joiden arvot kuvaavat ympäristöä, jossa komento tai erätiedosto suoritetaan. Ympäristömuuttujien arvot luodaan, kun käyttöjärjestelmä ladataan ja käyttäjä on rekisteröitynyt järjestelmään, ja ne voidaan asettaa myös komennollaASETAjonka muoto on:
SET [muuttuja = [merkkijono]]
muuttuja Ympäristömuuttujan nimi.
linja Määritetylle muuttujalle liitettävä merkkijono.
Esimerkiksi komentorivi
SET mynane = Vasya
lisää muuttujan myname, jonka arvoksi on asetettu Vasya.
Voit saada muuttujan arvon ohjelmissa ja erätiedostoissa käyttämällä sen nimeä prosenttimerkkien sisällä ( %) ... Esimerkiksi komento
näyttää sanan aika ja komennon
näyttää muuttuvan ajan arvon, joka ottaa nykyisen ajan arvon.
Ja komentorivi
SET PATH = C: myprog;% polku%
lisää hakemiston C: myprog PATH-muuttujan arvon kuvaamien suoritettavien ohjelmien hakupolkuun
SET-komennon suorittaminen ilman parametreja saa muuttujien nykyiset arvot näkyviin näytölle muodossa:
NUMBER_OF_PROCESSORS = 1 - prosessorien määrä
OS = Windows_NT - käyttöjärjestelmän tyyppi
Polku = E: WINDOWSsystem32; E: WINDOWS; E: Program FilesFar - suoritettavien tiedostojen hakupolku.
PATHEXT = .COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .JSE; .WSF; .WSH - suoritettavien tiedostojen laajennukset.
PROCESSOR_ARCHITECTURE = x86 - prosessoriarkkitehtuuri.
PROCESSOR_IDENTIFIER = x86 Family 6 Model 8 Stepping 1, AuthenticAMD - prosessoritunnus.
PROCESSOR_LEVEL = 6 - prosessorin taso (mallinumero).
PROCESSOR_REVISION = 0801 - prosessoriversio.
ProgramFiles = E: Program Files - polku "Program Files" -kansioon
PROMPT = $ P $ G - komentorivikehotteen muoto $ P - polku nykyiselle hakemistolle $ G - ">" -merkki.
SystemDrive = E: - järjestelmäaseman kirjain.
SystemRoot = E: WINDOWS - Windows-käyttöjärjestelmän hakemisto.
SET-komento ei näytä joidenkin muuttujien arvoa. Nämä ovat muuttujia, joiden arvot muuttuvat dynaamisesti:
% CD% - Ottaa nykyisen hakemistorivin arvon.
% DATE% - Ottaa nykyisen päivämäärän arvon.
% TIME% - Ottaa nykyisen ajan arvon.
% RANDOM% - Hyväksyy satunnaisen desimaaliarvon välillä 1 -32767.
% ERRORLEVEL% - Ottaa ERRORLEVEL-tehtävän suorituskoodin nykyisen arvon
% CMDEXTVERSION% - Käyttää komentotulkkiversion CMD.EXE parannettua komentojen käsittelyä.
% CMDCMDLINE% - Ottaa komentoprosessorin kutsuneen rivin arvon.
Voit tarkastella muuttujan arvoa komentorivin avulla:
ECHO % muuttuva %
Syötä parametrit erätiedostoon.
On mahdollista välittää komentoriviparametreja erätiedostoon ja käyttää niiden arvoja itse komentojonotiedoston lausekkeissa.
BAT-tiedosto< параметр1 > , < параметр2 >, ... < параметрN >
Itse komentotiedostossa ensimmäinen parametri on käytettävissä muuttujana %1 , toinen - %2 jne. Itse erätiedoston nimi on saatavilla muuttujana %0 ... Luodaan esimerkiksi komentotiedosto, jonka tehtävänä on näyttää syötettyjen parametrien arvot näytöllä. Tyypillisesti komentoa käytetään tekstin näyttämiseen
KAIKU< текст >
Jos teksti kuitenkin korvataan % 1:llä, ensimmäinen parametri näytetään, % 2 - toinen jne.
Luo parm.bat-tiedosto, jossa on seuraava sisältö:
echo Ensimmäinen parametri = % 1
echo Toinen parametri = % 2
echo Kolmas parametri = % 3
ja suorita se seuraavalla komennolla:
parm.bat ENSIMMÄINEN toinen "kaksi sanaa"
Kun olet suorittanut sen, ymmärrät kuinka se toimii ja että parametrit välilyönneillä on laitettava lainausmerkkeihin. Voit estää komentoprosessorin käsittelemien rivien näkymisen näytöllä käyttämällä komentoa
ECHO OFFasettamalla sen erätiedoston ensimmäiselle riville. Jos haluat, että komentotulkki ohittaa komentotiedoston rivin, sijoita se sen alkuunREM< пробел > ... Tällä tavalla voit sijoittaa kommentteja, jotka ovat usein hyödyllisiä suurissa erätiedostoissa:rem ECHO OFF poistaa käytöstä tilan, jolla komentotiedoston rivien sisältö näytetään näytöllä
REM näyttää vain suorituksensa tuloksen.
echo Ensimmäinen parametri = % 1
echo Toinen parametri = % 2
echo Kolmas parametri = % 3
Yritä korvata ECHO OFF tilalla @ECHO OFF - tulos puhuu puolestaan. Linja, joka sammuttaa lähtötilan, ei enää näy näytössä.
Siirtymät ja etiketit.
Erätiedostoissa voit käyttää ehdollisia hyppykomentoja, jotka muuttavat työnsä logiikkaa tiettyjen ehtojen täyttymisen mukaan. Ehdollisten hyppyjen käyttötekniikoiden havainnollistamiseksi luomme erätiedoston, jonka tarkoituksena on määrittää ennalta määritetty asemakirjain siirrettävälle tietovälineelle, jota käytetään flash-asemina. Edellytykset ovat seuraavat - on 2 flash-asemaa, joista toisen pitäisi näkyä Explorerissa asemana X: ja toisen asemana Y: riippumatta siitä, mihin USB-porttiin ne on kytketty. Oletetaan, että todelliset levyt voidaan yhdistää muodossa F: tai G: Tunnistamme levyt tietynnimisen tiedoston perusteella (on parempi piilottaa tällainen tiedosto juurihakemistoon ja kutsua sitä epätavalliseksi):
Flashd1.let - ensimmäisellä levyllä
Flashd2.let - toisessa
Nuo. Erätiedoston tehtävänä on tarkistaa, onko irrotettavia asemia F: ja G: tiedostot Flashd1.let tai Flashd2.let ja määritä asemakirjain sen mukaan, mikä niistä on olemassa X: tai Y:
Voit etsiä tiedoston levyltä käyttämällä komentoa
JOS OLEMASSA:JOS OLEMASSA tiedostonimi -komento
Helpoin komento on käyttääSUBSTaseman nimen yhdistäminen hakemistoon.
SUBST X: C: - luo virtuaalilevyn X :, jonka sisältö on C:-aseman juurihakemisto
Luo erätiedosto setXY.bat seuraavilla riveillä:
Tällaisen tiedoston suorittamisen jälkeen sinulla on levyt X: ja Y: Mutta jos suoritat sellaisen tiedoston uudelleen, SUBST-komento näyttää virheilmoituksen - levyt X: ja Y: ovat jo olemassa.
On suositeltavaa ohittaa SUBST:n suorittaminen, jos virtuaalilevyt X: ja Y: on jo luotu (tai poista ne komennolla SUBST valitsimella -d ennen yhteyden muodostamista). Erätiedoston muokkaaminen käyttämälläMENE- ohjauksen siirto erätiedoston riville etiketillä.
GOTO etiketti
Tarran on oltava erillisellä rivillä ja aloitettava kaksoispisteellä. Tehdään muutoksia erätiedostoomme, jotta virheilmoituksia ei tule näkyviin:
REM jos X:ää ei ole: - siirry sitten etikettiin SETX
JOS EI OLE OLEMASSA X: SIIRRY SETX
REM, jos X on olemassa: - tarkista Y:
JOS OLEMASSA G: flashd1.let SUBST X: G:
JOS OLEMASSA F: flashd1.let SUBST X: F:
REM, jos Y: on olemassa - poistu erätiedostosta.
JOS ON OLEMASSA Y: POISTU
JOS OLEMASSA G: flashd2.let SUBST Y: G:
JOS OLEMASSA F: flashd2.let SUBST Y: F:
REM-poistuminen erätiedostosta
SUBST-virheviesti katosi. Merkkejä virheistä komentojen suorittamisessa voidaan jäljittää itse komentotiedostossa analysoimalla muuttujaERRORLEVEL, jonka arvo muodostuu useimpien ohjelmien suorituksen aikana. ERRORTASO on 0, jos ohjelma päättyi ilman virheitä ja 1, jos tapahtui virhe. Myös muita arvoja voi olla, jos ne annetaan suoritettavassa ohjelmassa.
Voit myös käyttää erätiedostoa komentona erätiedoston rivillä. Lisäksi käytä komentoa siirtääksesi ja palataksesi takaisin kutsuvan komentotiedoston suorituspisteeseenSOITTAA PUHELIMELLA... Luodaan komentotiedosto test.bat, jossa on seuraava sisältö:
ECHO Call 1.bat
ECHO paluu.
Ja komennon sisältävä tiedosto 1.batTAUKO,joka keskeyttää erätiedoston suorittamisen, kunnes mitä tahansa näppäintä painetaan.
Kun test.bat suoritetaan, näytölle tulee viesti
Soitetaan 1.bat
ja ohjaus saa 1.bat pause-komennolla. Kun olet käynnistänyt näppäimen näppäimistöllä, komentorivi "ECHO Return". ja näyttö tulee näkyviin
Jos CALL poistetaan tiedostosta test.bat, tiedostosta 1.bat paluuta ei suoriteta. Muuten, käyttämällä ohjauksen siirtoa erätiedostoon, voit järjestää sen silmukan. Yritä lisätä seuraava rivi test.bat-tiedoston loppuun:
Voit poistua erätiedostosilmukasta painamalla CTRL-Break yhdistelmää. On mahdollista käyttää CALL-komentoa kutsumaan proseduuria erätiedoston sisällä. Tässä tapauksessa argumentti ei ole ulkoisen tiedoston nimi, vaan tunniste:
....
soita: proc1
....
: proc1
....
poistu
....
Tiedoston luominen.
Windowsissa ei ole erillistä komentoa tiedoston luomiseen, mutta se voidaan helposti luopua useilla tavoilla:
Kopioi konsolista tiedostoon
COPY CON myfile.txt
Kun tämä komento suoritetaan, näppäimistön (laitteen CON) tiedot kirjoitetaan tiedostoon myfile.txt. F6 tai CTRL-Z painaminen lopettaa tulostuksen.
Ulostulon uudelleenohjaus
ECHO 1> omatiedosto.txt
Tämän komennon suorittaminen luo tiedoston myfile.txt, joka sisältää merkin "1"
Tulon ja lähdön uudelleenohjauksen yhdistelmä:
COPY CON> omatiedosto.txt< xyz
Tätä komentoa suoritettaessa, kuten ensimmäisessä tapauksessa, käytetään kopiointia konsolista tiedostoon, mutta näppäimistön tietojen sijaan käytetään syöttöä olemattomasta laitteesta xyz. Järjestelmä näyttää viestin, jonka mukaan tällaista laitetta ei ole olemassa, mutta tyhjä tiedosto myfile.txt luodaan onnistuneesti.
Hyvin yksinkertainen vaihtoehto on kopioida valelaitteesta nimellä null tiedostoon.
kopioi nul myfile.txt
Jos joudut usein luomaan tyhjiä tiedostoja, voit valmistella komentojonotiedoston (esimerkiksi newfile.bat tai vielä parempaa nf.bat) ja välittää luotavan tiedoston nimen sille parametrina käynnistyksen yhteydessä.
Tiedoston sisältö:
Aseta tämä erätiedosto järjestelmähakemistoosi (C: windowssystem32 tai mikä tahansa PATH-hakupolussasi).
Komentorivi:
uusitiedosto.bat omatiedosto.txt
Tai
nf.bat omatiedosto.txt
Tai
nf omatiedosto.txt
Sen verran käskystä nf luodaksesi tyhjän tiedoston komentoriville.
Saman asemakirjaimen määrittäminen siirrettävälle levylle.
Tehtävänä on varmistaa, että irrotettava USB-levy (flash-levy) on aina saatavilla samalla kirjaimella, riippumatta siitä, millä tietokoneella sitä käytetään ja miten se on kytketty. Sen ratkaisemiseksi käytämme jo yllä mainittua SUBST-komentoa. Valitaan siirrettävälle levylle haluttu kirjain, esimerkiksi - X. Sen levyn nimi, jolta erätiedosto käynnistettiin, on saatavilla % ~ d0 muuttujana. Luo erätiedosto, jossa on seuraava sisältö: @kaiku pois
subst X:% ~ d0
mikä tarkoittaa - luoda virtuaalilevy X: joka on yhdistetty fyysiseen levyyn, josta erätiedosto käynnistettiin.
Lisätietoja % 0 -korvausarvoista on seuraavassa erätiedostossa:
@kaiku pois
ECHO-KÄSITTELYTIEDOSTO -% 0
ECHO Erätiedoston luomis-/muokkauspäivä/aika -% ~ t0
ECHO Erätiedoston polku - "% ~ f0"
ECHO Erätiedostolevy -% ~ d0
ECHO Erätiedostohakemisto - "% ~ p0"
ECHO-komentotiedoston nimi -% ~ n0
ECHO Erätiedostopääte -% ~ x0
ECHO Lyhyt nimi ja pääte -% ~ s0
ECHO Erätiedoston attribuutit -% ~ a0
ECHO Erätiedoston koko -% ~ z0
Sukupolvien arkistojen luominen päivämäärän ja ajan mukaan.
Ratkaistaan seuraava ongelma - sinun on luotava arkisto tiedostoista, jotka sijaitsevat C: Program FilesFAR -hakemistossa. Arkistotiedoston nimen tulee sisältää nykyinen kellonaika (tuntia.minuuttia.sekuntia - HH.MM.SS.rar) ja se on sijoitettava uuteen hakemistoon, jonka nimessä on oltava nykyinen päivämäärä (päivä) .kuukausi.vuosi - PP.KK. VVVV). Arkistointiin käytämme RAR-arkistointiohjelmaa. Arkiston luomisen aloitusmuoto:
RAR a -r< путь и имя архива > < Путь и имя архивируемых данных >
a- komento luoda arkiston.
-r- avain, joka määrittää alihakemistojen arkistoinnin (koska lähdekansiossa on alihakemistoja).
Joten ongelman ratkaisemiseksi sinun on luotava oikein nimet ja polut RAR:lle. Mihin käytämme seuraavia tekijöitä:
Päivämäärä, joka saadaan % DATE% muuttujasta alueellisilla oletusasetuksella, on seuraava: Aseta VDATE = % päivämäärä: ~ 3 % Luo C:-asemaan hakemisto, jonka nimi = nykyinen päivämäärä VDATE-muuttujasta: MD C: \% VDATE% Aika % TIME % muuttuja: Aloitetaan arkistointi: Nyt voit luoda erätiedoston sisällöllä: Aseta VDATE = % päivämäärä: ~ 3 % Tällainen erätiedosto voidaan suorittaa automaattilatauksella tai osana komentosarjaa, kun käyttäjä kirjautuu toimialueelle tai käyttämällä ajastinta tiettyyn aikaan, ja sinulla on aina käytettävissäsi kriittisten tietojen aikajärjestetyt arkistot.
Tämä erätiedosto luo arkistoja Win2K/XP-käyttäjien My Documents -kansion sisällöstä ja sijoittaa ne hakemistoihin |
Komentotiedostojen sisällä voit työskennellä ns. ympäristömuuttujien (tai ympäristömuuttujien) kanssa, joista jokainen on tallennettu RAM-muistiin, jolla on oma yksilöllinen nimi ja sen arvo on merkkijono. Vakioympäristömuuttujat alustetaan automaattisesti käyttöjärjestelmän käynnistyksen aikana. Tällaisia muuttujia ovat esimerkiksi WINDIR, joka määrittää Windows-hakemiston sijainnin, TEMP, joka määrittää polun Windowsin väliaikaisten tiedostojen tallennushakemistoon, tai PATH, joka tallentaa järjestelmäpolun (hakupolun), eli luettelo hakemistoista, joista järjestelmän tulee etsiä suoritettavia tiedostoja tai jaettuja tiedostoja (esimerkiksi dynaamisia kirjastoja). Lisäksi voit määrittää omat ympäristömuuttujasi erätiedostoissa SET-komennolla.
Muuttujan arvon saaminen
Saadaksesi tietyn ympäristömuuttujan arvon, sinun on sisällytettävä tämän muuttujan nimi %-merkeinä. Esimerkiksi:
@ECHO OFF CLS REM Luo muuttuja MyVar SET MyVar = Hello REM Muuta muuttujaa SET MyVar =% MyVar%! ECHO Muuttujan MyVar:% MyVar% REM Muuttujan MyVar poistaminen SET MyVar = ECHO Muuttujan WinDir arvo:% WinDir%
Kun suoritat tällaisen komentotiedoston, seuraava rivi tulee näkyviin näytölle
Muuttujan MyVar arvo: Hei! WinDir-muuttujan arvo: C: \ WINDOWS
Muuttujien muuntaminen merkkijonoiksi
Voit muokata erätiedostojen ympäristömuuttujia. Ensin ne voidaan ketjuttaa (liimata). Tätä varten sinun tarvitsee vain kirjoittaa vierekkäin SET-komentoon yhdistettävien muuttujien arvot. Esimerkiksi,
JOUKKO A = yksi SET B = kaksi SET C = % A % % B %
Kun nämä komennot on suoritettu tiedostossa, C-muuttujan arvo on merkkijono "Div2". Sinun ei pitäisi käyttää +-merkkiä ketjuttamiseen, koska sitä pidetään yksinkertaisesti symbolina. Esimerkiksi seuraavan sisällön tiedoston käynnistämisen jälkeen
SET A = yksi SET B = kaksi SET C = A + B ECHO-muuttuja C =% C% SET D =% A% +% B% ECHO-muuttuja D =% D%
näytölle tulee kaksi riviä:
Muuttuja C = A + B Muuttuja D = Yksi + kaksi
Toiseksi, alimerkkijonoja voidaan poimia ympäristömuuttujasta konstruktion avulla % muuttujan_nimi: ~ n1, n2 %, jossa luku n1 on vastaavan ympäristömuuttujan poikkeama (ohitettavien merkkien määrä) alusta (jos n1 on positiivinen) tai lopusta (jos n1 on negatiivinen) ja luku n2 on merkkien määrä allokoitava (jos n2 on positiivinen) tai muuttujan viimeisten merkkien lukumäärä, joita ei sisällytetä valittuun osamerkkijonoon (jos n2 on negatiivinen). Jos vain yksi negatiivinen -n -vaihtoehto on määritetty, viimeiset n merkkiä puretaan. Esimerkiksi, jos muuttuja% DATE% tallentaa merkkijonon "21/09/2007" (symbolinen esitys nykyisestä päivämäärästä tietyissä alueellisissa asetuksissa), seuraavien komennon suorittamisen jälkeen
ASETUS dd1 = % PÄIVÄMÄÄRÄ: ~ 0,2 % ASETUS dd2 = % PÄIVÄMÄÄRÄ: ~ 0, -8 % ASETUS kk = % PÄIVÄMÄÄRÄ: ~ -7,2 % SET yyyy = % PÄIVÄMÄÄRÄ: ~ -4 %
uusilla muuttujilla on seuraavat arvot: % dd1 % = 21, % dd2 % = 21, % kk % = 09, % vvvv % = 2007.
Kolmanneksi voit suorittaa toimenpiteen alimerkkijonojen korvaamiseksi konstruktion avulla % muuttujan_nimi: s1 = s2%(tämä palauttaa merkkijonon, jossa jokainen alimerkkijono s1 esiintyy vastaavassa ympäristömuuttujassa korvataan s2:lla). Esimerkiksi komentojen suorittamisen jälkeen
SET a = 123456 SET b = % a: 23 = 99 %
muuttuja b tallentaa merkkijonon "199456". Jos s2-parametria ei ole määritetty, s1-alimerkkijono poistetaan tulostemerkkijonosta, ts. komennon suorittamisen jälkeen
SET a = 123456 SET b = % a: 23 = %
muuttuja b tallentaa merkkijonon "1456".
Muuttujien operaatiot numeroina
Kun laajennettu komentokäsittely on käytössä (tämä tila on oletuksena käytössä Windows XP:ssä), on mahdollista käsitellä ympäristömuuttujien arvoja numeroina ja suorittaa niillä aritmeettisia laskelmia. Käytä tätä varten SET-komentoa / A-kytkimellä. Tässä on esimerkki erätiedostosta add.bat, joka lisää kaksi komentoriviparametreiksi määritettyä numeroa ja näyttää tuloksena olevan summan näytöllä:
@ECHO OFF REM Muuttuja M tallentaa summan SET / A M = % 1 + % 2 ECHO Sum of % 1 ja % 2 on yhtä kuin % M% REM Poista muuttuja M SET M =
Muutoksia muuttujiin paikallisesti
Erätiedoston ympäristömuuttujiin SET-komennolla tehdyt muutokset tallennetaan tiedoston valmistumisen jälkeen, mutta ne ovat voimassa vain nykyisessä komentoikkunassa. On myös mahdollista lokalisoida ympäristömuuttujien muutokset erätiedoston sisällä, eli palauttaa automaattisesti kaikkien muuttujien arvot sellaiseen muotoon, jossa ne olivat ennen tämän tiedoston käynnistämistä. Tähän käytetään kahta komentoa: SETLOCAL ja ENDLOCAL. SETLOCAL-komento määrittää paikallisen ympäristömuuttujan asetusalueen alun. Toisin sanoen SETLOCALin suorittamisen jälkeen tehdyt ympäristömuutokset ovat paikallisia nykyisessä erätiedostossa. Jokaisella SETLOCAL-komennolla on oltava vastaava ENDLOCAL-komento ympäristömuuttujien aiempien arvojen palauttamiseksi. Ympäristömuutokset, jotka on tehty ENDLOCAL-komennon suorittamisen jälkeen, eivät ole enää paikallisia nykyisessä erätiedostossa; niiden aikaisempia arvoja ei palauteta tämän tiedoston suorittamisen jälkeen.