Bat-tiedostojen kirjoittaminen - esimerkkejä erätiedostoista. Luo uusi tekstiasiakirja. Tiedostoluettelon luominen komentorivillä

Tietokoneella työskennellessä on usein tarve toistaa samat DOS-komennot säännöllisin väliajoin suoritettavien toimintojen suorittamiseksi, monimutkaisen ja monitasoisen suoritettavien komentojen tai sovellusten sarjan rakentamiseksi, sovellusten ja tiedostojen työskentelyn automatisoimiseksi joko mukana tai ilman. käyttäjä. Käyttöjärjestelmällä on kyky kirjoittaa useita komentoja bat-tiedostoon. Samalla yksinkertaisesti ajaa tämä erätiedosto(kutsutaan usein komentosarjaksi tai yksinkertaisesti "erätiedostoksi"), voit suorittaa määrättyjä komentoja ja rekisteröimällä sen tapahtumiin Windowsin ajastin, voit automatisoida tämän prosessin.

Tiedostojen ominaisuudet tämän tyyppistä on koodin puuttuminen sisällä - on vain kellotiedot, jotka DOS-komentoprosessori lukee ja suorittaa, ja se on yhteensopiva lähes kaikkien käyttöjärjestelmän versioiden kanssa Windows-järjestelmät. Yksi silmiinpistävä esimerkki on autoexec.bat-tiedosto, joka on välttämätön tämän käyttöjärjestelmän käynnistämiseksi, koska se on tiedosto, joka suorittaa asetukset käynnistyksen aikana.

Erätiedostojen perusominaisuudet

Bat-tiedoston sisältämät komennot voidaan jakaa useisiin ryhmiin toiminnallisuuden perusteella:

Suunniteltu näyttämään tietty arvo, lause, sovellus tai tieto;
- käynnistää eräasiakirjoja;
- pyörien kanssa työskentelemiseen;
- luoda haarautumissuoritus käyttämällä ehtoja;
- sovellusten kanssa työskentelyyn.

Suoritetaan erätiedostoja

Voit ajaa bat-tiedostoja eri tavoilla. Työskennellessään sisällä nykyinen hakemisto voit yksinkertaisesti syöttää tiedostojen nimet lisäparametreja tai ilman niitä. Tässä tapauksessa bat-tiedostojen komennot käynnistyksen jälkeen suoritetaan peräkkäin peräkkäin ilman käyttäjän toimia.

Kun komentotiedosto sijaitsee toisessa hakemistossa, sinun on annettava tämän tiedoston koko nimen lisäksi sen hakemiston koko polku, johon se on tallennettu. Tiedostotunniste voidaan myös jättää pois. Esimerkiksi nykyinen hakemisto on d:\photo\work, ja vera.bat-komentotiedosto, joka on suoritettava parametreilla resize.doc ja /p, sijaitsee d:\photo\home-hakemistossa. Sitten, jotta tiedostomme käynnistyy, sinun on annettava komento d:\photo\home\vera resize.doc /p tai komento ..\home\vera resize.doc /p.

Työn keskeytys

Käynnistyksen jälkeen suoritetut BAT-tiedostokomennot voidaan keskeyttää näppäinyhdistelmillä +Ja +. Näyttö pyytää sinua keskeyttämään komentotiedoston ja odottamassa Kyllä- tai Ei-syöttöä. Jos syötät Y, suoritus keskeytyy ja bat-tiedoston jäljellä olevat komentoluettelot ohitetaan. Jos syötät symbolin N, suoritus jatkuu luettelon seuraavalla komennolla.

Toisen erätiedoston kutsuminen

Bat-tiedostot voivat sisältää linkkejä muiden komentosarjojen suorittamiseen. Jos kirjoitat yksinkertaisesti bat-tiedoston komentosarjan runkoon, sen jälkeisiä komentoja ei enää suoriteta, koska ohjaus siirretään toiseen komentotiedostoon ja sen komennot suoritetaan. Jos paluu vaaditaan sisäisen tiedoston suorittamisen jälkeen, se voidaan kutsua CALL-komennolla. Komennon muoto näyttää tältä: CALL bat-tiedoston_nimi [käynnistysparametrit].

Kutsuttuihin komentotiedostoihin välitettävät parametrit ovat yleensä merkkejä %1 - %9. Kun bat-tiedostojen komennot on välitetty peräkkäin, alkuperäisen skriptin suoritus jatkuu seuraavalta riviltä.

Vaiheittainen toteutus

Joskus bat-tiedostokomennot on suoritettava askel askeleelta (pysäytys jokaisen rivin jälkeen). Useimmiten tätä tilaa tarvitaan virheenkorjauksessa tai komentosarjojen testauksessa. Komento näyttää tältä: COMMAND /y/c komentosarjan_nimi [parametrit].

Kun komento suoritetaan, jokaiselle komennolle annetaan Y- tai N-kehote. Jos komento on suoritettava, paina Enter- tai Y-näppäintä.

Poista käytöstä tai ota käyttöön komentotulostus näytölle

Kun bat-tiedosto käynnistetään, komennot näytetään näytöllä rivi riviltä ennen suorittamista ja sitten suoritetaan. Joskus tämä aiheuttaa haittaa, koska milloin iso erätiedosto komennot kulkevat pitkän listan läpi käyttäjän edessä näytöllä, ja joskus ne on näytettävä esimerkiksi dialogia tai virheenkorjausta varten. Voit näyttää komennot bat-tiedostossa käyttämällä ECHO ON -komentoa. Poistaaksesi tämän tilan käytöstä, syötä ECHO parametrilla OFF. Tässä tapauksessa kaikki muut suoritetut komennot eivät enää näy näytöllä.

Jos haluat poistaa käytöstä vain yhden runkotiedoston rivin tulostuksen näytölle, voit käyttää @-symbolia tämän rivin alussa. Useimmiten tämä symboli löytyy @ECHO OFF -komennon yhteydessä, jotta se ei näy monitorin näytössä. Tätä tilaa käyttävät usein hyökkääjät, jotka luovat viruksia lepakkotiedostojen perusteella tai aiheuttavat pieniä ja suuria ongelmia tietokoneen käyttäjille.

Viestit komentoja suoritettaessa

Jos ECHO-komennon jälkeen on muita merkkejä kuin ON tai OFF, ne näkyvät näytöllä missä tahansa tilassa. Jos ECHO:lla ei ole parametreja, se näyttää suoritettavien komentojen näyttötilan tilan - päällä tai pois päältä.

Halutessasi voit jopa toistaa tietokoneen (naukuvan) äänen bat-tiedoston avulla. Seuraavat komentoesimerkit perustuvat ECHO-käskyyn, johon on lisätty erikoismerkkejä.

Pelata äänimerkki sinun on näytettävä vakiomerkki koodilla 7. Tämä voidaan tehdä painamalla -näppäintä ja "7" numeronäppäimistössä (merkitty etusivulle).

Voit parantaa viestien luettavuutta käyttämällä ECHO-komentoa "." (se sijoitetaan välittömästi komennon jälkeen ilman välilyöntiä) tai erikoismerkki koodilla 255. Näytöllä se näyttää tyhjältä riviltä.

ECHO-komentoa voidaan käyttää viestien tulostamiseen erilliseen tiedostoon. Sen ydin on ohjata viesti tuloste tiedostoon näytön sijaan. Voit tallentaa lokeja, kyselyitä ja tallentaa tapahtumia käyttämällä bat. Lähtökomennot ovat seuraavassa muodossa:

ECHO-viesti >> tiedostonimi - komento lisää rivin olemassa olevan tiedoston loppuun. Jos tässä hakemistossa ei ole tällaista tiedostoa, luodaan uusi tiedosto.

ECHO-viesti > tiedoston nimi - tämä komento luo uuden tiedoston ja kirjoittaa siihen nykyisen rivin. Jos tällainen tiedosto on olemassa nykyisessä hakemistossa, sen sisältö poistetaan ja komento tai sen tulos kirjoitetaan muistiin.

Kommenttien käyttö

Skriptien muokkaamisen helpottamiseksi käytetään REM-komentoa. Windows ohittaa kaikki bat-tiedostokomennot sen jälkeen suoritettaessa. Ne näkyvät muokkauksen aikana ja vaiheittaisessa tilassa. Kaikissa muissa tapauksissa kommentit eivät näy näytöllä.

Viive komento bat-tiedostossa

Joskus erätiedoston suorittamisen aikana on tarpeen väliaikaisesti keskeyttää komentojen suorittaminen, esimerkiksi odottaa käyttäjän vastausta, pidentää pitkän viestin lukemisaikaa, asettaa levy asemaan, vahvistaa komennon olemassaolo. käyttäjälle tai erätiedoston virheenkorjaukseen. Bat-tiedoston viivekomento on kirjoitettu PAUSE ilman parametreja. Tässä tapauksessa näytölle tulee viesti, kuten "Jatka painamalla mitä tahansa näppäintä", ja komentosarjan suoritus keskeytetään, kunnes näppäimistön painiketta painetaan. Jos yhdistelmää painetaan +tai +, järjestelmä havaitsee tämän suoritettavan tiedoston valmistumisena ja lähettää pyynnön vahvistaa työnsä valmistuminen: "Keskeytetäänkö erätiedoston suoritus? (K/E). Jos painat Y-näppäintä, komentosarja keskeytyy tässä vaiheessa ja kaikki jäljellä olevat suorittamattomat komennot ohitetaan. N-näppäimen painaminen jatkaa suoritusta seuraavalla komennolla. Kun keskeytät, muiden aakkosnumeeristen näppäinten sekä välilyönti- ja Enter-näppäinten painaminen jatkaa suoritettavan tiedoston suorittamista seuraavalla komennolla.

