Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • naredbe bat datoteke (Windows). Kako stvoriti .bat datoteku? Čemu služe ove datoteke?

naredbe bat datoteke (Windows). Kako stvoriti .bat datoteku? Čemu služe ove datoteke?

U ovom članku:

  • Definicija varijabli
  • Varijable naredbenog retka (parametri poziva bat-datoteke)
  • Izjava uvjeta IF
  • Funkcije
  • Korištenje povratnih vrijednosti (Rukovanje kodom za izlaz iz programa)

Definicija varijabli

SET<Имяпеременной>=<Значениепеременной>

SET izraz je proširenje opcija u operacijskom sustavu. Određuje varijablu čija se vrijednost zamjenjuje njezinim imenom kad god se to ime koristi između znakova postotka. Dakle, ako je postavljeno (varijabla koju zahtijevaju mnoge igre koje koriste zvučnu karticu računala):

SET BLASTER=A220 I5 D1 P330

onda kada koristite sljedeću konstrukciju u batch datoteci:

ECHO %BLASTER%

na ekranu će se prikazati "A220 I5 D1 P330". Varijable definirane naredbom SET nazivaju se varijable okoline i vidljive su nakon izvršenja sve dok se DOS ne pokrene ponovno (osim ako se ručno ne mijenja u memoriji). To jest, može se koristiti iz jedne batch datoteke ili programa nakon što je navedeno u drugoj. Najpoznatija je varijabla PATH, koja je skup putova za brzo pronalaženje datoteka. Postavlja se u datoteci autoexec.bat.

Varijable naredbenog retka
(parametri poziva bat-datoteke)

%<цифра 0-9>

Kao iu svakom jeziku, u jeziku batch datoteka moguće je koristiti varijable primljene kao parametre bat datoteke.

Ukupno može postojati 10 istovremeno postojećih nezavisnih varijabli. To je prilično malo za pisanje složenih programa, iako je 3-4 često dovoljno za normalan rad. Vrijednost varijable jednaka je vrijednosti odgovarajućeg parametra iz naredbenog retka. Varijabla %0 sadržavat će naziv .bat datoteke i, ako je navedeno, put do nje. To jest, ako pokrenete datoteku abc.bat sa sljedećim parametrima:

abc.bat a bc def

tada će %0 sadržavati vrijednost abc.bat , %1 će sadržavati vrijednost a , %2 će sadržavati bc , a %3 će sadržavati def . Ovo svojstvo se naširoko koristi za stvaranje generičkih batch datoteka kada se radi o operacijama koje se ponavljaju.

Da biste dobili više od 10 varijabli iz naredbenog retka, možete koristiti naredbu SHIFT.

Naredba SHIFT dopušta korištenje više od 10 opcija naredbenog retka. Međutim, prethodne opcije se u skladu s tim gube. Drugim riječima, naredba SHIFT pomiče sve vrijednosti varijabli za jedan korak ulijevo. To jest, varijabla %0 će sadržavati vrijednost prethodno sadržanu u varijabli %1, a varijabla %1 će sadržavati vrijednost varijable %2 prije pomaka. Međutim, ova operacija je nepovratna, odnosno nemoguće je vratiti varijable.

Izjava uvjeta IF

Na sreću, ljuska cmd.exe modernog sustava Windows 2000 i novijih podržava naredbene blokove u konstrukcijama grana, što eliminira potrebu za označenim IF-ovima. Naredbeni blokovi su zatvoreni u zagradama. To izgleda ovako (imitirajući stil uvlačenja C/C++):

