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:

Nimi
Kuvaus
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 tietovirranAUTAtiedostolle 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ä komentoaECHO 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ä komentoaJOS 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ä:

  • Erätiedostoissa voit käyttää nykyistä päivämäärää ja kellonaikaa - muuttujat % DATE% ja % TIME%
  • Väliaikaisia ​​muuttujia voidaan luoda erätiedostoihin SET-komennolla.
  • Väliaikaisten muuttujien arvo voidaan luoda % DATE% ja % TIME% perusteella ohittamalla ja/tai korvaamalla niiden osat samalla SET-komennolla.

    Päivämäärä, joka saadaan % DATE% muuttujasta alueellisilla oletusasetuksella, on seuraava:
    Ma 21.01.2005- Viikonpäivä (2 merkkiä) - Välilyöntipäivämäärä (10 merkkiä)
    Luodaan esimerkiksi hakemisto MD-komennolla< имя каталога >.
    Luo muistiin väliaikainen muuttuja VDATE ja määritä sille ympäristömuuttujan DATE arvo ilman kolmea ensimmäistä merkkiä - 20.01.2005:

    Aseta VDATE = % päivämäärä: ~ 3 %

    Luo C:-asemaan hakemisto, jonka nimi = nykyinen päivämäärä VDATE-muuttujasta:

    MD C: \% VDATE%
    Tämän komennon suorittamisen jälkeen C:-asemaan luodaan hakemisto, jonka nimi on 01/20/2005.

    Aika % TIME % muuttuja:
    14:30:59.93 - Tunteja, minuutteja, sekunteja, sekunnin sadasosia.
    Arkistotiedoston nimessä sadasosat ovat ehkä tarpeettomia. Luo väliaikainen muuttuja VTIME ja määritä sille nykyinen aika ilman viimeisiä kolmea merkkiä
    aseta VTIME = % aika: ~ 0, -3 %
    Nyt VTIME = 14:30:59, mutta ":"-merkkiä ei voi käyttää tiedoston nimessä, joten korvaamme sen pisteellä.
    aseta VTIME =% VTIME :: =.%
    Muuttuja VTIME saa arvon 14.30.59 Sillä tiedostonimi käy.

    Aloitetaan arkistointi:

    Nyt voit luoda erätiedoston sisällöllä:

    Aseta VDATE = % päivämäärä: ~ 3 %
    md c: \% VDATE%
    aseta VTIME = % aika: ~ 0, -3 %
    aseta VTIME =% VTIME :: =.%
    rar a -r C: \% VDATE% \% VTIME% .rar "C: Program filesfar *. *"

    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.

    Luo arkistoja käyttäjäprofiilimuuttujien avulla.

    Tämä erätiedosto luo arkistoja Win2K/XP-käyttäjien My Documents -kansion sisällöstä ja sijoittaa ne hakemistoihin
    C: ARHIV My Documents Käyttäjätunnus Päivämäärä Aika

    Muuttujia USERPROFILE, USERNAME, WINDIR käytetään, joten tämä erätiedosto ei toimi WIN9X:ssä. (Vaikka voit halutessasi lisätä komentoja autoexec.bat-tiedostoon näiden muuttujien arvojen asettamiseksi ja käyttää sitä yhden käyttäjän versiossa ilman muutoksia tai vain vähän). Erätiedoston sisältö on merkitty, eikä sen pitäisi olla liian vaikeaa, kun olet selvittänyt edellisen esimerkin:

    @kaiku pois
    rem FROM-muuttuja on asetettu - mistä saa tiedot arkistointia varten
    set FROM =% USERPROFILE% My Documents
    rem TO-muuttuja on asetettu - minne arkistot sijoitetaan
    aseta TO = C: arhivOmat asiakirjat \% KÄYTTÄJÄNIMI%
    rem Luo TO-hakemisto
    md "% TO%"
    rem Muodosta alihakemiston nimi nykyisestä päivämäärästä
    rem nykyinen päivämäärä oletusasetuksissa Win2K:lle - ma 25.04.2005
    rem nykyinen päivämäärä oletusasetuksissa WinXP:lle - 25.04.2005
    rem Nykyisestä päivämäärästä, muodosta alihakemiston nimi - 25.04
    rem Windir-oletusarvo WinXP:lle on C: WINDOWS ja Win2K:lle C: WINNT
    JOS / I% Windir% == C: WINNT GOTO Win2K
    aseta vdate = % PÄIVÄMÄÄRÄ: ~ 0, -5 %
    SIIRRY SetFileName
    : Win2K
    aseta vdate = % PÄIVÄMÄÄRÄ: ~ 3, -5 %
    rem Muodostetaan arkistotiedoston nimi nykyisestä ajasta - 12: 00: 00.99
    rem, hylkää sekunnin sadasosat ja korvaa merkki: merkillä. Tulos - 12.00.00
    : SetFileName
    aseta vtime = % AIKA: ~ 0, -3 %
    aseta vtime =% vtime :: =.%
    rem Luo alihakemisto arkistotiedostolle
    md "% TO% \% VDATE%"
    rem Arkistointikomento. -r-kytkintä tarvitaan alikansioiden arkistointiin
    rem-vaihtoehto ARJ-arkistaattorille: arj a -r "% TO% \% VDATE% \% VTIME% .arj" "% FROM% *. *"
    rem Käytettäessä RAR-arkistointia:
    rar a -r "% TO% \% VDATE% \% VTIME% .rar" "% FROM% *. *"

    Komentojen suorittaminen aikataulun mukaan.

    WIN2K / XP:ssä on komentorivi-apuohjelmaAT,jonka avulla voit suorittaa komennon tai erätiedoston määrättynä aikana paikallisessa tai etätietokoneessa. AT-komennon käyttäminen edellyttää Task Scheduler -palvelun olevan käynnissä (yleensä se käynnistetään oletuksena, kun järjestelmä on asennettu).

    AT [\ tietokoneen nimi] [[koodi] | / POISTA]

    [\ tietokoneen nimi] aikaan

    [/ JOKAINEN: päivä [, ...] | / SEURAAVA: päivä [, ...]] "komento"

    \ tietokoneen nimi Etätietokoneen nimi. Jos tämä parametri jätetään pois,

    paikallista tietokonetta käytetään.

    koodi Ajastetun tehtävän järjestysnumero. Ilmoitettu, jos haluat peruuttaa jo ajoitetun tehtävän näppäimellä / poista.

    / poista Peruutetaan ajoitettu tehtävä. Jos tehtäväkoodi jätetään pois,

    kaikki määritetyille ajoitetut tehtävät

    tietokone.

    / Joo Vahvistuspyynnön peruuttaminen, kun kaikki peruutetaan

    ajoitetut tehtävät.

    aika Aika, jolloin komento aloitettiin.

    / interaktiivinen Tehtävän vuorovaikutuksen salliminen käyttäjän kanssa,

    työskentelee tietokoneella tehtävän käynnistyksen aikana. Ilman tätä avainta käynnistetyt tehtävät ovat näkymättömiä tietokoneen käyttäjälle.

    / joka päivä [, ...] Tehtävä käynnistetään määritettyinä viikonpäivinä tai

    kuukaudet. Jos päivämäärä jätetään pois, käytetään kuluvaa päivää

    / seuraava päivä [, ...] Tehtävä käynnistetään seuraavana määritellynä viikonpäivänä

    (esimerkiksi ensi torstaina). Jos päivämäärä jätetään pois,

    Kuukauden nykyistä päivää käytetään.

    "komento" Komento- tai erätiedoston nimi.

    Esimerkkejä käytöstä:

    "Hälytyskellon" analogi - ponnahdusikkunat, joissa on teksti, joka muistuttaa nykyistä tai määritettyä käyttäjää suorittamaan jokin toimenpide. Käytä apuohjelmaa lähettääksesi viestin käyttäjälleNET.EXE

    KLO 13:50 net.exe lähetä * Aika juoda kahvia

    KLO 17.50 net.exe lähettää Käyttäjälle Kotiinmenonajan

    AT \ PALVELIN 13:45 net.exe send Palvelin on käynnistettävä uudelleen

    Aikataulutettujen tehtävien luettelon tarkasteleminen:

    Jo ajoitettujen tehtävien poistaminen:

    KLO 3 / POISTA- tehtävän numero 3 poistaminen

    AT / POISTA / KYLLÄ- kaikkien tehtävien poistaminen

    "Ohjauspaneeli" - "Ajoitettujen tehtävien" avulla voit tarkastella, muokata ja poistaa tiimin luomia AT tehtäviä.

    Järjestelmäpalvelujen pysäytys ja käynnistäminen.

    Voit pysäyttää ja käynnistää Win2K / XP -palvelut komentoriviltä käyttämällä NET.EXE-komentoa

    NET.EXE STOP< имя службы >

    NET.EXE START< имя службы >

    On mahdollista käyttää sekä lyhyttä että koko nimeä ("Dnscache" - lyhyt, "DNS-asiakas" - palvelun koko nimi). Palvelun nimi, joka sisältää välilyöntejä, on lainausmerkeissä. Esimerkki "DNS-asiakas"-palvelun uudelleenkäynnistämisestä

    verkkopysäkki "DNS-asiakas"

    net start "DNS asiakas"

    Sama, käyttäen lyhyttä nimeä:

    net stop Dnscache

    net start Dnscache

    Palvelun koko nimi voidaan kopioida "Palvelusta" -< Имя службы >- "Ominaisuudet" - "Näytettävä nimi"

    Palveluiden hallintaan on paljon kätevämpää käyttää PsTools-apuohjelmien PsService.exe-apuohjelmaa, joka ei vaadi asennusta ja toimii kaikissa Windows-käyttöjärjestelmissä. Palvelun käynnistämisen ja pysäyttämisen lisäksi sen avulla voit etsiä tiettyä palvelua lähiverkon tietokoneista, kyselyn palvelun tilasta ja konfiguraatiosta, muuttaa käynnistystyyppiä, keskeyttää palvelun, jatkaa, käynnistää uudelleen.

    Voit työskennellä järjestelmäpalvelujen kanssa Windows XP:ssä käyttämällä apuohjelmaa sc.exe, jonka avulla voidaan paitsi pysäyttää / käynnistää palvelu, myös tutkia sen tilaa, käynnistys- ja toimintaparametreja, muuttaa kokoonpanoa ja toimia paitsi järjestelmäpalvelujen myös ohjainten kanssa. Jos sinulla on oikeudet, on mahdollista hallita palveluita paitsi paikallisella, myös etäkoneella. Esimerkkejä:
    sc.exe pysäyttää DNS-välimuistin- Pysäytä DNSCache-palvelu paikallisessa tietokoneessa.
    sc \ 192.168.0.1 kysely DNSCache- kysy DNSCache-palvelun tila tietokoneelta IP-osoitteella 192.168.0.1
    sc \ COMP käynnistä DNSCache käynnistä DNSCache-palvelu tietokoneessa COMP
    Saat vihjeen apuohjelman käyttämiseen kirjoittamalla:
    sc /?

    Näytetään ERRORLEVEL-muuttujan arvo.

    Tämä yksinkertainen erätiedosto näyttää tietyn komentorivin ERRORLEVEL-muuttujan arvon. Ensin tarkistetaan ainakin yhden syöttöparametrin olemassaolo, ja jos mitään ei ole määritetty, annetaan virheilmoitus ja poistuminen on suoritettu. Jos vähintään yksi parametri on määritetty, syöteparametreja pidetään komentorivina ja suoritetaan, ja ERRORLEVEL-arvo annetaan ECHO-komennolla. Tiedoston sisältö (annoin sille nimen echoEL.bat):

    @kaiku pois
    jos "% 1" NEQ "" GOTO PARMOK
    ECHO Sinun on asetettava komentorivi ERRORLEVEL-arvon määrittämiseksi
    poistu
    : PARMOK
    %1 %2 %3 %4 %5 %6 %7 %8
    ECHO % 1 % 2 % 3 % 4 % 5 % 6 % 7 % 8 ERROR LEVEL = % ERROR LEVEL %

    Esimerkkejä käynnistämisestä:
    echoEL.bat NETOSAITE
    - NET SHARE -komento suoritetaan (näytä luettelo jaetuista verkkoresursseista) ja ERRORLEVEL-koodi annetaan
    echoEL.bat NET SHARE X "=" C:
    - komento NET SHARE X: = C: suoritetaan (luo jaettu verkkoresurssi nimeltä X ja polku C-aseman juurihakemistoon :) Huomaa, että =-merkki on lainausmerkeissä.
    Yllä olevat vaihtoehdot asettavat oikean komentorivin. Mutta yritä asettaa väärä parametri NET.EXE:lle tai komento, jota ei ole ollenkaan, niin näet minkä arvon ERRORLEVEL ottaa. JA HUOMAA, että komentorivi TOIMII, ja esimerkiksi "echoEL.bat format A:" -vaihtoehto alustaa levykkeen asemassa A :.

    Vuoropuhelu käyttäjän kanssa

    Dialogia varten käyttäjän kanssa voit käyttää komentoa:
    SET / P< имя переменной >=< текст >
    kun se suoritetaan, näytölle tulee tekstiviesti< текст >ja vastausteksti on syötettävä. Esimerkki - suoritetaan salasanapyyntö ja määritetään sen arvo "pset"-muuttujalle:

    Set / p pset = "Anna salasana -"
    echo Salasana on -% pset%

    Tämän menetelmän haittana on mahdottomuus jatkaa komentotiedoston suorittamista ilman käyttäjän vastausta, joten hyvin usein käytetään asetettujen sijasta kolmannen osapuolen ohjelmia. Yksi heistä - CHOICE.COM Lataa (1,7 kt).
    CHOICE näyttää tekstiviestin käyttäjälle ja odottaa, että jokin määritetyistä vastausvaihtoehdoista (näppäimistön näppäinpainallukset) valitaan. Valintatulosten perusteella muodostetaan muuttuja ERRORLEVEL, jonka arvo on yhtä suuri kuin valinnan järjestysnumero. Oletusarvona on kaksi vaihtoehtoa - K tai N. Jos vastaus on K - niin ERRORTASO = 1, jos N - niin ERRORTASO = 2. Voit käyttää useampaa kuin kahta valintavaihtoehtoa ja on mahdollista asettaa oletusvalinta, kun käyttäjä ei ole painanut mitään näppäintä tiettyyn aikaan. Komentorivimuoto:

    CHOICE valinnat] c, nn]
    / C [:] valinnat - Määrittää hyväksyttävät vaihtoehdot. Jos ei asetettu - YN
    / N - älä näytä vaihtoehtoja.
    / S - isot ja pienet kirjaimet ovat erilaisia.
    / T [:] c, nn - Oletusvalinta on "c" "nn" sekunnin kuluttua
    text - Pyynnönä tulostettava tekstijono

    Luodaan erätiedosto, joka esittelee CHOICE:n käyttöä. Se reagoi näppäinten "1", "2", 3 "ja" 0 painamiseen. "Painaminen" 0 "päättyy, ja loput painaminen - viesti käyttäjälle. Jos mitään ei paineta 10 sekuntiin - loppu.

    @ECHO POIS
    : VALINTA
    VALINTA / C: 1230 / P: 0,10 Sinun vaihtoehtosi
    JOS % ERRORLEVEL % EQU 4 GOTO EXIT
    echo Valintasi =% ERRORLEVEL%
    GOTO CHOICE
    : POISTU

    Nyt voit CHOICE-toiminnolla luoda erätiedostoja, joiden logiikan käyttäjä voi itse määrittää.

    Viiveet erätiedostoissa

    Aikoinaan, takaisin DOSissa, kätevää SLEEP-komentoa käytettiin odottamisen järjestämiseen erätiedostossa, mutta sitten se jostain syystä siirtyi tavallisesta Windowsin asennussarjasta lisäresurssisarjaan. Voit yksinkertaisesti kopioida sen sieltä system32-hakemistoon ja käyttää sitä erätiedostoissasi.

    : SLEEP N - missä N on viiveen sekuntimäärä.

    Jos Resource Kit ei ole käsillä, voit käyttää aiemmin käsiteltyä CHOISE-komentoa näyttämättä tekstiä ja luomalla automaattinen vastaus nn sekunnin kuluttua (1-99):

    Choice.com / T: y, 10 / N - 10 sekunnin viive

    Yleisempi menetelmä perustuu silmukkarajapinnan pingiin vaaditulla määrällä paketteja. Silmukkarajapinnan pingaaminen (isäntänimi on localhost tai IP-osoite 127.0.0.1) tapahtuu ilman varsinaista tiedonsiirtoa, ts. lähes välittömästi, ja pingien välinen aika on 1 sekunti. Määrittämällä pingien lukumäärän "-n"-kytkimellä saat n sekunnin viiveen:

    Ping 127.0.0.1 -n 30> null - viivästyy 30 sekuntia

    Etsi tietokoneita, joissa on käynnissä oleva sovellus

    Tämän skriptin toteuttamiseen käytetään paketin apuohjelmia PSTools(Lyhyt kuvaus). Luodaan erätiedosto, joka etsii paikallisverkosta tietokoneita, joissa on käynnissä ohjelma, jonka nimi (nimen alkuosa) on määritetty parametriksi käynnistyksen yhteydessä, esimerkiksi peli. Jos havaitaan, viesti lähetetään ADMINCOMP:lle ja havaittu sovellus pakotetaan sulkeutumaan. Hakuun käytämme Pslist.exe-apuohjelmaa ja analysoimme sen palautuskoodin. ERRORLEVEL-muuttujan arvo, joka on yhtä suuri kuin nolla, tarkoittaa, että apuohjelma on löytänyt etätietokoneesta prosessin, joka vastaa hakuehtoja. Haun prosessin nimi asetetaan parametriksi erätiedostoa käynnistettäessä. Annetaan erätiedostollemme nimi psl.bat... Parametrilla aloittaminen näyttää tältä:
    psl.bat peli
    Ensin sinun on tarkistettava, onko parametri asetettu komentorivillä käynnistyksen yhteydessä, ja jos sitä ei ole asetettu, näytämme viestin käyttäjälle ja poistumme. Jos parametri on asetettu, siirry "PARMOK"-tarraan:
    @kaiku pois
    jos "% 1" NEQ "" GOTO PARMOK
    ECHO Sinun on määritettävä etsittävän prosessin nimi
    poistu
    : PARMOK
    Nyt sinun on varmistettava tietokoneiden IP-osoitteiden johdonmukainen muodostus PSlist-komentoriville. Helpoin tapa tehdä tämä on määrittää tilapäinen ympäristömuuttuja (joka on voimassa vain komentotiedoston suoritusajan) osoitteen vakiokomponentin arvo (esim. 192.168.0.) ja pienimmän laskettu arvo. merkittävä osa (esimerkiksi välillä 1-254). Oletetaan esimerkiksi, että meidän on tarkistettava tietokoneet osoitealueella:
    192.168.0.1 - 192.168.0.30:
    aseta IPTMP = 192.168.0. - osoitteen yläosa
    set / A IPLAST = 1 - matala osa. Avain / A tarkoittaa laskettua numeerista lauseketta
    set IPFULL =% IPTMP %% IPLAST% - täysi IP-osoitteen arvo.
    PSlistin komentorivi näyttää tältä:
    pslist \% IPFULL%% 1
    Nyt ei jää muuta kuin ajaa PS-lista syklisesti, lisäämällä jokaisessa jaksossa yksi osoitteen alaosaan, kunnes sen arvo saavuttaa 30:n ja analysoimalla ERRORLEVEL-arvon suorituksen jälkeen. Tuloksen analysoimiseksi suoritamme siirron komennolla:
    SIIRRY REZULT% ERRORLEVEL%
    tarjoaa siirtymisen REZULT0-merkkiin, kun prosessi havaitaan, ja REZULT1:een
    2013-08-25 14:35:35: Artikkelit: Tietoturva: Ohjelmistot. Piditkö siitä?
  • 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.