tiedostoluettelo

Jos haluat suorittaa useita tiedostoja peräkkäin samassa hakemistossa olevasta luettelosta, voit käyttää myös bat-tiedostoa. "Suorita ohjelma nimellä" ja "Suorita ohjelma tiedostotunnisteella" -komennot voivat usein auttaa automatisoimaan asiakirjojen käsittelyä, kuten sähköpostin liitetiedostojen lajittelua. Ne eroavat FOR-komennon parametreista. Sen kirjoittamisen muoto on annettu alla:

FOR %x IN (tiedostoluettelo) DO-komento, jossa:

X - mikä tahansa symboli, paitsi numerot 0-9;

Lista - välilyönneillä erotetut tiedostonimet tai yksittäisen tiedoston nimi; Tässä tapauksessa voit käyttää erikoismerkkejä "?" ja “*” korvaamaan yhdestä useampaan merkkiin tiedostonimissä;

Komento - mikä tahansa DOS-komento tai ohjelma, paitsi FOR; jos on tarvetta käyttää FOR:ta, niin %x:n sijaan sinun on määritettävä %%x.

Kun käytät tätä komentoa bat-tiedostojen kirjoittamiseen, sinun on otettava huomioon, että DOS-muotoisten ohjelmien nimillä on rajoitus nimen pituudelle. Jos haluat vaihtaa FOR-komennon toimimaan pitkien tiedostonimien kanssa, sinun on muistettava suorittaa komento LFNFOR ON ennen sitä, jotta pitkien nimien kanssa työskentelytila ​​otetaan käyttöön, ja LFNFOR OFF poistaaksesi sen käytöstä ja palataksesi normaaliin tiedostopituuteen.

Monet toiminnot ohjelmien kanssa, kuten tietyn tyyppisten tiedostojen vertaaminen yhdessä hakemistossa samantyyppisten tiedostojen kanssa toisesta hakemistosta, kaikkien nykyisen hakemiston tiedostojen kopioiminen toiseen, tiedostojen peräkkäinen suorittaminen, joilla on tietyn tyyppiset ja nimet. alkaen numeroista, voidaan tehdä yhdellä bat-tiedostoon kirjoitetulla komennolla. Ohjelman käynnistäminen voidaan yhdistää käyttäjien pyyntöihin, mikä parantaa tietojen käsittelyn mukavuutta.

Siirtymät lepakkotiedostoissa

Lepakkotiedostoissa olevien komentojen käynnistysjärjestyksen hallinnan helpottamiseksi ne käyttävät usein hyppykomentoja ja tunnisteita, joilla nämä hyppyt tehdään.
Tunniste on mikä tahansa suoritettavan tiedoston rivi, joka alkaa kaksoispisteellä. Nimikkeen nimi on rivin loppuun tai ensimmäiseen välilyöntiin asti kaksoispisteen jälkeinen merkkijoukko, jonka jälkeen rivin loppuosa jätetään huomioimatta, jota voidaan käyttää hyppytunnisteen kommentina.

Hyppykomento kirjoitetaan GOTO ja nimikkeen nimi erotetaan välilyönnillä. Jos parametria ei ole tai nimiön nimeä ei löydy komentotiedostosta, komentosarja lakkaa toimimasta tällä komennolla. Esimerkki:

REM (tarvittavat komennot suoritetaan).

Tässä esimerkissä komentotiedoston peräkkäinen suoritus, kun saavutetaan GOTO zzz, hyppää kohtaan label:zzz ja jatkuu REM:llä jättäen huomioimatta kaiken hyppykomennon ja määritetyn nimiön välillä.

Ehtojen käyttö bat-tiedostojen kanssa työskenneltäessä

Bat-tiedosto voi suorittaa komentoja tai olla suorittamatta komentoja eri ehdoista riippuen, jos se käyttää IF-tapahtumien tarkistusta. Tämän komennon muoto on "IF-ehtokomento".

Ehto edustaa erilaisia ​​lausekkeiden muunnelmia:

ERRORLEVEL-numero - Jos edellinen käynnissä oleva ohjelma päättyi poistumiskoodilla, joka on yhtä suuri tai suurempi kuin määritetty numeerinen arvo, ehto on tosi.

RIVI 1 == RIVI 2 - jos rivit täsmäävät täysin, ehdosta tulee tosi. Merkkijonojen sijasta voit korvata merkit %0 - %9, jolloin erätiedoston parametreja verrataan.

EXIST - tiedoston nimi - jos määritetty tiedosto on olemassa, ehto on tosi.

NOT - ehto - jos määritetty ehto on epätosi, komennon ulostulo saa tosiarvon.

Bat-tiedostoissa käytetty komentoja

Jos napsautat "Käynnistä" -painiketta ja käynnistät komentorivin (cmd), näet kaiken, joka on lisätty bat-tiedostoon, voit käyttää sitä virheenkorjaustyökaluna, avustajana, ohjelmana, jolla haetaan tietoja komennoista. Voit tehdä tämän kirjoittamalla HELP. Tämä tuottaa luettelon komennoista ja niiden lyhyet kuvaukset. Saadaksesi tarkempia tietoja, voit kirjoittaa HELP halutun komennon nimellä.

Bat-tiedostojen käyttäminen tietojen varmuuskopioinnissa

Erätiedostot helpottavat huomattavasti järjestelmänvalvojien elämää heidän päivittäisessä työssään. Niiden yleisimmät sovellusalueet ovat luominen, poistaminen, uudelleennimeäminen ja paljon muuta. Kaikki tämä perustuu COPY bat file -komennon käyttöön. Voit esimerkiksi luoda ohjelman, joka tekee arkistokopioita valitun kansion asiakirjoista, joissa on tietyn muotoisia käyttäjätietoja, pois lukien esimerkiksi suuret mediatiedostot, varmuuskopioimalla kansioon käyttäjän nimellä ja kutsuen sitä "Command_copying_files.bat". ”. Tämän jälkeen on varmistettava, että se käynnistyy tiettyyn aikaan sisäänrakennetun ajastimen avulla tai itse ohjelman toimesta ja siten varmistaa käyttäjätietojen turvallisuus.

1. S.BAT-komentotiedosto, joka näyttää tietyn tekstitiedoston sisällön sivulta sivulta (tauko jokaisen näytön jälkeen):

JOS /%1==/ SIIRRY VIRHE1 jos argumenttia (tiedoston nimeä) ei anneta, niin ERR1

JOS EI OLE OLEMASSA %1 SIIRRY VIRHE2 – jos määritetty tiedosto puuttuu

:ERR1 Argumenttia ei ole annettu

ECHO Määritä tiedoston nimi

:ERR2 Tiedosto puuttuu

ECHO-tiedosto %1 puuttuu

Lisää-komento näyttää sivulta sivulta (koko näytön) tekstitiedoston sisällön.

Syntaksi:

MORE-suodatin lukee tekstitiedoston tavallisesta I/O-laitteesta ja näyttää sen sisällön pysähtyen aina, kun näyttö täyttyy. Tässä tapauksessa viesti -MORE- näkyy näytön viimeisellä (alarivillä). Saat seuraavan sivun näkyviin painamalla mitä tahansa näppäimistön näppäintä.

2. Komentotiedosto S.BAT, joka tarjoaa hakureittien lisäämisen suoritettaville tiedostoille olemassa oleviin tiedostoihin ja näyttää kaikki asennetut reitit:

JOS /%1==/ SIIRRY LOPPUUN

SET PATH=%PATH%;%1

PATH-komentoa käytetään suoritettavien tiedostojen hakupolkujen asettamiseen ja näyttämiseen.

PATH...]

PATH; -peruuttaa kaikki hakureitit.

Suoritettava tiedosto etsitään ensin sen määrityksen mukaan varatusta hakemistosta ja sitten kustakin määritetystä hakemistosta.

Jos vain komennon nimi syötetään, nykyiset hakureitit näytetään.

Käyttöesimerkki:

S C:\EDIT\TEXT\ME C:\DOS

Yllä oleva erätiedosto toimii hyvin vain, jos globaalin PATH-muuttujan arvo mahtuu yhdelle näytön riville.

3. Komentotiedosto DEL.BAT poistaa BAC-tiedostot määritetystä hakemistosta, jos se on määritetty, tai työhakemistosta, jos argumenttia ei ole määritetty

JOS EI /%1==/ SET #DIR=%1\

JOS OLEMASSA %#DIR%*.VAK GOTO DEL

ECHO Ei poistettavia VAC-tiedostoja

DIR %#DIR%*.VAK

ECHO Jos haluat kieltäytyä poistamisesta,

ECHO paina Ctrl-Break, muuten -

ECHO mitä tahansa näppäintä jatkaaksesi

DEL %#DIR%*.VAK

ECHO *** Tiedostot poistettu ***