ako stanje (

Rem 'pa' naredbe grane

Rem...

) drugo (

Rem 'else' naredbe grane

Rem...

Specifičan slučaj upotrebe:

@eho isključen

setBUILDMODE=%1

ako je "%BUILDMODE%" == "" (

Echo FAIL: Argument je potreban ^(--debug, --release^)

Izlaz /b 1

rem Uklonite sve crtice iz argumenta kako biste pojednostavili obradu

postavi BUILDMODE=%BUILDMODE:-=%

ako je "%BUILDMODE%" == "debug" (

Postavite CCFLAGS=/Od /MDd /Z7

) drugo (

Postavite CCFLAGS=/O2 /MD

Po mom mišljenju, s tim je već sasvim moguće živjeti. Ali, kao i uvijek, život nije tako lak kao što se čini. Postoji jedan problem. Varijable koje se koriste u blokovima then i else proširuju se prije nego što se ti blokovi počnu izvršavati, a ne tijekom izvođenja. U navedenom primjeru to ne uzrokuje nikakve probleme, ali će u sljedećem:

ako je "%BUILDMODE%" == "debug" (

Echo INFO: Postavljanje načina za otklanjanje pogrešaka u okruženju

Postavite OPTFLAGS=/Od

Postavite CCFLAGS=%OPTFLAGS% /MDd /Z7

) drugo (

Echo INFO: Postavljanje načina oslobađanja okoline

Postavite OPTFLAGS=/O2

Postavite CCFLAGS=%OPTFLAGS% /MD

Kvaka je u tome što će u oba bloka varijabla OPTFLAGS biti zamijenjena prije nego što se promijeni tijekom izvođenja ovog bloka. Sukladno tome, CCFLAGS će biti zamijenjen vrijednošću koju je OPTFLAGS imao u trenutku izvršenja zadanog if-bloka.

Ovaj problem je riješen korištenjem odgođenog proširenja varijable. Varijable zatvorene u !…! umjesto %…% , bit će proširene na svoje vrijednosti samo u trenutku izravne upotrebe. Ovaj način rada je onemogućen prema zadanim postavkama. Možete ga omogućiti korištenjem prekidača /V:ON kada pozivate cmd.exe ili korištenjem naredbe:

u tekstu same bat datoteke. Drugi način mi se čini prikladnijim – nije baš cool zahtijevati od nekoga da pokrene vašu skriptu s određenim parametrom.

Uz to rečeno, prethodni "pogrešan" primjer može se ispraviti ovako:

setlocal enabledelayedexpansion

ako je "%BUILDMODE%" == "debug" (

Echo INFO: Postavljanje okruženja načina za otklanjanje pogrešaka

Postavite OPTFLAGS=/Od

Postavite CCFLAGS=!OPTFLAGS! /MDd /Z7

) drugo (

Echo INFO: Postavljanje okruženja načina otpuštanja

Postavite OPTFLAGS=/O2

Postavite CCFLAGS=!OPTFLAGS! /DOKTOR MEDICINE

Sada je ovo gotovo punopravni blok ako-onda-drugo. Gotovo, jer ako u jednoj od naredbi echo naiđete na završnu zagradu, onda je trebate pobjeći znakom ^, inače se parser zbuni...

Ali u svakom slučaju, puno je bolje od sulude količine etiketa i prijelaza.

Funkcije

Je li moguće stvoriti funkciju u bat datoteci? Da, možete. Štoviše, ponekad je čak i potrebno. Istina, može se uvjetno nazvati funkcijama.

Postoji posebna sintaksa za naredbu call, koja vam omogućuje da skočite na oznaku u istoj bat datoteci, prisjećajući se mjesta s kojeg je ovaj poziv upućen:

argumenti call:label

Povratak iz funkcije vrši se naredbom:

exit /b [opcijski povratni kod]

Ključ /b je ovdje vrlo važan: bez njega neće izaći funkcija, već skripta općenito.

Za detalje upišite u naredbeni redak:

poziv/?

Izlaz /?

Zanimljivo je da naredba call s ovom sintaksom podržava rekurzivne pozive s automatskim stvaranjem novog okvira za promjenjive argumente %0-%9. Ponekad ovo može biti od pomoći. Evo klasičnog primjera rekurzivnog faktorijalnog izračuna u naredbenom jeziku:

@eho isključen

poziv: faktorski %1

odjek %RESULT%

Izlaz

rem Funkcija za izračun faktorske vrijednosti

rem Prijava:

rem %1 Broj za koji želite izračunati faktorijel

rem izlaz:

rem %RESULT% Faktorska vrijednost

:faktorijel

ako je %1 == 0 (

Postavite REZULTAT=1

Izlaz /b

ako je %1 == 1 (

Postavite REZULTAT=1

Izlaz /b

postavi /a PARAM=%1 - 1

poziv:faktorski %PARAM%

postavi /a REZULTAT=%1 * %RESULT%

izlaz /b

Primjer rada:

> factorial.šišmiš 10

3628800

Korištenje povratnih vrijednosti
(obrada izlaznog koda programa)

Svaki program na kraju svog rada vraća operacijskom sustavu kod svog završetka. Uobičajeno je vratiti nulu nakon uspjeha, inače kod pogreške. Ponekad, ili radije često, program "namjerno" vraća vrijednost različitu od nule kako bi mogao "naučiti" neke detalje svog rada u batch datoteci. Na primjer, program vraća kod pritisnute tipke, a .bat datoteka na njoj izvodi razne radnje.

Kako batch datoteka može saznati izlazni kod izvršenog programa? Za to je predviđena ključna varijabla ERRORLEVEL.

Primjer batch datoteke s razinama pogreške:

@ECHO OFF

REM Pokrenite program prg1.exe

PRG1.EXE

Analiza izlaznog koda REM

AKO GREŠKA RAZINA 2 IDE NA FILENOTFOUND

AKO GREŠKA RAZINA 1 IDI NA WRITEERROR

AKO JE NIVO GREŠKE 0 IDI NA IZLAZ

IDI NA ONEXIT

:DATOTEKA NIJE PRONAĐENA

ECHO Greška! Datoteka nije pronađena!

IDI NA ONEXIT

:WRITEERROR

ECHO Pogreška pri pisanju!

IDI NA ONEXIT

:EXITOK

ECHO program je uspješno završen.

IDI NA ONEXIT

:ONEXIT

Obratite pažnju - analiza izlaznog koda ne počinje od nule, već od najveće moguće vrijednosti. Činjenica je da takva provjera znači: "ako je razina pogreške veća ili jednaka vrijednosti, onda ...". To jest, ako provjeravamo počevši od nule, bilo koja vrijednost će biti istinita u prvom retku, što nije točno.

Ovo je najčešća pogreška u ovoj vrsti programa.

BAT datoteke su tekstualni dokument s posebnim nastavkom. U njega se upisuju naredbe za njihovo naknadno izvršavanje u naredbenom retku. Pokretanjem datoteke aktivirate CMD program, on čita naredbe koje se uzastopno izvršavaju. Na taj način možete olakšati rad s naredbenom linijom, a pritom zadržati željeni redoslijed. Naravno, možete ručno unijeti sve naredbe odjednom u naredbeni redak, međutim, ako trebate ponoviti iste operacije, puno je prikladnije to učiniti pokretanjem automatskog čitanja popisa napisanog u obliku šišmiša dokument. Ova je opcija također praktična i prikladna jer kasnije možete promijeniti redoslijed, dopuniti novim procesima koji su vam potrebni, a također i ukloniti nepotrebne.

BAT pomaže automatizirati procese: pokretanje programa, arhiviranje, sigurnosno kopiranje. Stoga je korisno znati kako sami izraditi bat datoteku, ispraviti je i nadopuniti.

Rad s šišmišom kroz Notepad

Algoritam stvaranja

Proces rada kroz Notepad nije nimalo kompliciran. Ako to nikada prije niste radili, onda to možete učiniti prilično dobro tako što ćete naučiti kako stvoriti bat datoteku i dodati joj naredbe. Krenimo od stvaranja. Ovdje nastavite striktno prema algoritmu:

  1. Napravite tekstualni dokument, u početku ćete ga dobiti s ekstenzijom txt. Ovu operaciju možete izvesti na nekoliko načina, neki ovise o razini sustava Windows koji ste instalirali:
    • U mapi koju ste odabrali, desnom tipkom miša kliknite polje, otvorit će se izbornik, tamo odaberite "Kreiraj" - "Tekstualni dokument";
    • Pokrenite "Notepad" kroz "Start" odabirom "Svi programi" - "Dodatna oprema" - "Bilježnica" (za Windows 7);
    • U kasnijim (nakon 7) verzijama Windowsa, Notepad možete otvoriti i kroz "Start": prođite kroz "Sve aplikacije", zatim "Standard" - "Windows" i na popisu odaberite "Bilježnica";
    • Pozovite naredbeni prozor sustava pomoću kombinacije Win + R, unesite "bilježnicu" u redak, kliknite "U redu".
  2. Unesite tekst naredbe. Za test zapišite, na primjer, "START taskmgr.exe" - pokrenite upravitelj zadataka. "START" govori tumaču naredbi da pokrene program, nakon čega slijedi izvršna datoteka programa.
  3. Odredite put na koji želite spremiti kreirani dokument.
  4. Navedite u prozoru za spremanje:
    • u retku "Vrsta" - "Sve datoteke";
    • u redak "Naziv" unesite naziv i ekstenziju šišmiša, dodajte ga iza imena, stavite točku između naziva i ekstenzije, na primjer "file.bat".
  5. Kliknite na "Spremi".

Batch datoteka s nastavkom .bat pojavit će se u mapi koju ste naveli.

Pokretanje datoteke

Lakše je otvoriti bat datoteku dvostrukim klikom miša na nju. Drugi način je pokretanje iz naredbenog retka: unesite adresu na kojoj se nalazi dokument s ekstenzijom .bat koji ste spremili.

Uređivanje

Ako želite promijeniti dokument - dodati naredbe u bat-datoteku, izbrisati neke od njih, unijeti drugi program za naknadni rad s njim - to nije teško učiniti. Otvorite dokument u uređivaču teksta. Zgodno je to učiniti desnim klikom na datoteku šišmiša, odaberite "Uredi" u izborniku koji se otvori. Pokrenut će se Notepad - tamo možete uređivati ​​naredbe, mijenjati sadržaj, dodavati.

Aplikacija Dr.Batcher

Za početnika koji tek počinje raditi s interpretatorom naredbi, koji ga koristi prilično rijetko, dovoljan je Notepad. Ako želite dosegnuti višu profesionalnu razinu, preporučujemo korištenje uslužnog programa Dr.Batcher. U Dr.Batcheru možete numerirati stranice, postoji podrška za knjižne oznake, popis sistemskih naredbi koje se koriste u bat-u, unesene naredbe su istaknute.

Izrada dokumenta

Algoritam je jednostavan, ne zahtijeva posebne vještine i profesionalnost. Preuzimanjem uslužnog programa možete brzo učiniti sve što vam je potrebno.

Pokrenite Dr. Batcher.

  1. Otvorite novu stranicu: "Datoteka" - "Novo" ili kliknite na ikonu praznog lista koja se nalazi ispod izbornika "Datoteka".
  2. U dijaloškom okviru kliknite na "Empty Batch File".
  3. Formira se programski prozor u kojem će se nalaziti funkcije za rad s šišmišom.
  4. Nakon unosa željenog teksta, spremite.

Uređivanje

Ako trebate promijeniti bat datoteku, Dr.Batcher to čini na nekoliko načina:

  1. Desnom tipkom miša kliknite na ikonu, s izbornika odaberite "Uredi s Dr.Batcherom".
  2. Pokrenite Batcher. Otvorite željenu bat datoteku slijedeći put:
  • "datoteka";
  • "otvorena";
  • odrediti put do dokumenta;
  • "Otvorena".

Slijedeći jedan od predloženih putova, otvorit ćete uslužni program, u prozoru će se pojaviti tekst u kojem možete izvršiti prilagodbe, promijeniti naredbe, dopuniti ih i izbrisati nepotrebne.

Bat datoteka je zgodna kada trebate automatizirati zadatke u sustavu Windows. Pogotovo ako je potrebno izvršiti radnje nekoliko puta (periodično ili za redom) u određenom algoritmu. To je obično potrebno kod stvaranja sustava imenika, kod skupnog preimenovanja datoteka i drugih jednostavnih i složenijih operacija. Nakon što ste spremili redoslijed radnji, možete brzo i bez nepotrebnog gubitka vremena za ručni unos naredbi, možete započeti proces u bilo kojem trenutku, ponoviti ga za različite programe, dodajući samo njihovo ime u gotov tekst. Gore navedene preporuke o tome kako napraviti datoteku šišmiša pomoći će vam ne samo da ih sami izradite, već i uredite.

Svatko može pisati bat datoteke!

naredbeni procesor

Mnogi operativni sustavi, uključujući one koje je razvio Microsoft, uključuju procesor naredbi. Ovo je naziv programa koji pokreće izvršavanje različitih radnji kao odgovor na naredbe koje korisnik unese s tipkovnice. U osnovi, te se radnje sastoje u pokretanju potrebnih programa s određenim parametrima. Ali ne samo; kasnije ćemo vidjeti da se neke naredbe izvršavaju izravno od strane ljuske. U osnovi, to su naredbe koje služe za kontrolu konteksta i slijeda izvršenja naredbe. Međutim, nećemo previše razmišljati o prirodi naredbi, barem ne nepotrebno. Još jedna stvar je važnija: svaki program koji je tehnički moguće pokrenuti iz naredbenog retka naredbeni procesor smatra naredbom. Ne pravi razliku između "nativnih" naredbi koje su izvorno ugrađene u operativni sustav i programa koji su instalirani na njemu.

Za pokretanje procesora naredbi:

    Kliknite na gumb Početak. Na ekranu će se prikazati glavni izbornik.

    Odaberite Pokreni s glavnog izbornika. Na ekranu će se pojaviti dijaloški okvir. Pokretanje programa.

    U polje Otvori unesite niz cmd.

    Kliknite na gumb u redu. Na ekranu će se prikazati prozor naredbenog procesora.

Naredbeni redak i naredbe

Prozor školjke u svom izvornom obliku izgleda tmurno i nije baš prikladan za rad s većinom ljudi. Mnogo je lakše koristiti upravitelje datoteka u stilu Norton Commandera. Oni pružaju i sredstvo za brzu navigaciju kroz datotečni sustav i vremensko ograničenje za unos naredbi.

Za unos naredbe:

    Upišite tekst naredbe u naredbeni redak.

    Pritisnite tipku Unesi.

Naredbe procesora naredbi i operacijskog sustava opisane su u operativnoj dokumentaciji za potonje. Ova je dokumentacija dijelom sadržana u samom operativnom sustavu. Naredba za pristup je Pomozite. Ova naredba prikazuje popis dostupnih naredbi. Kako bi dobili opis određene naredbe, kao parametar naredbe Pomozite treba joj dati ime. Naredbeni redak prikazan na sljedećem popisu prikazuje opis naredbe za.

Ako ste pokušali unijeti naredbu Pomozite, onda ste vjerojatno primijetili da rezultat njegovog rada (tzv. problem) ne stane na jedan ekran. Isti se problem javlja s tekstom opisa naredbe za. Dobra vijest je da se izlaz može preusmjeriti na datoteku. Naredbeni redak prikazan na sljedećem popisu generira datoteku naredbe.txt A koji sadrži popis svih MS-DOS naredbi.

pomoć > commands.txt

Za generiranje datoteke opisa naredbi za, morate dati takvu naredbu (naziv izlazne datoteke možete napraviti bilo kojim).

pomoć za > for.txt

Ukupno, u modernim Microsoftovim operativnim sustavima postoji nešto manje od 80 naredbi i nemoguće ih je opisati u jednom članku. Ovdje možemo spomenuti samo nekoliko naredbi koje su korisne za automatizaciju obrade datoteka i pokazati vam kako ih koristiti. Ove naredbe će se koristiti kasnije u primjerima. Uvijek možete provjeriti detalje na naredbi Pomozite ili u priručniku.

kopirati- kopiranje jedne ili više datoteka;

del- izbrisati jednu ili više datoteka;

potez- premještanje jedne ili više datoteka ili direktorija;

preimenovati(skraćeno ren) - preimenovati jednu ili više datoteka ili direktorija;

xcopy- kopiranje stabla poddirektorija;

mkdir(skraćeno doktor medicine) - kreiranje imenika;

rmdir(skraćeno rd) - brisanje imenika.

Jedno od općih pravila sintakse naredbi MS-DOS je da kada specificirate opcije, prvo navedete izvor, a zatim rezultat. Na primjer, ako želimo premjestiti datoteku pivo.txt iz kataloga kutija katalogizirati stol, moramo unijeti naredbu prikazanu na sljedećem popisu.

premjestiti box\beer.txt tablicu

Prvo što premjestiti, pa kamo se kretati.

Ako želimo preimenovati datoteku lena.txt upisati natasha.txt, tada bi naredba trebala biti napisana kao što je prikazano u nastavku.

ren lena.txt natasha.txt

Prvo što preimenovati, pa onda što preimenovati.

trenutni imenik. Apsolutni i relativni putevi

Kada radite s naredbama datoteka, koncept trenutnog direktorija je od iznimne važnosti. Činjenica je da kada navedemo datoteku kao parametar naredbe, uvijek koristimo jedan od dva moguća načina da pokažemo na njih: ili apsolutni put ili relativni put. U punom putu navodimo sve počevši od pogona (ili mrežnog naziva računala), na primjer d:\misha\box\beer.txt. Koji god imenik bio aktualan u trenutku izdavanja naredbe, puni put će odgovarati istoj datoteci. Za relativni put, trenutni direktorij je početna točka. Najjednostavniji slučaj relativnog puta je naziv datoteke. U kontekstu izvršavanja naredbe, to znači datoteku s tim imenom koja se nalazi u trenutnom direktoriju.

Za pisanje relativnog puta do trenutnog direktorija postoji uvjetna oznaka . (točka). Za pisanje relativnog puta do imenika koji sadrži trenutni direktorij, postoji uvjetna oznaka .. (dvije točkice). Naredba prikazana u sljedećem popisu kopira sve datoteke u trenutnom direktoriju u direktorij susjed koji se nalazi pored njega.

kopiraj *.* .\susjed

batch datoteke

Do sada smo pri davanju primjera pretpostavljali da svaki put naredbe unosimo ručno. Prilikom obrade velikog broja datoteka ili kada se sustavno izvršavaju iste naredbe, to postaje opterećujuće. Stoga procesor naredbi pruža mogućnost izvršavanja batch datoteka. Datoteka naredbi je tekstualna datoteka u koju se upisuju naredbe (ili barem jedna naredba). Primjer batch datoteke prikazan je na sljedećem popisu. Pokušajte pogoditi što ova batch datoteka radi.

pomoć kopirati > kopirati.pomoć

pomoći premjestiti > premjestiti.pomoć

premjestiti *.help msdos-help

Ako vam je svrha ove datoteke misterij, pokušajte je stvarno stvoriti i izvršiti. Batch datoteke obično dobivaju ekstenziju šišmiš. Prema njemu, datoteke ove vrste prepoznaje procesor naredbi. Ova se datoteka može nazvati npr. napraviti-pomoć.šišmiš.

Za pokretanje batch datoteke:

    Unesite njegovo ime kao naredbu. Nakon toga, batch datoteka će se izvršiti.

U batch datoteci svaka naredba zauzima jedan redak. Točnije, postoji način postavljanja jedne naredbe u nekoliko uzastopnih redaka, za to, neposredno prije svakog prijeloma reda, stavite simbol "kapa" ^ . (Svaka kapica mora biti posljednji znak u svom retku; iza njega ne smije biti razmaka ili tabulatora.) Primjer takve naredbe prikazan je na sljedećem popisu.

ako postoji disser.txt ^

kopiraj disser.txt ^

d:\science\papers\drafts\sources

No, radi jednostavnosti, kako ne bismo svaki put rezervirali, pretpostavit ćemo da je u nekom smislu ovo jedna duga „logična“ linija.

Prilikom izvršavanja batch datoteke, ljuska je skenira od vrha do dna od prvog do posljednjeg retka i izvršava naredbe redoslijedom kojim ih pronađe. Izvodi ih u cjelini kao da smo svaku od njih unijeli ručno. Općenito, zato što se neke naredbe ponašaju malo drugačije kada se unose ručno i kada se izvršavaju iz batch datoteke.

Gledajući unaprijed, recimo da se, ako je potrebno, slijed izvršavanja naredbe može promijeniti pomoću kontrolnih naredbi (s čim ta potreba može biti povezana, zasebno je pitanje).

Nemojte brkati trenutni direktorij s direktorijem u kojem se nalazi batch datoteka koja se izvodi. Pretpostavimo da je trenutni imenik raditi, sadrži imenik alata, a direktorij alata sadrži batch datoteke. Jednog od njih pokrećete naredbom alati\collect-images.bat. Dakle, "sa gledišta" ove batch datoteke, trenutni direktorij će i dalje biti raditi, ali ne alata.

Komentiranje batch datoteke i njeno izdavanje. echo i rem naredbe

Batch datoteka je u biti program napisan u jeziku ljuske operacijskog sustava. Tekst programa trebao bi biti obogaćen komentarima kako se, vraćajući mu se nakon nekog vremena, ne bi bolno sjećali čemu ovaj program služi i kako radi.

Sustav naredbi MS-DOS pruža naredbu za formatiranje komentara. rem. Ovo je fiktivna naredba koja ne uključuje izvođenje bilo kakvih radnji, ali vam omogućuje da napišete proizvoljan tekst u retku iza vašeg imena. Štoviše, procesor naredbi to ne doživljava kao sintaktičku pogrešku. Primjer formatiranja batch datoteke s komentarima prikazan je na sljedećem popisu.

rem ***************************************************** ******* ****

rem Generiranje datoteka pomoći

pomoć kopirati > kopirati.pomoć

pomoći premjestiti > premjestiti.pomoć

premjestiti *.help msdos-help

Obratite pažnju na prazne retke po kojima je batch datoteka podijeljena na "paragrafe". Ovaj jednostavan trik čini batch datoteku čitljivijom.

Prilikom izvršavanja gornje batch datoteke, sve naredbe će biti prikazane na ekranu kako se izvrše, što nije uvijek zgodno. Izdavanje naredbi može se onemogućiti pomoću naredbe @eho isključen. Simbol "pas" ispred naredbe jeka znači da se sama ova naredba mora izvršiti u "tihi" načinu. Mogli bismo i ne koristiti naredbeni redak odjeknuti, ali ispred svake naredbe stavite "pas".

U mnogim slučajevima želite da skupna datoteka prikazuje određene poruke na zaslonu (ili u datoteci). U nekim slučajevima to mogu biti poruke o pogrešci, u drugima informativne poruke koje objašnjavaju korisniku batch datoteke što se trenutno događa, ponekad sa batch datotekom formiramo neku drugu korisnu datoteku. Ista naredba echo koristi se za prikaz poruka. Kao parametar, prosljeđuje se tekst izlazne poruke. Popis poboljšane batch datoteke dat je u nastavku.

rem ***************************************************** ******* ****

rem Formiranje datoteka pomoći za naredbe kopiranja i premještanja

rem ***************************************************** ******* ****

@echo Generiranje datoteka pomoći. Jednu sekundu...

rem Generiranje datoteka pomoći

pomoć kopirati > kopirati.pomoć

pomoći premjestiti > premjestiti.pomoć

rem Stvori direktorij za pohranjivanje datoteka pomoći

rem Premjestite datoteke pomoći u pripremljeni direktorij

premjestiti *.help msdos-help

echo Gotovo!

Prosljeđivanje parametara u batch datoteku

Pretpostavimo da želimo stvoriti batch datoteku koja prvo generira pomoć koja opisuje naredbu koju je odredio korisnik, a zatim je učitava za pregled u bilježnici. Trik je u tome da to na neki način kažemo sljedeći put kada se batch datoteka pokrene, a koja naredba nas ovaj put zanima.

Kako bi se riješio ovaj problem, predviđen je mehanizam za obradu parametara. Djeluje sasvim jednostavno. Ako je korisnik prilikom pokretanja batch datoteke naveo nekoliko parametara, tada u tekstu skupne datoteke prvi od njih označavamo unosom %1 , drugi unos %2 , treći rekord %3 itd. Ove oznake koristimo u tekstu skupne datoteke na isti način kao u prirodnom govoru sa zamjenicama.

Tekst batch datoteke koji rješava problem prikazan je na sljedećem popisu. Obratite pažnju na tim Pomozite. Prvi parametar batch datoteke prosljeđuje mu se kao njegov parametar.

rem Formiramo datoteku s opisom naredbe,

rem čije se ime prosljeđuje kao parametar

pomoć %1 > pomoć.tmp

rem Učitavanje datoteke opisa u uređivač Notepad

pomoć za bilježnicu.tmp

Pretpostavimo da smo ovoj batch datoteci dali ime pokazati-pomoć.šišmiš. Za učitavanje opisa naredbe u bilježnicu, na primjer, red, moramo unijeti naredbu na sljedeći način.

pokazati-pomoć.šišmiš red

Sljedeća batch datoteka stvara direktorij s imenom navedenim u prvom parametru i zapisuje u njega datoteku koja sadrži tekst opisa za naredbu navedenu u drugom parametru.

rem Primjer batch datoteke s dva parametra

rem Stvorite direktorij s imenom danim prvim parametrom

rem Napravite datoteku u njoj s opisom naredbe,

rem zadan drugim parametrom

pomoć %2 > %1\%2.pomoć

Što se događa ako korisnik navede ne dva, već četiri parametra prilikom pokretanja ove batch datoteke? U redu je, neće ništa smetati, samo se neće koristiti. Što se događa ako korisnik navede samo prvi parametar? Drugi parametar će biti prazan. Učinak će biti sljedeći: batch datoteka će se izvršiti, ali kao da je na mjestu snimanja %2 Nema ničega. Naredba help će generirati popis svih naredbi i staviti je u datoteku s praznim imenom i ekstenzijom .help. Ako korisnik pokrene ovu datoteku bez navođenja niti jednog parametra, onda kada procesor naredbi pokuša izvršiti naredbu doktor medicine(podsjetimo, radi se o kreiranju direktorija), dobit ćemo poruku o sintaksičkoj pogrešci, jer naredba md mora imati parametar.

Dakle, korištenje parametara stvara velike mogućnosti, ali može značajno zakomplicirati stvari. Kako bi batch datoteka uvijek ispravno radila, potrebno je provjeriti ispravnost parametara koje je odredio korisnik i nekako reagirati na nepotpune ili netočne ulazne podatke. To, naravno, ne možete učiniti, ali neispravno radna batch datoteka može slomiti drva za ogrjev, osobito ako uključuje brisanje ili prepisivanje podataka.

Varijable. postaviti naredbu

Varijabla je imenovana vrijednost. U udžbenicima programiranja varijabla se obično uspoređuje s omotnicom na kojoj je ispisano ime. U omotnicu možete staviti nešto, na primjer, određeni iznos novca - to je njegova vrijednost. Kao i kod omotnice, vrijednost varijable može se mijenjati.

Da biste deklarirali varijablu i istovremeno joj dodijelili vrijednost, koristite naredbu skupa. Primjer unosa za ovu naredbu prikazan je na sljedećem popisu.

Da biste izdvojili vrijednost varijable, njezino ime se stavlja između dva znaka postotka, kao što je prikazano u nastavku.

rem datoteke pomoći prevoditelja u CHM formatu

postavite help_compiler=c:\HTML Help Workshop\hcc.exe

rem projekt datoteke pomoći modula "Skladište".

postavite store_hpj=help\sources\store\store.hpj

rem projekt datoteke pomoći modula prodaje

postavite sales_hpj=help\sources\sales\sales.hpj

rem Sastavljanje datoteka pomoći

%help_compiler% %store_hpj%

%help_compiler% %sales_hpj%

Donji popis pokazuje korisnost varijabli.

Prvo, dopuštaju umjesto dugog fragmenta (na primjer, put do kompajlera datoteke pomoći) korištenje sinonimnog kratkog unutar batch datoteke. Barem je zgodno.

Drugo, omogućuju vam da izbjegnete ponavljanje fragmenata u tekstu skupne datoteke, što se može promijeniti u budućnosti. Zamislite da smo ponovno instalirali Microsoft HTML Workshop u drugi direktorij. Ako se varijabla koristi u batch datoteci za pisanje putanje do nje, tada će biti dovoljno ispraviti samo jedan redak u batch datoteci, odnosno onaj u kojem je vrijednost varijable dodijeljena pomoćni_kompilator. Ako bismo put do kompajlera napisali svaki put kada ga je potrebno pozvati, onda bismo nakon promjene puta morali ispraviti svaki takav redak. U navedenom primjeru postoje dva, ali u stvarnom projektu može ih biti pet ili petnaest, ovisno o broju datoteka pomoći koje želimo sastaviti. Problem nije u tome što je ručno ispravljanje svakog retka teško (uostalom, nitko nije otkazao naredbe “copy” i “paste”), već što to uvelike povećava vjerojatnost slučajne pogreške.

Parametri batch datoteke su također varijable, ali se razlikuju od običnih varijabli po tome što se njihove vrijednosti postavljaju kada se batch datoteka pokrene. U nastavku, kada govorimo o varijablama, posebno o radu s njihovim vrijednostima, mislit ćemo i na parametre batch datoteke, barem u nedostatku eksplicitnih rezervi na ovu ocjenu.

Prilikom pisanja batch datoteka često se koristi sljedeći trik: nekoliko varijabilnih vrijednosti je naznačeno jedna uz drugu (ili isprepleteno s nekim znakovima ili redovima), kako bi se dobila neka nova smislena vrijednost. Primjer je prikazan u sljedećem popisu.

Provjerite uvjete i odaberite opcije. if i goto naredbe

Naredba if omogućuje vam da odaberete grupe naredbi u naredbenoj datoteci koje se izvršavaju ili ne izvršavaju ovisno o određenim uvjetima. Čemu služi?

Provjera stanja gotovo je neophodna mjera pri stvaranju batch datoteka koje koriste parametre. Prije početka rada, batch datoteka, općenito govoreći, mora se uvjeriti da joj je proslijeđen ispravan skup parametara. U suprotnom postoji veliki rizik da će se izvršiti pogrešno ili bez rezultata, a korisnik će morati samo nagađati u čemu je problem. Štoviše, ako batch datoteka izbriše, premjesti ili prepiše bilo koji podatak, onda s netočnim parametrima može čak uzrokovati štetu.

Sljedeći popis prikazuje poznatu batch datoteku za kompilaciju datoteke pomoći. Na početak batch datoteke dodana je provjera da prvi parametar nije prazan. Obratite pažnju na ovu značajku sintakse: dvostruki znak jednakosti koristi se za operaciju usporedbe. Ako prvi parametar nije prazan, izvršava se naredba goto, koja "izbacuje" ljusku na navedenu oznaku. U ovom slučaju, naziv ove oznake se kompilira. Imajte na umu da gdje se oznaka pojavljuje, njenom imenu prethodi dvotočka, ali ne u naredbi goto. Ako je prvi parametar prazan, ljuska skače na sljedeći redak, što proizvodi poruku o pogrešci. A onda na sljedeću, koja ga baca na sam kraj datoteke do oznake s imenom Završi.

ako nije "%1"=="" idi na kompajliranje

rem Ako je parametar prazan, izdajte poruku o pogrešci

echo Nije naveden naziv projekta datoteke pomoći

rem i idite na kraj batch datoteke

rem završiti marku

rem je oznaka pod nazivom compile

rem Ispod su naredbe za kompilaciju

rem Put do pomoći kompajleru datoteka

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Put do direktorija u kojem se nalaze projekti datoteke pomoći

postavi put_projekta=e:\rad\projekti\projekti pomoći

rem Pozvati prevodilac za obradu određenog projekta,

rem čije ime prosljeđujemo u prvom parametru

%help_compiler% %project_path%\%1.hpj

rem Ovo je oznaka pod nazivom završiti

Da se razumijemo, predložena metoda za provjeru parametra nije najuspješnija.

Prvo, ako korisnik greškom navede nepostojeći naziv datoteke kao parametar, batch datoteka će biti zadovoljena i pokušat će kompilirati. Ispravniji način je provjeriti postoji li takva datoteka. Da biste to učinili, naredbeni jezik MS-DOS nudi posebnu riječ postojati. Zato bi bilo bolje napisati: ako postoji %1.hpj ide na kompajliranje.

Drugo, aktivno korištenje naredbe ići(tzv. bezuvjetni skok) i oznake uvelike zbunjuju kod. Tehnički, oni uopće nisu loši, ali otklanjanje pogrešaka i održavanje batch datoteke napisane u ovom stilu prilično je nezgodno. Stoga su programeri dugo vremena bezuvjetni skok smatrali nepoželjnom tehnikom. Ispod je ispravnija, sa stajališta stila programiranja, strukturirana verzija, koja koristi konstrukciju ako… inače. Radi ovako: ako je uvjet istinit, naredbe u zagradama iza ako, a ako je netočno, onda u zagradama nakon drugo.

rem Provjerite je li parametar postavljen

ako ne postoji %1.hpj (

rem Put do pomoći kompajleru datoteka

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Put do direktorija u kojem se nalaze projekti datoteke pomoći

postavi put_projekta=e:\rad\projekti\projekti pomoći

rem Pozvati prevodilac za obradu određenog projekta,

%help_compiler% %project_path%\%1.hpj

Evo još jednog primjera rada s čekovima. Sljedeća batch datoteka stvara direktorij pod nazivom datoteke pomoći(pretpostavimo, da u njega učitamo kompajlirane datoteke pomoći). Istodobno, ako direktorij s tim imenom već postoji (a vjerojatno sadrži stare datoteke pomoći koje ne biste htjeli izgubiti: što ako se novi pokažu lošiji?), batch datoteka dodjeljuje ekstenziju bak za to. Ali ako imenik datoteke pomoći.bak već postojao, onda ga batch datoteka briše (pretpostavljamo da nam je dovoljna jedna sigurnosna kopija).

ako postoje help-files.bak rd help-files.bak

ako postoje datoteke pomoći ren datoteke pomoći help-files.bak

Skupna obrada datoteka. za zapovijedanje

Naredba for vam omogućuje organiziranje izvršavanja ponovljenih radnji iste vrste. Možete ga koristiti za prikaz brojeva od jedan do deset, kao što je prikazano na sljedećem popisu.

za /l %%i u (1,1,10) odjeknite %%i

Varijabilna i zove brojač ciklusa. Zbog posebnosti sintakse naredbe za, naziv brojača petlje mora biti jedno slovo. Štoviše, ako pišemo batch datoteku, tada se ispred naziva brojača petlje mora staviti znak dvostrukog postotka, ali ako jednostavno upišemo naredbu u naredbeni redak, onda jednu.

Logika ove naredbe je sljedeća. Nakon riječi u naveden je raspon brojača ciklusa. U ovoj verziji naredbe, ovo je trostruki broj: početna vrijednost brojača, korak brojanja, granična vrijednost brojača. Prilikom izvršavanja naredbe, ljuska će prvo dodijeliti varijablu i značenje 1 , a zatim će ga na svakom koraku petlje povećati za 1 dok ne premaši 10 . Očito će biti deset takvih koraka. Ako smo kao korak brojanja naveli broj 2 , tada bi se petlja izvršila pet puta. U svakom koraku petlje izvršava se tijelo petlje, napisano nakon riječi čini. U gornjem primjeru, ovo je naredba echo, koja ispisuje trenutnu vrijednost brojača petlje na ekran.

Vjerojatno možete doći u situaciju da je takvo nešto zapravo potrebno, ali obično naredba za koristi se za ponavljanje i obradu datoteka. Moram reći da se u prilično jednostavnim slučajevima masovna obrada datoteka izvodi pomoću zamjenskih znakova. Ako, želimo zamijeniti ekstenziju svih datoteka u trenutnom direktoriju s .htm na .html, unosimo naredbu ren *.htm *.html. Ali ako istu stvar treba učiniti ne u jednom imeniku, već u stablu direktorija, tada je naredba for neophodna. Sljedeća batch datoteka izvodi ovu operaciju na svim .htm datotekama u poddirektoriju web stranice trenutnog direktorija. Točnije, u cijelom stablu imenika koje se nalazi unutra web stranica.

za /r web mjesto %%i u (*.htm) napravite %%i %%~ni.html

Ključ /r ukazuje na potrebu prelaska preko imenika web stranica i sve njegove nutrine. Ako nije naveden (ali tada ni imenik nije dopušteno navesti), tada će se obraditi samo datoteke u trenutnom direktoriju. Raspon vrijednosti za brojač ciklusa u ovoj verziji naredbe je skup svih datoteka s ekstenzijom .htm, koji se nalazi unutar direktorija (točnije, stabla) web stranica. Čudno na prvi pogled ~ni znači da iz vrijednosti varijable i potrebno je samo istaknuti naziv datoteke. Naredbeni jezik MS-DOS nudi nekoliko takvih modifikatora, kao što je pisanje ~xi označava ekstenziju datoteke. Svi modifikatori opisani su u pomoći naredbe. za.

Tijelo petlje može se sastojati od nekoliko naredbi zatvorenih u zagradama.

za /r web mjesto %%i u (*.htm) učiniti (

rem Ispiši naziv datoteke

rem preimenuj datoteku

ren %%i %%~ni.html

Prenesite kontrolu na drugu batch datoteku. naredba poziva

Moguće je pozvati drugu batch datoteku iz jedne batch datoteke. Za ovo, naredba poziv. Zanimljivo je da su varijable postavljene u pozivnoj batch datoteci "vidljive" pozvanoj. I obrnuto, nakon što pozvana datoteka završi svoj rad i vrati kontrolu pozivatelju, potonji će "vidjeti" varijable koje mu je ostavilo prozvano "nasljeđivanje". To omogućuje programeru batch datoteka da djeluje, na primjer, na sljedeći način. Ako nekoliko batch datoteka mora koristiti iste vrijednosti, recimo, staze do nekih datoteka, one se mogu premjestiti u zasebnu batch datoteku, koja će igrati ulogu konfiguracijske datoteke. Svaka radna batch datoteka počet će s konfiguracijskim pozivom. Prednost je u tome što kada promijenite staze, morate napraviti promjene samo u jednoj konfiguracijskoj datoteci, a ne u velikom broju radnika.

"konfiguracijska" batch datoteka config.bat.

rem Put do pomoći kompajleru datoteka

set help_compiler="c:\Program Files\HTML Help Workshop\hhc.exe"

rem Put do direktorija u kojem se nalaze projekti datoteke pomoći

postavi put_projekta=e:\rad\projekti\projekti pomoći

"Radna" batch datoteka.

rem Postavite varijable

rem Provjerite je li parametar postavljen

ako ne postoji %1.hpj (

rem Ako je parametar prazan, izdajte poruku o pogrešci

echo Ne postoji takav projekt datoteke pomoći.

rem Ispod su naredbe za kompilaciju

rem Pozvati prevodilac za obradu određenog projekta,

rem čije ime prosljeđujemo u prvom parametru

%help_compiler% %project_path%\%1.hpj

Prilikom rada na računalu često postaje potrebno ponavljati iste DOS naredbe za izvođenje periodično izvršavanih radnji, izgradnju složenog i višerazinskog niza izvršnih naredbi ili aplikacija, automatizirati rad s aplikacijama i datotekama sa ili bez korisnika. Operativni sustav ima mogućnost pisanja nekoliko naredbi u bat datoteku. U isto vrijeme, jednostavnim pokretanjem ove batch datoteke (koje se često naziva skripta ili jednostavno "batch datoteka"), možete izvršiti propisane naredbe, a upisivanjem u događaje Windows planera možete automatizirati ovaj proces .

Značajka datoteka ove vrste je odsutnost bilo kakvog koda unutra - postoje samo informacije o satu koje čita i izvršava DOS naredbeni procesor, koji je kompatibilan s gotovo svim verzijama operacijskog sustava Windows. Jedan od najjasnijih primjera je datoteka autoexec.bat, koja je neophodna za pokretanje ovog OS-a, budući da ga on konfigurira tijekom pokretanja.

Ključne značajke batch datoteka

Naredbe koje sadrži bat datoteka mogu se uvjetno podijeliti u nekoliko grupa prema njihovoj funkcionalnosti:

Dizajniran za prikaz određene vrijednosti, fraze, aplikacije ili informacije na ekranu;
- za pokretanje paketnih dokumenata;
- za rad s ciklusima;
- stvoriti grananje izvršenja koristeći uvjete;
- za rad s aplikacijama.

Izvršavanje batch datoteka

Bat datoteke se mogu pokrenuti na razne načine. Kada radite u trenutnom direktoriju, možete jednostavno unijeti nazive datoteka sa ili bez dodatnih opcija. U tom slučaju, naredbe bat-datoteka nakon pokretanja će se izvršavati uzastopno jedna za drugom, već bez intervencije korisnika.

Kada se batch datoteka nalazi u drugom direktoriju, potrebno je, osim punog naziva te datoteke, navesti i puni put do direktorija u kojem je pohranjena. Ekstenzija datoteke također se može izostaviti. Na primjer, trenutni direktorij je d:\photo\work, a batch datoteka vera.bat koja se izvršava s opcijama resize.doc i /p nalazi se u direktoriju d:\photo\home. Zatim, da biste pokrenuli našu datoteku, trebate napisati naredbu d:\photo\home\vera resize.doc /p ili naredbu ..\home\vera resize.doc /p.

Prekid rada

Naredbe bat datoteke koje se izvršavaju nakon pokretanja mogu se prekinuti kombinacijama gumba +i +. Zaslon će od vas tražiti da prekinete batch datoteku s upitom koji čeka na Da ili Ne. Ako unesete Y, izvođenje će biti prekinuto, a preostali popis naredbi u bat datoteci će biti zanemaren. Ako unesete znak N, izvršavanje će se nastaviti sljedećom naredbom s popisa.

Pozivanje druge batch datoteke

Bat datoteke mogu sadržavati veze na izvršavanje drugih skripti. Ako jednostavno upišete bat datoteku u tijelo skripte, naredbe nakon nje više se neće izvršavati, budući da se kontrola prenosi na drugu batch datoteku i naredbe iz nje će se izvršavati. Ako je povratak potreban nakon pokretanja interne datoteke, tada se može pozvati naredbom CALL. Format naredbe je: CALL bat-file-name [opcije pokretanja].

Parametri koji se prosljeđuju u pozvanu skupnu datoteku(e) obično su znakovi %1 - %9. Kada su sve naredbe bat-datoteke uzastopno proslijeđene, izvođenje izvorne skripte nastavit će se od sljedećeg retka.

Zakoračivši

Postoje slučajevi kada se naredbe bat-datoteke moraju izvršavati korak po korak (sa zaustavljanjem nakon svakog retka). Najčešće je ovaj način potreban prilikom otklanjanja pogrešaka ili testiranja skripti. Pisanje naredbe izgleda ovako: COMMAND /y/c script_name [options].

Kada se izvrši, za svaku naredbu će se izdati zahtjev Y ili N. Ako je naredba potrebna, pritisnite tipku Enter ili Y. Ako trebate preskočiti naredbu, pritisnite ESC ili N.

Onemogućavanje i omogućavanje izlaza naredbi na ekranu

Kada se bat datoteka pokrene, naredbe se prikazuju na zaslonu red po redak prije nego što se izvrše i zatim izvrše. Ponekad to uzrokuje neugodnosti, jer se s velikom batch datotekom naredbe pokreću ispred korisnika na ekranu u dugačkom popisu, a ponekad ih je potrebno prikazati, na primjer, za dijalog ili otklanjanje pogrešaka. Za prikaz naredbenog bat datoteke koristi se naredba ECHO ON. Da biste onemogućili ovaj način rada, unesite ECHO s parametrom OFF. U tom slučaju, sve naredbe koje se dalje izvršavaju neće biti prikazane na ekranu.

Da biste onemogućili prikaz samo jednog retka batch datoteke na zaslonu, možete koristiti simbol @ na samom početku ovog retka. Najčešće se ovaj simbol može pronaći zajedno s naredbom @ECHO OFF kako bi se spriječilo njegovo prikazivanje na zaslonu monitora. Ovaj način često koriste napadači, stvarajući viruse na temelju bat datoteka ili isporučujući manje i veće probleme korisnicima računala.

Poruke o izvršavanju naredbi

Ako se znakovi koji nisu ON ili OFF nalaze iza naredbe ECHO, bit će prikazani u bilo kojem načinu rada. Ako je ECHO bez parametara, tada prikazuje status moda za prikaz izvršnih naredbi - uključeno ili isključeno.

Ako želite, možete čak i igrati (škripati) računalo pomoću bat datoteke. Naredbe, čiji su primjeri navedeni u nastavku, temelje se na iskazu ECHO s dodatkom posebnih znakova.

Za reprodukciju zvučnog signala morate prikazati standardni znak s kodom 7. To možete učiniti pritiskom na tipku i "7" na numeričkoj tipkovnici (s oznakom home).

Kako biste poboljšali čitljivost poruka, možete koristiti naredbu ECHO s "." (stavlja se odmah iza naredbe bez razmaka) ili poseban znak s kodom 255. Na ekranu će to izgledati kao prazan redak.

Naredba ECHO može se koristiti za izlaz poruka u zasebnu datoteku. Njegova je bit preusmjeriti izlaz poruka na zapis u datoteku, a ne na ekran monitora. Za spremanje zapisnika, anketiranja, snimanja događaja možete koristiti bat. Izlazne naredbe imaju sljedeći format:

ECHO poruka >> naziv datoteke - naredba dodaje redak na kraj postojeće datoteke. Ako u danom direktoriju nema takve datoteke, kreira se nova datoteka.

ECHO poruka > naziv datoteke - ova naredba stvara novu datoteku i u nju se upisuje trenutni redak. Ako postoji takva datoteka u trenutnom direktoriju, njezin će sadržaj biti obrisan i naredba ili njezin rezultat bit će napisana.

Korištenje komentara

Za praktičnost uređivanja skripti koristi se naredba REM. Sve naredbe bat-datoteke nakon nje Windows zanemaruje tijekom izvršavanja. Možete ih vidjeti prilikom uređivanja i kada prolazite kroz njih. U svim ostalim slučajevima, komentari neće biti prikazani na ekranu.

Naredba odgode u bat datoteci

Ponekad, tijekom izvršavanja batch datoteke, postaje potrebno privremeno zaustaviti izvršavanje naredbi, na primjer, pričekati reakciju korisnika, povećati vrijeme za čitanje dugačke poruke, umetnuti disk, potvrditi prisutnost korisnika, ili za otklanjanje pogrešaka u batch datoteci. Naredba odgode u bat datoteci je zapisana kao PAUSE bez parametara. Ovo će prikazati poruku poput "Pritisnite bilo koju tipku za nastavak" i skripta će pauzirati dok se ne pritisne tipka na tipkovnici. Ako je kombinacija pritisnuta +ili +, tada će sustav to shvatiti kao završetak izvršne datoteke i izdati zahtjev za potvrdu završetka svog rada: „Prekinuti izvršavanje batch datoteke? (Da/N)". Ako pritisnete tipku Y, tada će skripta biti prekinuta u ovom trenutku i sve preostale neizvršene naredbe će biti zanemarene. Kada se pritisne N, izvršenje će se nastaviti sljedećom naredbom. Kada se pauzira, pritiskom na bilo koju drugu alfanumeričku tipku, kao i na "Space" i "Enter", izvršavanje izvršne datoteke nastavit će se sljedećom naredbom.

popis datoteka

Za uzastopno izvršavanje nekoliko datoteka s popisa koji se nalazi u istom direktoriju, možete koristiti i .bat datoteku. Naredbe "pokreni program po imenu" i "pokreni program prema ekstenziji datoteke" često mogu pomoći u automatizaciji obrade dokumenata, kao što je razvrstavanje privitaka pošte. Razlikuju se u parametrima za naredbu FOR. Format za njegovo pisanje je dat u nastavku:

ZA %x IN (popis datoteka) naredba DO, gdje je:

X - bilo koji znak, osim brojeva od 0 do 9;

Popis - nazivi datoteka odvojeni razmakom ili naziv jedne datoteke; u ovom slučaju možete koristiti posebne znakove "?" i "*" za zamjenu od jednog do nekoliko znakova u nazivu datoteke;

Naredba - bilo koja DOS naredba ili program, osim FOR; ako postoji potreba za korištenjem FOR, tada umjesto %x trebate navesti %%x.

Kada koristite ovu naredbu za pisanje .bat datoteka, imajte na umu da nazivi u programima DOS formata imaju ograničenje duljine imena. Kako biste naredbu FOR prebacili na rad s dugim nazivima datoteka, ne smijete zaboraviti pokrenuti naredbu LFNFOR ON prije nje kako biste omogućili način rada s dugim nazivima i LFNFOR OFF da biste je onemogućili i vratili na standardnu ​​duljinu datoteke.

Mnoge funkcije s programima, kao što je usporedba datoteka s određenim vrstama ekstenzija koje se nalaze u jednom direktoriju s datotekama istih vrsta iz drugog direktorija, kopiranje svih datoteka u trenutnom direktoriju u drugi, uzastopno izvršavanje datoteka s ekstenzijama određene vrste i imena koji počinju brojevima, može se izvršiti samo jednom naredbom unesenom u bat datoteku. Pokretanje programa može se kombinirati sa zahtjevima korisnika, što poboljšava praktičnost rada s podacima.

prijelazi u bat datotekama

Radi praktičnosti upravljanja redoslijedom po kojem se naredbe pokreću u bat-datotekama, često koriste prijelazne naredbe i oznake pomoću kojih se ti prijelazi izvode.
Oznaka je bilo koji red u izvršnom fajlu koji počinje dvotočkom. Naziv oznake je skup znakova nakon dvotočke do kraja retka, odnosno do prvog razmaka, nakon čega se zanemaruje ostatak retka, što se može koristiti kao komentar na oznaci skoka.

Naredba jump ima pravopis GOTO s nazivom oznake odvojenim razmakom. Ako nema parametra ili ako naziv oznake nije pronađen u naredbenoj datoteci, skripta prestaje raditi na ovoj naredbi. Primjer:

REM (obavezne naredbe se izvode).

U ovom primjeru, sekvencijalno izvršenje batch datoteke, kada dosegne GOTO zzz, skače na oznaku :zzz i nastavlja s REM, zanemarujući sve između upute za skok i navedene oznake.

Uvjeti korištenja pri radu s bat datotekama

Bat datoteka može ili ne mora izvršavati naredbe ovisno o različitim uvjetima ako koristi provjeru događaja IF. Format ove naredbe izgleda kao "naredba IF uvjeta".

Uvjet je niz izraza:

ERRORLEVEL number - ako je prethodni izvršni program završio s izlaznim kodom jednakim ili većim od navedene numeričke vrijednosti, uvjet će biti istinit.

RED 1 == RED 2 - ako se nizovi u potpunosti podudaraju, uvjet postaje istinit. Umjesto nizova, možete zamijeniti znakove %0 - %9, tada će se usporediti parametri batch datoteke.

EXIST - naziv datoteke - ako navedena datoteka postoji, tada je uvjet istinit.

NOT - uvjet — ako je navedeni uvjet lažan, tada ćemo na izlazu naredbe dobiti pravu vrijednost.

Korištene naredbe u bat datotekama

Ako kliknete gumb "Start" i pokrenete naredbeni redak (cmd), možete vidjeti sve što je umetnuto u bat datoteku, možete ga koristiti kao alat za otklanjanje pogrešaka, kao pomoćnik, program za dobivanje informacija o naredbama. Da biste to učinili, jednostavno upišite POMOĆ. Ovo proizvodi popis naredbi s kratkim opisima za njih. Za detaljnije informacije možete unijeti HELP s nazivom željene naredbe.

Korištenje bat datoteka prilikom sigurnosnog kopiranja podataka

Batch datoteke uvelike pojednostavljuju život administratorima sustava u njihovom svakodnevnom radu. Njihov najčešći opseg je stvaranje, brisanje, preimenovanje i još mnogo toga. Sve se to temelji na korištenju naredbe COPY bat file. Na primjer, možete stvoriti program koji arhivira kopije dokumenata iz odabrane mape s korisničkim podacima u određenim formatima, isključujući, recimo, velike medijske datoteke, pružajući sigurnosnu kopiju u mapi s korisničkim imenom i nazivajući je "Command_copy_files. šišmiš". Nakon toga potrebno je osigurati njegovo pokretanje u određeno vrijeme pomoću ugrađenog planera ili samim programom i na taj način osigurati sigurnost korisničkih podataka.

Korištenje bat-datoteka (inače - "batch file", "batch file") često vam može olakšati rad, na primjer, automatizirati instalaciju softvera, prema unaprijed određenim parametrima; sinkronizacija datuma i vremena; izvođenje sekvenci naredbi i tako dalje. Međutim, da biste koristili takve skripte, morate ih moći izraditi. U svojoj srži, datoteke s ekstenzijom .bat skup su konzolnih naredbi, istih kao i one koje se koriste u naredbenom retku.

Članak govori o tri metode za stvaranje .bat datoteka:

  1. Korištenje naredbenog retka.
  2. Korištenje Notepad-a.
  3. Korištenje uslužnog programa Dr.Batcher.

Korak 1. Za pokretanje naredbenog retka u izborniku Start koristite dijaloški okvir "Traži programe i datoteke". Parametar pretraživanja morate postaviti na cmd i lijevom tipkom miša kliknuti na ikonu u odjeljku "Programi".

Korak 2 Preporuča se korištenje zasebnog direktorija za pohranu napisanih batch datoteka, stoga odaberite mjesto na tvrdom disku i kreirajte posebnu mapu unosom naredbe "MD D:\Bat".

Napomenu! Naredba se upisuje bez navodnika, razmak se stavlja tek nakon upotrebeDOKTOR MEDICINE. U ovom slučaju, mapa pod nazivom « Šišmiš"bit će kreirana na diskuD. Naredbeni redak ne razlikuje velika i mala slova, tj. rezultat je izvršavanja "MDD:\Šišmiš", "doktor medicineD:\Šišmiš" i "doktor medicined:\Šišmiš" bit će isti.

Korak 3 Izradite stvarnu batch datoteku naredbom "@echo off > D:\Bat\probnik.bat".

Napomenu! U ovom slučaju, velika je veličina važna pri određivanju putanje lokacije, odnosno mape "šišmiš", "Šišmiš" i "BAT" - tri neovisna i potpuno različita imenika. Ako pokažete na nepostojeću mapu, naredba se neće izvršiti. Imajte na umu da neće biti ni poruke o pogrešci.

4. korak Da biste promijenili sadržaj datoteke, otvorite njezino mjesto pohrane, pozovite kontekstni izbornik i odaberite redak "Promijeni".

Napravite batch datoteku s Notepadom

Korak 1. Da biste pokrenuli bilježnicu, idite na izbornik "Svi programi", stavku "Dodatna oprema" i kliknite na ikonu za pokretanje.

Korak 2

Naučite kako stvoriti datoteku bez puno znanja o programiranju u novom članku -

Kao primjer, predlažemo da koristite sljedeći kod koji prikazuje sliku zvijezde:

« @eho isključen

mod con cols=32 reda=50

naslovna zvijezda!

za %%i u (

88888888888888881888888888888888,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

) odjeknite %%i

pauza > null

Pažnja! Kod se mora unijeti bez navodnika. Uvijek provjerite sintaksu za pisanje naredbi. Ako zaboravite staviti zarez na kraj bilo kojeg retka, kada pokrenete program, on će se spojiti sa sljedećim.

Korak 3 Spremite dobivenu datoteku u željeni direktorij. Da biste promijenili dopuštenje, koristite redak "Vrsta datoteke", u njemu odaberite "Sve datoteke", a prilikom unosa naziva, nakon točke, navedite "šišmiš".

Izrada batch datoteke pomoću "dr.dozator"

Navedeni softverski proizvod se plaća, ali pruža mogućnost korištenja testne verzije 30 dana.

Korak 1. Da biste stvorili datoteku, koristite izbornik "Datoteka", stavku "Novo ..." ili kombinaciju tipki "Ctrl + N".

Korak 2 U dijaloškom okviru označite "Empty Batch File" i kliknite "OK".

Korak 3 Odredite koje naredbe bat datoteka treba izvršiti.

Napomenu! Desni okvir sadrži ključne naredbe koje možete koristiti prilikom pisanja koda. Sve što trebate učiniti je odabrati onu koju želite i kliknuti na gumb.UmetnutiCommand", što pomaže u uštedi vremena pri radu.

4. korak Spremite dobivenu datoteku u željeni direktorij.

Važno! Imajte na umu da vam ovaj uslužni program omogućuje ispravljanje pogrešaka programa u hodu. Dovoljno je koristiti izbornik "Batch" za početak već unesenog niza. Napredak se prikazuje u donjem okviru. Kada koristite "IzvršitiuVanjskiWindow…” pokrenut će se batch datoteka, slično kao što se pokreće pomoću operativnog sustava.

Zaključak

Opisali smo tri načina za stvaranje .bat datoteka. Dvije od ovih metoda su standardne metode dostupne u sustavu Windows, a jedna zahtijeva instaliranje dodatnog softvera. Ocjena svake od metoda data je u sažetoj tablici.

Informacije\ImeNaredbeni redakBilježnicadr. Batcher
LicencaIsporuka uz WindowsIsporuka uz WindowsPlaćeno
ruski jezikOvisno o verziji sustava WindowsOvisno o verziji
Napravite batch datotekuDaDaDa
Batch uređivanje datotekaNeDaDa
Jednostavnost korisnika (od 1 do 5)4 4 5

Video - Stvaranje datoteke Bat

Vrhunski povezani članci