Tämä tiedosto käyttää globaalia muuttujaa, jolla on yksilöllinen nimi #DIR. Ensin sen arvo nollataan SET-komennolla. Tällä varmistetaan, että se on tyhjä eikä sitä jätetä asetettuna edellisen DEL.BAT-tiedoston kutsun jälkeen. Sitten, jos argumentti on annettu, oikealle lisätään \ ja tulos tallennetaan globaalin muuttujan #DIR arvoksi. Seuraavissa komennoissa sitä käytetään .vac-tiedostojen hyväksyttyjen nimien etuliitteenä.

d::n määrittäminen argumentiksi poistaa .vac-tiedostoja ei nykyisestä hakemistosta, vaan aseman d juurihakemistosta. Siksi, jos haluat asettaa nykyisen hakemiston, sinun on käytettävä rakennetta d:....

4. Komentotiedosto LEX.BAT LEXICON-tekstieditorin kutsumiseksi lataamalla siihen automaattisesti viimeisin aiemmin samaan tarkoitukseen käytetty tekstitiedosto:

JOS /%1==/ SIIRRY N

Jos kirjoitat vastauksena DOS-kehotteeseen

LEX C:\TXT\M.TXT

sitten määritetyn tiedoston määritykset tallennetaan globaaliin muuttujaan #DOC ja itse tiedosto ladataan editoriin. #DOC-arvoa käytetään sitten suoritettaessa LEXICON.EXE LEX-komentoriviltä ilman argumenttia, mikä varmistaa, että viimeinen määritetty tiedosto ladataan editoriin.

5. Voit vastata automaattisesti erätiedostossa olevaan käyttöjärjestelmän komentoon tai ohjelmapyyntöön käyttämällä seuraavaa järjestelmää:

käsitellä asiaa

ECHO-komento tuottaa YES-tekstitiedoston, jonka vastaus on Y. YES-tiedoston sisältö syötetään sitten prosessin vakiosyötteeseen. Tämä simuloi vastauksen Y syöttämistä näppäimistöltä. Kun prosessi on valmis, YES-tiedosto poistetaan. Luonnollisesti voit asettaa vaaditut vastaukset samalla tavalla.

Kuvatun menetelmän haittana on tarve luoda ja poistaa tiedosto, mikä vie paljon aikaa. Tämä epäkohta voidaan poistaa luomalla pysyviä tekstitiedostoja erilaisilla vastausvaihtoehdoilla ja käyttämällä niitä kaikissa erätiedostoissa.

Toinen tapa syöttää vastaus automaattisesti prosessiin on käyttää rivin kaltaista

ECHO Y| käsitellä asiaa

6. Erätiedostot tallentaaksesi työhakemiston tiettyyn kohtaan ja palauttaaksesi sen uuden työhakemiston asettamisen jälkeen. Voit tehdä tämän luomalla esimerkiksi seuraavat erätiedostot C:\BAT-hakemistoon

CD>C:\BAT\CURDIR

KOPIO C:\BAT\CDFILE+C:\BAT\CUR C:\BAT\RETURN.BAT

CDFILE-tekstitiedosto sisältää CD-komennon "alkun". Se on muodostettava yhdellä välilyönnillä CD-levyn jälkeen ja ilman EOF-merkkiä. SAV.BAT-komentotiedosto tallentaa työhakemistomäärittelyn CUR-tekstitiedostoon ja luo RETURN.BAT-komentotiedoston kyseisen hakemiston palauttamiseksi.

Käytön helpottamiseksi yksi suoritettavien tiedostojen hakureiteistä on C:\BAT.

Olkoon työhakemisto C\EDIT\TEXT\LEX. Jos kutsut SAV-komentotiedostoa (ilman argumentteja), komennon sisältävä RETURN-komentotiedosto luodaan

CD C\EDIT\TEXT\LEX

Tämän jälkeen voit vaihtaa työhakemistoja CD-komennolla (mutta ei d:-komennolla). Palataksesi LEXiin riittää, kun syötät RETURN näppäimistöltä.

Jokainen seuraava SAV-tiedoston suoritus peruuttaa edellisen ilman palautusmahdollisuutta.

Kuvattu tekniikka helpottaa työtä, jos kiintolevyllä on haarautunut tiedostorakenne.

7. F.BAT-komentotiedosto kiintolevyn sisällön varmuuskopioimiseksi asemaan A:.

ATTRIB +A C:\*.* /S arkistotiedosto

ECHO Aseta alustettu levy asemaan A

ECHO ja paina sitten mitä tahansa näppäintä

XCOPY C:\*.* A: /S/M/E/V

JOS VIRHETASO 4 SIIRRY SILMUKAAN

ECHO-varaus suoritettu

ATTRIB-komento asettaa A-attribuutin kaikille tiedostoille. XCOPY kopioi tiedostorakenteen kiintolevyltä A-aseman levylle. Kaikkien kopioitujen tiedostojen A-attribuutti nollataan. XCOPY-komento epäonnistuu, kun jokin seuraavista tapahtuu:

1) levyke on täynnä, mutta kaikkia tiedostoja ei ole vielä varmuuskopioitu (palautuskoodi 4);

2) kaikki tiedostot on varattu, kopioitavia tiedostoja ei löytynyt tai Ctrl-Break keskeytti komennon suorittamisen (palautuskoodit 0, 1 ja 2);

3) tapahtui kriittinen I/O-virhe (palautuskoodi 5).

Tapauksissa 1 ja 3 IF-komento siirtää ohjauksen LOOP-nimikkeeseen jatkaakseen (jatkaa) varmuuskopiointia seuraavalle levykkeelle. Tässä tapauksessa jo kopioituja tiedostoja ei varmuuskopioida, koska niiden A-attribuutit nollataan.

Jos tapaus 2 tapahtuu, varaus on suoritettu loppuun ja vastaava viesti lähetetään.

Voit tietysti ottaa käyttöön lisäanalyysin palautuskoodista 5.

8. Kiintolevyn koko sisällön varmuuskopiointi vaatii paljon aikaa ja suuren määrän levyjä. Siksi on parempi käyttää XCOPY-komennon /D-kytkintä uudelleen varmuuskopioitaessa kopioimaan vain ne tiedostot, jotka on luotu ja päivitetty viimeisen varmuuskopion jälkeen. Samanaikaisesti, jotta tiedostot voidaan valita oikein, on varmistettava, että DOS on aina käynnissä oikealla päivämäärällä.

Lisäksi käyttäjän on muistettava tai kirjoitettava muistiin päivämäärä, jolloin tiedostot viimeksi varmuuskopioitiin, osoittaakseen tämän valitsimessa /D. Päästäksesi eroon tästä, voit luoda seuraavat erätiedostot:

ECHO |LISÄÄ|PÄIVÄMÄÄRÄ|ETSI /V "Enter" >B.BAT

ATTRIB +A C:\*.* /S

ECHO Aseta levy asemaan A

XCOPY C\*.* A: /S /M /E /V /D:%4

JOS VIRHETASO 4 SIIRRY SILMUKAAN

ECHO-varaus suoritettu

Jotta voit käyttää näitä tiedostoja, sinun on luotava BAT-tiedosto kerran komennolla

ECHO|LISÄÄ|PÄIVÄMÄÄRÄ|ETSI /V "Enter" >B.BAT

Tämä tiedosto sisältää vain seuraavan kaltaisen rivin:

Nykyinen päivämäärä on la 26.1.2009

(Nykyinen päivämäärä on lauantai 26.01.2009)

MORE-komento, kun näytettävää tekstiä ei ole (ECHO-komennosta), luo EOL-merkin ja simuloi siten Enter-näppäimen painamista vastauksena nykyistä päivämäärää koskevaan pyyntöön DATE-komennolla. FIND-komento katkaisee toisen rivin DATE-komennon lähdöstä (kirjoita uusi päivämäärä (pp-kk-vv):).

Voit luoda B.BAT-tiedoston millä tahansa muulla tavalla, mutta sen sisällön on oltava määritetyssä muodossa.

Uusien tiedostojen varmuuskopioimiseksi (joka on luotu viimeisen varmuuskopioinnin päivänä tai myöhemmin) riittää nyt käynnistää komentotiedoston D suorittaminen. Se kutsuu B.BAT-tiedostoa, joka tulkitaan komentotiedostoksi. Tämä suorittaa C.BAT-erätiedoston neljällä argumentilla (päivämäärä, on, viikonpäivä ja päivämäärä).

Neljäs argumentti (päivämäärä) ohittaa XCOPY-komennon /D-valitsimen %4-vaihtoehdon.

Kun varmuuskopiointi on valmis, ohjaus palaa D.BAT-tiedostoon ja DATE-komento suoritetaan päivittäen B.BAT-tiedoston nykyisellä päivämäärällä, ts. viimeisen varauksen päivämäärä. Siksi, kun DATECOPY on suoritettu tietyn ajan kuluttua, varmuuskopiointi etenee odotetulla tavalla (kaikki tiedostot kopioidaan B.BAT:n päivämäärän perusteella)

Tässä artikkelissa tarkastelemme sellaista hyödyllistä asiaa kuin " erätiedosto" Määritetään ensin mikä bat-tiedosto on. Erätiedostot ovat yksinkertaisia ​​tekstitiedostoja, jotka sisältävät joukko komentoja ( ohjeet) tulkki ja jolla on laajennus bat tai cmd ( cmd toimii vain NT-perheen käyttöjärjestelmissä). Voit luoda ja muokata tällaisia ​​tiedostoja tavallisella muistilehtiöllä tai millä tahansa muulla tekstieditorilla.

Nyt saatat kysyä, miksi sinun täytyy pystyä kirjoittamaan tällaisia ​​lepakkotiedostoja? Ja miksi niitä tarvitaan? Yritän selittää.

Ensinnäkin niitä käytetään työnteon helpottamiseksi, ts. esimerkiksi sinun on suoritettava jatkuvasti jokin toimenpide joka päivä ( esimerkiksi luoda arkisto tietyistä asiakirjoista), tämä voidaan automatisoida tekstitiedoston avulla, etkä enää osallistu siihen.

Toiseksi nämä erätiedostot ovat erittäin tehokkaita ( jos tietysti osaat kirjoittaa ne), eli Voit jopa kirjoittaa hyvän ohjelman ( Tarkoitan toiminnallisuuden kannalta). Henkilökohtaisesti he auttavat minua paljon työssäni, ja unohdin yksinkertaisesti joitain asioita, kun tein sen manuaalisesti.

Siirrytään nyt suoraan näiden erätiedostojen perusteisiin. Kuinka ne luodaan Sinun tarvitsee vain luoda yksinkertainen tekstidokumentti, avata se ja siirtyä välittömästi välilehdelle Tiedosto-> Tallenna nimellä", kirjoita laajennuksen sijaan" Teksti document.txt", Esimerkiksi " Teksti document.bat" ja tallenna, joten saamme erätiedoston .bat-tunnisteella, mutta se ei tee vielä mitään.

Aluksi annan esimerkin erätiedostosta, jota käytän työssäni asiakirjojen arkistointiin.

"C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agVVVV-mm-dd E:\arhaccounts\ d:\accounts\*.doc "C:\Program Files\WinRAR\winrar. exe" a -r -dh -ed -agVVVV-mm-dd E:\arhaccounts\ d:\accounts\*.xls "C:\Program Files\WinRAR\winrar.exe" a -r -dh -ed -agYYYY -mm-dd E:\arhaccounts\ d:\accounts\*.txt

Kerron nyt sinulle hieman, mitä tämä erätiedosto tekee. WinRar käynnistyy, sitten seuraavat Winrar-komennot:

  • a - tämä on lisättävä arkistoon;
  • -r - käsittelee alikansioita;
  • -dh - avaa jaetut tiedostot;
  • -ed - älä lisää tyhjiä kansioita;
  • VVVV-kk-pp - lisää nykyinen päivämäärä arkiston nimeen ( päivämäärämuoto);
  • E:\arhaccounts\ - polku, johon lopullinen arkisto sijaitsee;
  • d:\accounts\*.doc - arkistoitavien tiedostojen polku ja peite.

Tässä tapauksessa arkistoimme kaikkia Word-, Excel- ja tekstitiedostoja, meidän ei tarvitse arkistoida muita. Arkistointimme menee toiselle levylle, ja myös kopioimme tuloksena olevan arkiston toiselle tietokoneelle, jotta arkistot säilytetään toisessa toimistossa. Kopiointi tapahtuu verkon kautta, joten tietokoneen, johon arkisto kopioidaan, on oltava päällä. Voit tehdä tämän käyttämällä seuraavaa komentoa:

Kopioi E:\arhaccounts\*.rar \\namecomp\arhiv\

Esimerkkejä bat-tiedostojen komennoista

Katsotaanpa nyt peruskomentoja, joita voit käyttää.

Jos sinun on poistettava tiedosto, kirjoita seuraava:

Del d:\file\test.doc


Jos haluat poistaa koko hakemiston, kirjoita:

Rd d:\tiedosto\

Jos haluat poistaa kaiken jostain hakemistosta joka kerta, käytä tätä:

Echo Y| del d:\tiedosto\

  • del d:\file\ - tämä on juuri kaikkien tiedostojen poisto;
  • kaiku Y| - komento vahvistaa poiston, koska Jos et anna tätä komentoa, näet poistamisen vahvistavan viestin - "Jatka", ja sinun on vastattava tähän kysymykseen joka kerta.

Katsotaanpa nyt monimutkaisempaa esimerkkiä, jossa ehto täyttyy jo:

@echo off "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\test.rar d:\test IF EI OLE d:\test\123.rar SIIRRY 1 JOS ON OLEMASSA d: \test\123.rar GOTO 2:2 "C:\Program Files\WinRAR\winrar.exe" x -O+ -IBCK d:\test\123.rar c:\ del d:\test\123.rar:1 del d:\test\test.rar end

Nyt selitän, että sinun on purettava test.rar-arkisto, joka sisältää monia tiedostoja, mutta jos siellä on 123.rar-tiedosto, se on purettava C-aseman juureen ja loput tiedostot pysyvät koskemattomina samassa hakemistossa.

Tätä varten tarvitaan @echo off -komento, jotta mikään ei heijastu näytölle ( periaatteessa, jos sinun ei tarvitse, voit jättää tämän rivin kirjoittamatta). Seuraavaksi käynnistämme Winrarin ja puramme test.rar-arkiston testikansioon. Sitten tulee ehto jos testikansiossa ( pakkauksesta purkamisen jälkeen testi.rar) meillä ei ole tiedostoa 123.rar, niin suoritamme komentotiedoston ja siirrymme riville: 1 ja poistamme sitten tiedoston test.rar, koska se ei ole välttämätöntä, koska Olemme jo purkaneet kaiken tarvitsemamme. Mutta jos siellä on tiedosto 123.rar, komentotiedoston suoritus menee riville: 2, jonka jälkeen tiedosto 123.rar on jo purettu C-aseman juureen. Toisin sanoen ehto täyttyy. , jos tiedosto on, tee tämä, jos tiedostoa ei ole, tee tämä. Oletetaan, että jos emme määritä ehtoa tässä esimerkissä, komentotiedostomme antaa virheen, kun meillä ei ole 123.rar-tiedostoa tässä kansiossa.

Katsotaanpa nyt tätä esimerkkiä. Oletetaan, että sinun on siirrettävä tiedostot asemalla D sijaitsevasta hakemistosta flash-asemaan joka kerta. Joka kerta, kun joudut menemään tietokoneeni asemaan D, valitse haluamasi kansio, valitse siitä kaikki tiedostot ja leikkaa se ja siirry sitten flash-asemaan ja liitä se. Runkotiedoston avulla tämä tehdään yhdellä napsautuksella ( yhdellä ehdolla, että joka kerta, kun flash-asema on esimerkiksi levy G tai mikä tahansa sinulla on). Tässä on esimerkki tällaisesta erätiedostosta:

Siirrä "D:\catalog\*.doc" G:\catalognaflehe\

Ja kaikki tiedostot doc-tunnisteella, jotka sijaitsevat D:\catalog-hakemistossa, siirretään flash-asemaan. Nyt haluan sanoa, että voit käyttää komentosarjoja erätiedostoissa ( käsikirjoituksia) käyttämällä Windows Scripting Hostia ja tarvittaessa esimerkiksi näyttämään viestiä tiedostojen kopioimisen jälkeen ( edellinen esimerkki) liitä tämä:

Echo var WSHShell = WScript.CreateObject("WScript.Shell"); > %temp%\mes.js echo WSHShell.Popup("Tiedostot kopioitu"); >> %temp%\mes.js aloita %temp%\mes.js deltree /y %temp%\mes.js

Itse asiassa runkotiedostojen kirjoittamisesta voi puhua paljon, ja tämä ei tietenkään mahdu yhteen artikkeliin. Tässä näytin vain kirjoittamisessa käytetyt periaatteet bat tiedostot niin sanotusti perusta. Jos haluat tietää lisää komentoja erätiedostojen kirjoittamiseen, voit helposti tarkastella niitä kirjoittamalla komentorivi (Käynnistä - Suorita - cmd) help-komento, mutta kaikkia komentoja, joita voidaan käyttää erätiedostoissa, ei tietenkään ole. Onnea sisään kirjoittamalla BAT tiedostot ( body-paidat).

Jatkoa artikkelin aiheeseen -

Nyt on aika harkita bat komentoja. Periaatteessa tässä käytetään cmd:hen syötettyjä komentoja, mutta on myös joitain, joita ei ole järkevää käyttää komentorivillä.

Kuinka saada täydellinen luettelo bat-komennoista

Kaikkien komentojen kuvaamiseksi sinun on kirjoitettava koko sarja artikkeleita, jotta emme ylikuormittaisi sinua, rajoitamme yhteen artikkeliin ja harkitsemme kompaktia tietoa. Kuten tiedät, bat-tiedosto ja cmd-komennot ovat samat saadakseen luettelon niistä tai . Syötä ohjekomento, joka englanniksi on kirjoitettu ohjeeksi, paina Enter. Tämän seurauksena cmd-rajapinnassa oleva tietokone kirjoittaa kaikki komennot komennolla Lyhyt kuvaus.

Kun olet tutustunut tähän luetteloon, haluat selvittää tarkemmin, mikä tietty bat-komento on. Valitse esimerkiksi for-komento, jonka kuvaamiseksi annamme help for or for /? ja napsauta enter. Tämän seurauksena saat operatiiviset tiedot komennossa se on suuri, joten sinun on painettava mitä tahansa näppäintä useita kertoja lukeaksesi seuraavan kuvauksen. Tällä tavalla voit oppia tietyn komennon syntaksin.

bat-tiedostokomennot

Tutustutaanpa nyt erätiedostossa käytettyihin komentoihin lyhyen kuvauksen kera. Ne eivät kuitenkaan erota kirjainkoolla, mutta olemme listanneet ne isot kirjaimet auttamaan tunnistamisessa.

@ Kaikki batin suorittamat komennot näkyvät näytöllä, tarpeettomien asioiden poistamiseksi komennon eteen asetetaan "koira". Käytetään usein @echo pois päältä.
asetaAsettaa muuttujat. Esimerkiksi setper=c:\windows here per määrittää polun. Voit kirjoittaa muuttujaan hankalan arvon ja määrittää sen komentosarjassa, mikä tekee koodista kompaktimman. Jos sen sisältö muuttuu, sinun ei tarvitse muuttaa arvoja kaikkialla, missä tämä muuttuja tarjotaan.
:: Toinen tapa kommentoida lepakkotiedostoa ilman tämän rivin näyttämistä näytöllä.
:LABELKun lisäät sanaan kaksoispisteen, se luo tunnisteen, johon voit siirtyä eri osiot erätiedosto. Tarralla voi olla eri nimi, esimerkki on LABEL.
PUHELUBat on komento, joka kutsuu yhtä erätiedostoa toisessa. Kaikki yhdessä tiedostossa kuvatut parametrit voidaan välittää toisilleen.
VALINTAValitse komento.
CLSTyhjentää sisällön komentojen tulkki, joka näkyy CLS:n yläpuolella.
KAIKUNäyttää viestin näytöllä. Esimerkiksi "ECHO Hei!" näyttää "Hei!" Jos et käytä @ECHO:ta pois päältä alussa erätiedosto, näet polun bat-tiedostoon ja kaksi viestiä, mikä on tarpeetonta. Voit luoda tyhjän rivin kirjoittamalla ECHO. pisteen lopussa.
POISTULopettaa nykyisen eräkomentosarjan.
SIIRRY LABELKäytetään siirtymiseen tiettyyn tunnisteeseen tässä tapauksessa kohtaan LABEL ja suorittaa komentosarjan sen jälkeen.
JOSKuten lepakko-ohjelmointikielissä, if-komento edustaa ehdon täyttymistä riippuen siitä, mikä komentosarja kulkee yhtä tai toista polkua pitkin. Katso syntaksin ohjeesta.
vartenSilmukka, jota käytetään järjestämään samojen toimintojen suorittaminen.
TAUKOJos haluat nähdä skriptin tulosteen ja se suoritetaan ja ikkuna sulkeutuu nopeasti, käytä PAUSE. Sen avulla voit tarkastella tulosta ja suorittaa skriptin painamalla mitä tahansa painiketta.
R.E.M.Toinen tapa kommentoida. Toisin kuin:: tulostetaan näytölle, jos @ECHO off -rakennetta ei ole.
SIIRTÄÄMuuttaa eräparametrien sijaintia bat-tiedostossa.
ALKAAKäynnistää ohjelmia, ikkunoita jne. Siinä on monia ominaisuuksia (katso ohje).

Tämä on lepakkokomentojen perusta. Joidenkin elementtien syntaksi on vaikea aloittelijoille ja vaatii tiettyjä tietoja. Kaikki bat-tiedostokomennot, jotka on kuvattu yllä, tarkastellaan pintapuolisesti niiden tarkoituksen selvittämiseksi, ja koko syntaksi löytyy Windowsin ohjeesta.

Monien teknisten kirjoittajien on ajoittain automatisoitava tiedostojen käsittely. Olipa kerran me puhumme noin yhden käsittelyn suuria tiedostojen määrä, kun kyse on samojen toimintojen systemaattisesta suorittamisesta, esimerkiksi käytettäessä DocBook- tai DITA-tekniikoita). Jokaista tiedostoa käsitellään erillinen joukkue Käsin syötettynä ei vain vie aikaa, vaan se johtaa myös vaikeasti määritettäviin virheisiin, jotka johtuvat käyttäjän luonnollisesta piittaamattomuudesta.

Leikkaussalissa MS-DOS järjestelmä ja kaikissa perheen käyttöjärjestelmissä Microsoft Windows Yksinkertaisin tapa automatisoida tiedostojen (ja hakemistojen) käsittely on ns. erätiedostot. Sanotaan heti, että erätiedostot eivät ole ainoa tapa automatisoida käyttäjän työtä, edes sisäänrakennettujen joukossa. Microsoft Windows -perheen käyttöjärjestelmissä versiosta 98 ​​alkaen on lisää Windowsia Script(ing) Host. Lisäksi kukaan ei kiellä meitä käyttämästä jotain tulkittua kieltä näihin tarkoituksiin, esimerkiksi Perl, Python tai Ruby. kuitenkin siirretyt varat, vaikka ne ovatkin tehokkaita, vaativat ohjelmointitaitoja, ts. luoda ja, mikä tärkeintä, debug-ohjelmia, ainakin hyvällä tasolla amatööritasolla. Erätiedostojen käyttö on kaikkien saatavilla ilman erityistä koulutusta ja tervettä järkeä.

Tärkeä muistiinpano. Täydellinen opas tai jopa tunnollisesti kootussa oppikirjassa MS-DOS-komentoista ja erätiedostojen kehittämisestä tulisi kuvata lukuisia käyttöön liittyviä vivahteita. erilaisia ​​parametreja, komentotiedostojen toiminnan ominaisuudet eri versioita Microsoft Windows jne. ja niin edelleen. Tämä artikkeli ei väitä olevan täydellinen, etenkään:

  • emme kuvaile eri tavoilla saavuttaa sama tulos;
  • Emme kuvaile kaikkia mainittujen komentojen mahdollisuuksia ja käyttötapoja.

Nyt tehtävämme on auttaa niitä, jotka eivät ole täysin tai lähes tuntemattomia tämän työkalun kanssa, aloittamaan erätiedostojen hallitsemisen. Voit sitten lukea kaikista yksityiskohdista yrityksen asiakirjoista tai hakuteoksista.

Komentoprosessori

Monet käyttöjärjestelmät, mukaan lukien Microsoftin kehittämät, sisältävät komentoprosessorin. Tämä on ohjelman nimi, joka käynnistää eri toimintojen suorittamisen vastauksena käyttäjän näppäimistöltä antamiin komentoihin. Periaatteessa nämä toimet koostuvat juoksemisesta tarvittavat ohjelmat tietyillä parametreilla. Mutta ei vain; Näemme myöhemmin, että komentoprosessori suorittaa jotkin komennot suoraan. Pohjimmiltaan nämä ovat komentoja, jotka ohjaavat komennon suorittamisen kontekstia ja järjestystä. Emme kuitenkaan ajattele liian syvällisesti komentojen luonnetta, ainakaan ellei meidän ole pakko. Vielä tärkeämpää on, että komentoprosessori pitää kaikkia ohjelmia, jotka on teknisesti mahdollista ajaa komentoriviltä, ​​komentoina. Se ei tee eroa käyttöjärjestelmään alun perin sisäänrakennettujen alkuperäisten komentojen ja sen päälle asennettujen ohjelmien välillä.

Käynnistä komentoprosessori seuraavasti:

  1. Napsauta painiketta alkaa. Päävalikko tulee näkyviin näytölle.
  2. Valitse päävalikosta Suorita. Näyttöön tulee valintaikkuna Ohjelman käynnistäminen.
  3. Kirjoita merkkijono Avaa-kenttään cmd.
  4. Napsauta painiketta OK. Näyttöön tulee komentoprosessorin ikkuna.

Komentorivi ja komennot

Komentoprosessorin ikkuna alkuperäisessä muodossaan näyttää synkältä, ja sen kanssa työskentely ei ole kovin kätevää useimmille ihmisille. Paljon helpompi käyttää tiedostonhallinnasta Norton Commander -tyyliin. Ne tarjoavat molemmat keinot nopeaan navigointiin tiedostojärjestelmä, ja aikaraja komentojen syöttämiselle.

Voit kirjoittaa komennon seuraavasti:

  1. Kirjoita komentokeksti komentoriville.
  2. Paina näppäintä Tulla sisään.

Komentoprosessori ja komennot käyttöjärjestelmä on kuvattu jälkimmäisen käyttödokumentaatiossa. Tämä dokumentaatio sisältyy osittain itse käyttöjärjestelmään. Pääset siihen käyttämällä komentoa auta. Tämä komento näyttää luettelon käytettävissä olevista komennoista. Jos haluat kuvauksen tietystä komennosta, käytä komentoa parametrina auta hänen nimensä on ilmoitettava. Seuraavassa luettelossa näkyvä komentorivi näyttää komennon kuvauksen varten.

Apua varten

Jos yritit syöttää komennon auta, olet todennäköisesti huomannut, että sen työn tulos (ns. lähtö) ei mahdu yhdelle näytölle. Sama ongelma ilmenee komennon kuvaustekstin kanssa varten. Hyviä uutisia on, että tulos voidaan ohjata tiedostoon. Seuraavassa luettelossa näkyvä komentorivi luo tiedoston komennot.txt, joka sisältää luettelon kaikista MS-DOS-komennoista.

Ohje > commands.txt

Komennon kuvauksen sisältävän tiedoston luomiseksi varten, sinun on annettava seuraava komento (voit tehdä tulostiedoston nimeksi mitä tahansa).

Ohje tiedostolle > for.txt

Kaikkiaan nykyaikaisissa Microsoft-käyttöjärjestelmissä on hieman alle 80 komentoa, ja niitä on mahdotonta kuvata yhdessä artikkelissa. Tässä voimme mainita vain muutaman komennon, jotka ovat hyödyllisiä tiedostojen käsittelyn automatisoinnissa, ja näyttää kuinka niitä käytetään. Näitä komentoja käytetään muissa esimerkeissä. Yksityiskohtia voi aina tarkentaa komennolla auta tai hakemistossa.

kopio— yhden tai useamman tiedoston kopioiminen;

del— yhden tai useamman tiedoston poistaminen;

liikkua— yhden tai useamman tiedoston tai hakemiston siirtäminen;

nimeä uudelleen(lyhennettynä ren) - nimeä yksi tai useampi tiedosto tai hakemisto uudelleen;

xcopy— alihakemistopuun kopioiminen;

mkdir(lyhennettynä md) — hakemiston luominen;

rmdir(lyhennettynä rd) — hakemiston poistaminen.

Yksi yleiset säännöt MS-DOS-komentojen syntaksi on, että parametreja määritettäessä ilmoitetaan ensin lähde ja ensin tulos. Esimerkiksi, jos haluamme siirtää tiedoston beer.txt luettelosta laatikko luetteloon pöytä, meidän on syötettävä seuraavassa luettelossa annettu komento.

Siirrä box\beer.txt-taulukko

Ensin mitä muuttaa, sitten minne muuttaa.

Jos haluamme nimetä tiedoston uudelleen lena.txt arkistoida natasha.txt, komento tulee kirjoittaa alla olevan kuvan mukaisesti.

Ren lena.txt natasha.txt

Ensin mitä nimetään uudelleen, sitten mitä nimetään uudelleen.

Nykyinen hakemisto. Absoluuttiset ja suhteelliset polut

Kun työskentelet tiedostokomennot Nykyisen hakemiston käsitteestä tulee erittäin tärkeä. Tosiasia on, että kun määrität tiedoston komentoparametriksi, käytämme aina yhtä kahdesta mahdollisia tapoja merkkejä niistä: joko absoluuttinen polku tai suhteellinen polku. Täydellä polulla määritämme kaiken, joka alkaa esimerkiksi asemasta (tai tietokoneen verkkonimestä). d:\misha\box\beer.txt. Riippumatta siitä, mikä hakemisto sattuu olemaan ajan tasalla, kun komento annetaan, koko polku vastaa samaa tiedostoa. Suhteellisen polun kohdalla nykyinen hakemisto toimii aloituspisteenä. Yksinkertaisin tapaus suhteellinen polku- Tiedoston nimi. Komennon suorittamisen yhteydessä se tarkoittaa tämännimistä tiedostoa, joka sijaitsee nykyisessä hakemistossa.

Suhteellisen polun tallentamiseksi nykyiseen hakemistoon on olemassa ehdollinen merkintä . (piste). Suhteellisen polun tallentamiseksi nykyisen hakemiston sisältävään hakemistoon on olemassa ehdollinen merkintä .. (kaksi pistettä). Seuraavassa luettelossa näkyvä komento kopioi kaikki tiedostot nykyisestä hakemistosta hakemistoon naapuri, joka sijaitsee sen vieressä.

Kopioi *.* .\naapuri

Erätiedostot

Tähän asti esimerkkejä antaessamme oletimme, että syötimme komentoja manuaalisesti joka kerta. Käsittelyn aikana Suuri määrä tiedostot tai kun järjestelmällisesti suoritetaan samoja komentoja, tästä tulee hankalaa. Siksi komentoprosessori tarjoaa mahdollisuuden suorittaa komentotiedostoja. Erätiedosto on tekstitiedosto, johon komennot (tai ainakin yksi komento) kirjoitetaan. Esimerkki erätiedostosta näkyy seuraavassa luettelossa. Yritä arvata, mitä tämä erätiedosto tekee.

Ohje kopioi > copy.help help move > move.help md msdos-help move *.help msdos-help

Jos tämän tiedoston tarkoitus jää sinulle mysteeriksi, yritä itse luoda ja suorittaa se. Komentotiedostoille on tapana antaa tunniste bat. Näin komentoprosessori tunnistaa tämän tyyppiset tiedostot. Tätä tiedostoa voidaan kutsua esim. make-help.bat.

Erätiedoston suorittaminen:

  1. Kirjoita hänen nimensä komennona. Tämän jälkeen erätiedosto suoritetaan.

Erätiedostossa jokainen komento vie yhden rivin. Tarkemmin sanottuna on tapa sijoittaa yksi komento useille peräkkäisille riveille, heti ennen jokaista rivinvaihtoa sinun tulee laittaa "cap"-symboli ^ . (Jokaisen capin on oltava rivinsä viimeinen merkki; sen jälkeen ei saa olla välilyöntejä tai sarkaimia.) Esimerkki tällaisesta komennosta on esitetty seuraavassa luettelossa.

Jos disser.txt on olemassa ^ kopioi disser.txt ^ d:\science\papers\drafts\sources

Mutta yksinkertaisuuden vuoksi, jotta emme tekisi varauksia joka kerta, oletamme, että tämä on tietyssä mielessä yksi pitkä "looginen" rivi.

Kun erätiedosto suoritetaan, komentoprosessori skannaa sen ylhäältä alas ensimmäisestä rivistä viimeiseen ja suorittaa komennot siinä järjestyksessä, jossa se kohtaa ne. Se suorittaa ne yleensä ikään kuin syöttäisimme ne jokaisen manuaalisesti. Yleisesti ottaen, koska jotkin komennot käyttäytyvät hieman eri tavalla, kun ne syötetään manuaalisesti ja kun ne suoritetaan erätiedostosta.

Oletetaan eteenpäin katsoen, että komentojen suoritusjärjestystä voidaan tarvittaessa muuttaa ohjauskomennoilla (mikä tällaisen tarpeen voi aiheuttaa, on erillinen kysymys).

Älä sekoita nykyistä hakemistoa hakemistoon, jossa käynnistettävä komentojonotiedosto sijaitsee. Oletetaan, että nykyinen hakemisto on tehdä työtä, se sisältää hakemiston työkaluja, ja työkaluhakemisto tallentaa erätiedostot. Suoritat yhden niistä komennolla tools\collect-images.bat. Joten tämän komentotiedoston "näkökulmasta" nykyinen hakemisto on edelleen tehdä työtä, mutta ei työkaluja.

Erätiedoston ja sen tulosteen kommentoiminen. kaiku- ja rem-komennot

Erätiedosto on pohjimmiltaan ohjelma, joka on kirjoitettu käyttöjärjestelmän komentoprosessorin kielellä. Ohjelman teksti kannattaa varustaa kommenteilla, jotta siihen hetken kuluttua palatessa ei tarvitse tuskallisesti muistella, miksi tätä ohjelmaa tarvitaan ja miten se toimii.

MS-DOS-komentojärjestelmä tarjoaa komennon kommenttien luomiseen: rem. Tämä on kuvitteellinen komento, joka ei edellytä toimien suorittamista, mutta jonka avulla voit kirjoittaa mielivaltaisen tekstin nimesi jälkeiselle riville. Lisäksi komentoprosessori ei pidä sitä syntaksivirheenä. Esimerkki komentotiedoston muotoilusta kommenteilla on seuraavassa luettelossa.

Rem ***************************************************** **** rem Ohjetiedostojen luominen kopioi ja siirrä -komennoilla rem *********************************** * ***************** rem Ohjetiedostojen luominen ohjekopio > copy.help help move > move.help rem Luo hakemisto ohjetiedostojen tallentamista varten md msdos-help rem Siirrä ohjetiedostoja valmisteltuun yhteen hakemistoon siirrä *.help msdos-help

kiinnitä huomiota tyhjiä rivejä, jolla komentotiedosto on jaettu "kappaleisiin". Tämän yksinkertaisen tempun avulla voit tehdä erätiedostostasi luettavamman.

Yllä olevaa erätiedostoa suoritettaessa kaikki komennot näkyvät näytöllä sitä mukaa, kun niitä suoritetaan, mikä ei ole aina kätevää. Komentojen antaminen voidaan poistaa käytöstä komennolla @kaiku pois. "Koira"-symboli komennon edessä kaiku Tämä tarkoittaa, että tämä komento on suoritettava "hiljaisessa" tilassa. Emme ehkä käytä komentoriviä kaiku pois, mutta aseta "koira" jokaisen komennon eteen.

Monissa tapauksissa haluat erätiedoston näyttävän tietyt viestit näytöllä (tai tiedostossa). Joissain tapauksissa nämä voivat olla virheilmoituksia, toisissa informatiivisia viestejä, jotka selittävät erätiedoston käyttäjälle, mitä Tämä hetki, joskus luomme jonkin muun komentotiedoston hyödyllinen tiedosto. Samaa echo-komentoa käytetään viestien näyttämiseen. Näytettävän viestin teksti välitetään sille parametrina. Luettelo parannetusta erätiedostosta on alla.

@echo off rem ************************************************** ******** ******* rem Ohjetiedostojen luominen kopioi- ja siirtokomennoilla rem ************************ ********* ******************** @echo Ohjetiedostojen luominen. Sekunti... rem Luo ohjetiedostot help copy > copy.help help move > move.help rem Luo hakemisto ohjetiedostoille md msdos-help rem Siirrä ohjetiedostot valmiiseen hakemistoon move *.help msdos -help echo Valmis!

Parametrien välittäminen komentotiedostoon

Oletetaan, että haluamme luoda erätiedoston, joka ensin luo ohjeen käyttäjän määrittämän komennon kuvaamiseen ja lataa sen sitten Muistioon tarkastelua varten. Temppu on jollakin tavalla kertoa sille, kun seuraavan kerran suoritamme erätiedoston, mistä komennosta olemme tällä kertaa kiinnostuneita.

Tämän ongelman ratkaisemiseksi tarjotaan parametrien käsittelymekanismi. Se toimii hyvin yksinkertaisesti. Jos käyttäjä määritti erätiedostoa suoritettaessa useita parametreja, niin komentotiedoston tekstissä merkitään ensimmäinen niistä merkinnällä %1 , toinen merkintä %2 , kolmas merkintä %3 jne. Käytämme näitä merkintöjä komentotiedoston tekstissä samalla tavalla kuin pronomineja luonnollisessa puheessa.

Ongelman ratkaisevan komentotiedoston teksti näkyy seuraavassa luettelossa. Kiinnitä huomiota käskyyn auta. Komentotiedoston ensimmäinen parametri välitetään sille sen parametrina.

@echo off rem Luomme tiedoston komennon kuvauksella, rem, jonka nimen välittää parametri help %1 > help.tmp rem Lataamme kuvaustiedoston Muistioeditoriin notepad help.tmp

Oletetaan, että annamme tälle erätiedostolle nimen show-help.bat. Jos haluat ladata komennon kuvauksen muistioon esim. ohj, meidän on syötettävä komento seuraavasti.

Show-help.bat ohj

Seuraava komentotiedosto luo hakemiston ensimmäisessä parametrissa määritetyllä nimellä ja kirjoittaa siihen tiedoston, joka sisältää toisessa parametrissa määritettyä komentoa kuvaavan tekstin.

Rem Esimerkki komentotiedostosta kahdella parametrilla rem Luo hakemisto ensimmäisellä parametrilla md määritetyllä nimellä % 1 rem Luo siihen tiedosto, jossa on kuvaus toisella parametrilla määritetystä komennosta help %2 > %1\ %2.help

Mitä tapahtuu, jos käyttäjä määrittää neljä parametria kahden sijaan suorittaessaan tätä erätiedostoa? Ei hätää, ne eivät häiritse mitään, niitä ei vain käytetä. Mitä tapahtuu, jos käyttäjä määrittää vain ensimmäisen parametrin? Toinen parametri on tyhjä. Vaikutus on seuraava: erätiedosto suoritetaan, mutta ikään kuin tallenteen sijasta %2 ei ole mitään. Help-komento luo luettelon kaikista komennoista ja sijoittaa sen tiedostoon, jonka nimi on tyhjä ja jonka tunniste on .help. Jos käyttäjä suorittaa tämän tiedoston määrittämättä mitään parametreja, komentoprosessori yrittää suorittaa komennon md(muista, tämä on hakemiston luomista varten), saamme viestin aiheesta syntaksivirhe, koska md-komennolla on oltava parametri.

Näin ollen parametrien käyttö luo suuria mahdollisuuksia, mutta voi monimutkaistaa asioita merkittävästi. Jotta erätiedosto toimisi aina oikein, on tarpeen tarkistaa käyttäjän määrittämien parametrien oikeellisuus ja reagoida jollakin tavalla epätäydellisiin tai virheellisiin syöttötietoihin. Tätä ei tietenkään voi tehdä, mutta virheellisesti toimiva erätiedosto voi aiheuttaa ongelmia, varsinkin jos siihen liittyy tietojen poistaminen tai korvaaminen.

Muuttujat. aseta komento

Muuttuja on nimetty arvo. Ohjelmointioppikirjoissa muuttujaa verrataan yleensä kirjekuoreen, johon on kirjoitettu nimi. Kirjekuoren sisään voi laittaa jotain, esim. tietty määrä raha on sen merkitys. Kuten kirjekuoressa, muuttujan arvoa voidaan muuttaa.

Jos haluat ilmoittaa muuttujan ja samalla antaa sille arvon, käytä komentoa aseta. Esimerkki tästä komennosta on esitetty seuraavassa luettelossa.

Rem-kääntäjä ohjetiedostoista CHM-muodossa aseta help_compiler=c:\HTML Help Workshop\hcc.exe

Muuttujan arvon erottamiseksi sen nimi sijoitetaan kahden prosenttimerkin väliin alla olevan kuvan mukaisesti.

Rem Ohjetiedostojen kääntäjä CHM-muodossa set help_compiler=c:\HTML Help Workshop\hcc.exe rem "Warehouse"-moduulin projektin ohjetiedosto set store_hpj=help\sources\store\store.hpj rem Projektin ohjetiedosto Myynti"-moduuli " set sales_hpj=help\sources\sales\sales.hpj rem Kokoa ohjetiedostot %help_compiler% %store_hpj% %help_compiler% %sales_hpj%

Seuraava luettelo osoittaa, miksi muuttujat ovat hyödyllisiä.

Ensinnäkin niiden avulla voit käyttää lyhyttä fragmenttia, joka on sen synonyymi erätiedoston sisällä pitkän fragmentin sijaan (esimerkiksi polku ohjetiedoston kääntäjälle). Ainakin se on kätevä.

Toiseksi niiden avulla voit välttää toiston komentotiedoston tekstissä fragmentteja, jotka voivat muuttua tulevaisuudessa. Kuvittele, että asensimme uudelleen Microsoft HTML Workshop toiseen hakemistoon. Jos erätiedostossa käytetään muuttujaa polun tallentamiseen, riittää, että komentotiedostossa korjataan vain yksi rivi, nimittäin se, jossa muuttujan arvo on määritetty help_compiler. Jos kirjoittaisimme polun kääntäjälle joka kerta, kun se piti kutsua, polun muuttamisen jälkeen meidän olisi korjattava jokainen tällainen rivi. Yllä olevassa esimerkissä niitä on kaksi, mutta todellisessa projektissa niitä voi yhtä helposti olla viisi tai viisitoista, riippuen käännettävien ohjetiedostojen määrästä. Ongelmana ei ole se, että jokaisen rivin manuaalinen korjaaminen on vaikeaa (kukaan ei loppujen lopuksi ole peruuttanut "copy" ja "paste" -komentoja), vaan se, että tämä lisää suuresti vahingossa tapahtuvan virheen todennäköisyyttä.

Erätiedoston parametrit ovat myös muuttujia, mutta ne eroavat tavallisista muuttujista siinä, että niiden arvot asetetaan komentojonotiedostoa käynnistettäessä. Tulevaisuudessa puhuttaessa muuttujista, erityisesti niiden arvojen kanssa työskentelystä, tarkoitamme myös komentotiedostoparametreja, ainakin ilman nimenomaisia ​​varauksia tähän.

Erätiedostoja kirjoitettaessa käytetään usein seuraavaa tekniikkaa: useita muuttujaarvoja merkitään vierekkäin (tai joidenkin symbolien tai rivien välissä), jotta saadaan uusi merkityksellinen arvo. Esimerkki on esitetty seuraavassa luettelossa.

Rem Polku ohjetiedoston kääntäjään set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Polku hakemistoon, jossa ohjetiedostoprojektit sijaitsevat, aseta project_path=e:\work\projects\help- projects rem Kutsumme kääntäjää käsittelemään tietyn projektin, jonka nimi välitetään ensimmäisessä parametrissa %help_compiler% %project_path%\%1.hpj

Ehtojen tarkistaminen ja vaihtoehtojen valinta. if and goto komentoja

If-komennon avulla voit valita komentoryhmiä erätiedostossa, jotka suoritetaan tai joita ei suoriteta tietyistä ehdoista riippuen. Mitä varten se on?

Kunto tarkistetaan - melkein tarvittava toimenpide kun luot parametreja käyttäviä erätiedostoja. Ennen työn aloittamista erätiedoston on yleensä varmistettava, että sille välitetään oikeat parametrit. Muuten on olemassa suuri riski, että se suoritetaan väärin tai tehottomasti, ja käyttäjä jää vain miettimään, mikä ongelma on. Lisäksi, jos erätiedosto poistaa, siirtää tai korvaa tietoja, se voi jopa aiheuttaa vahinkoa, jos parametrit ovat virheellisiä.

Seuraavassa luettelossa näkyy ohjetiedoston kokoamiskomentotiedosto, jonka olet jo tuntenut. Komentotiedoston alkuun on lisätty tarkistus, ettei ensimmäinen parametri ole tyhjä. Huomaa tämä syntaksiominaisuus: vertailutoiminto käyttää kaksinkertaista yhtäläisyysmerkkiä. Jos ensimmäinen parametri ei ole tyhjä, suoritetaan goto-komento, joka "heittää" komentotulkin määritettyyn etikettiin. Tässä tapauksessa tämän tarran nimi käännetään. Huomaa, että kun otsikko näkyy, sen nimeä edeltää kaksoispiste, mutta goto-komennossa se ei ole. Jos ensimmäinen parametri on tyhjä, komentoprosessori siirtyy kohtaan seuraava rivi joka tuottaa virheilmoituksen. Ja sitten seuraavaan, joka siirtää sen aivan tiedoston loppuun nimelliseen tarraan suorittaa loppuun.

@echo off rem Tarkistamme onko parametri määritetty jos ei "%1"=="" goto compile rem Jos parametri on tyhjä, annamme virheilmoituksen echo Rem-aputiedoston projektin nimeä ei ole määritetty ja siirry rem-komentotiedoston loppu loppuun goto etiketti finish rem Tämä on otsikko nimeltä compile:compile rem Alla on käännöskomennot rem Polku ohjetiedoston kääntäjäjoukkoon help_compiler="c:\Program Files\HTML Help Workshop\hhc .exe" rem Polku hakemistoon, jossa ohjeprojektit sijaitsevat tiedostot set project_path=e:\work\projects\help-projects rem Kutsu kääntäjä käsittelemään tietty projekti, rem jonka nimi välitetään ensimmäisessä parametrissa %help_compiler% %projektin_polku%\%1.hpj rem Tämä on tarra nimeltä finish:finish

Todettakoon, että ehdotettu menetelmä parametrin tarkistamiseksi ei ole menestynein.

Ensinnäkin, jos käyttäjä vahingossa määrittää parametriksi olemattoman tiedoston nimen, komentojonotiedosto on tyytyväinen tähän ja yrittää kääntää. Lisää Oikea tapa— tarkistaa, onko tällainen tiedosto todella olemassa. Tätä tarkoitusta varten MS-DOS-komentokieli tarjoaa erityisen sanan olla olemassa. Siksi on parempi kirjoittaa: jos olemassa, %1.hpj täytyy kääntää.

Toiseksi, aktiivista käyttöä joukkueet mene(ns. ehdoton hyppy) ja tarrat sekoittavat koodin suuresti. Teknisesti ne eivät ole huonoja, mutta tällä tyylillä kirjoitetun erätiedoston virheenkorjaus ja ylläpito on melko hankalaa. Siksi ohjelmoijat ovat pitkään pitäneet ehdotonta hyppäämistä ei-toivottavana tekniikkana. Alla on esitetty ohjelmointityylin kannalta oikeampi strukturoitu versio, joka käyttää rakennetta tai muuten. Se toimii näin: jos ehto on tosi, komennot suluissa jälkeen jos, ja jos epätosi, suluissa sen jälkeen muu.

@echo off rem Tarkista onko parametri asetettu jos sitä ei ole olemassa %1.hpj (rem Jos parametri on tyhjä, näytämme virheilmoituksen echo Tätä ohjetiedostoprojektia ei ole olemassa.) else (rem Alla ovat käännöskomennot rem Polku ohjetiedoston kääntäjälle set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Polku hakemistoon, jossa ohjetiedostoprojektit sijaitsevat aseta project_path=e:\work\projects\help-projects rem Kutsu kääntäjää käsittelemään tietty projekti , jonka nimi välitetään ensimmäisessä parametrissa %help_compiler% %project_path%\%1.hpj)

Kiinnitä huomiota sisennykseen vasemmasta reunasta. Ne ovat valinnaisia, mutta tekevät erätiedoston tekstistä luettavamman.

Otetaan toinen esimerkki sekkien kanssa työskentelystä. Seuraava komentojonotiedosto luo hakemiston nimeltä ohjetiedostot(oletetaan, että ladataan siihen käännetyt ohjetiedostot). Lisäksi, jos samanniminen hakemisto on jo olemassa (ja se todennäköisesti sisältää vanhoja ohjetiedostoja, joita et halua menettää: entä jos uudet osoittautuvat huonommiksi?), komentojonotiedosto määrittää sen bak laajennus. Mutta jos hakemisto help-files.bak jo olemassa, komentotiedosto poistaa sen (oletetaan, että yksi varmuuskopio se riittää meille).

Jos on olemassa help-files.bak rd help-files.bak jos olemassa help-files ren help-files help-files.bak md help-files

Tiedostojen joukkokäsittely. komentoa varten

For-komennon avulla voit järjestää toistuvien samantyyppisten toimien suorittamisen. Voit käyttää sitä näyttämään numerot yhdestä kymmeneen seuraavan luettelon mukaisesti.

Kohdalle /l %%i in (1,1,10) tee kaiku %%i

Muuttuva i kutsutaan silmukkalaskuriksi. Johtuen komennon ainutlaatuisesta syntaksista varten, silmukkalaskurin nimessä on oltava yksi kirjain. Lisäksi, jos kirjoitamme erätiedostoa, meidän on laitettava kaksinkertainen prosenttimerkki silmukkalaskurin nimen eteen, mutta jos kirjoitamme vain komentoa komentoriville, niin yksi.

Tämän komennon logiikka on seuraava. Sanan jälkeen sisään jaksolaskurin muutosalue näytetään. Tässä komennon versiossa tämä on kolmoisluku: laskurin alkuarvo, laskentavaihe, laskurin raja-arvo. Kun komento suoritetaan, komentotulkki määrittää ensin muuttujan i merkitys 1 , ja sitten jokaisessa silmukan vaiheessa se lisää sitä 1 kunnes se ylittää 10 . On selvää, että tällaisia ​​vaiheita on kymmenen. Jos määritimme luvun laskentavaiheeksi 2 , silmukka suoritettaisiin viisi kertaa. Silmukan jokaisessa vaiheessa suoritetaan sanan jälkeen kirjoitetun silmukan runko tehdä. Yllä olevassa esimerkissä tämä on kaikukomento, joka näyttää silmukkalaskurin nykyisen arvon.

Voit luultavasti ajatella tilannetta, jossa jotain tällaista todella vaaditaan, mutta yleensä komento varten käytetään tiedostojen iterointiin ja käsittelyyn. On sanottava, että melko yksinkertaisissa tapauksissa tiedostojen joukkokäsittely suoritetaan käyttämällä jokerimerkkejä. Jos haluamme korvata kaikkien nykyisen hakemiston tiedostojen tunnisteet .htm päällä .html, annamme komennon ren *.htm *.html. Mutta jos samaa ei tarvitse tehdä yhdessä hakemistossa, vaan hakemistopuussa, et voi tehdä ilman for-komentoa. Seuraava komentojonotiedosto suorittaa tämän toiminnon kaikille htm-tiedostoille nykyisen hakemiston verkkosivuston alihakemistossa. Tarkemmin sanottuna koko sisällä olevassa hakemistopuussa verkkosivusto.

/r-sivustolle %%i in (*.htm) tee ren %%i %%~ni.html

Avain /r ilmaisee tarpeen käydä läpi hakemiston verkkosivusto ja kaikki sen sisältä. Jos et määritä sitä (mutta silloin et voi määrittää hakemistoa), vain nykyisen hakemiston tiedostot käsitellään. Tämän komentomuunnelman silmukkalaskurin arvojen alue on kaikkien tiedostojen, joilla on tunniste, joukko .htm, joka sijaitsee hakemiston sisällä (tarkemmin puussa) verkkosivusto. Outo merkintä ensi silmäyksellä ~ni tarkoittaa, että muuttujan arvosta i Sinun tarvitsee vain valita tiedoston nimi. MS-DOS-komentokieli tarjoaa useita tällaisia ​​muuntajia, esimerkiksi kirjoittamista ~xi ilmaisee tiedostopäätettä. Kaikki muuttajat on kuvattu komentoohjeessa varten.

Silmukan runko voi koostua useista suluissa olevista komennoista.

@echo pois /r sivustolle %%i in (*.htm) do (rem Tulosta tiedoston nimi echo %%i rem Nimeä tiedosto uudelleen ren %%i %%~ni.html)

Ohjauksen siirtäminen toiseen erätiedostoon. kutsu komento

On mahdollista kutsua toinen erätiedosto yhdestä erätiedostosta. Käsky tähän on puhelu. Hienoa, kutsuvassa erätiedostossa määritetyt muuttujat ovat "näkyviä" kutsutulle. Ja päinvastoin, kun kutsuttu tiedosto on lopettanut työnsä ja palauttaa ohjauksen soittajalle, tämä "näkee" kutsutun "perinnön" sille jättämät muuttujat. Tämän ansiosta erätiedoston kehittäjä voi tehdä jotain tällaista: Jos useiden komentotiedostojen on käytettävä samoja arvoja, esimerkiksi polkuja joihinkin tiedostoihin, ne voidaan sijoittaa erilliseen komentotiedostoon, joka toimii asetustiedostona. Jokainen työkomentotiedosto alkaa asetuskutsulla. Hyöty on, että polkuja vaihtaessasi sinun tarvitsee tehdä muutoksia vain yhteen asetustiedosto, eikä moniin työntekijöihin.

"Asetus" erätiedosto config.bat.

Rem Polku ohjetiedoston kääntäjään set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe" rem Polku hakemistoon, jossa ohjetiedostoprojektit sijaitsevat, aseta project_path=e:\work\projects\help- hankkeita

"Toimiva" erätiedosto.

@echo off rem Aseta muuttujat kutsu config.bat rem Tarkista onko parametri asetettu jos sitä ei ole %1.hpj (rem Jos parametri on tyhjä, näyttöön tulee virheilmoitus echo Tätä ohjetiedostoprojektia ei ole olemassa.) else ( rem Alla ovat käännöskomennot rem Kutsumme kääntäjää käsittelemään tietyn projektin, rem jonka nimi välitetään ensimmäisessä parametrissa %help_compiler% %project_path%\%1.hpj)