• Dom
  • Programi
  • komande bat fajlova (Windows). Kako kreirati .bat fajl? Čemu služe ovi fajlovi?

komande bat fajlova (Windows). Kako kreirati .bat fajl? Čemu služe ovi fajlovi?

U ovom članku:

  • Definicija varijabli
  • Varijable komandne linije (parametri poziva bat-fajla)
  • Izjava uslova IF
  • Funkcije
  • Korištenje povratnih vrijednosti (Rukovanje kodom za izlaz iz programa)

Definicija varijabli

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

SET izraz je proširenje opcija u operativnom sistemu. On specificira varijablu čija se vrijednost zamjenjuje njenim 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čunara):

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 okruženja i vidljive su nakon izvršenja sve dok se DOS ne pokrene ponovo (osim ako se ručno ne modificira u memoriji). Odnosno, može se koristiti iz jedne batch datoteke ili programa nakon što se specificira u drugom. Najpoznatija je varijabla PATH, koja je skup putanja za brzo pronalaženje datoteka. Postavlja se u datoteci autoexec.bat.

Varijable komandne linije
(parametri poziva bat-fajla)

%<цифра 0-9>

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

Ukupno, može postojati 10 istovremeno postojećih nezavisnih varijabli. Ovo 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 komandne linije. Varijabla %0 će sadržavati ime .bat datoteke i, ako je navedeno, putanju do nje. To jest, ako pokrenete abc.bat datoteku 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 široko koristi za kreiranje generičkih batch datoteka kada se radi o operacijama koje se ponavljaju.

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

Naredba SHIFT dozvoljava korištenje više od 10 opcija komandne linije.Međutim, ranije opcije se gube u skladu s tim. 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 promjenljive %2 prije pomaka. Međutim, ova operacija je nepovratna, odnosno nemoguće je vratiti varijable.

Izjava uslova IF

Na sreću, ljuska cmd.exe modernog Windowsa 2000 i novijih podržava komandne blokove u konstrukcijama grana, što eliminiše potrebu za označenim IF-ovima. Komandni 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:

@echo off

setBUILDMODE=%1

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

Echo FAIL: Potreban je argument ^(--debug, --release^)

Izlaz /b 1

rem Uklonite sve crtice iz argumenta da 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 uvek, život nije tako lak kao što se čini. Postoji jedan problem. Varijable koje se koriste u blokovima then i else se proširuju prije nego što ti blokovi počnu izvršavati, a ne za vrijeme izvršenja. U datom primjeru to ne uzrokuje nikakve probleme, ali će u sljedećem:

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

Echo INFO: Postavljanje načina za otklanjanje greš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 tokom izvršavanja ovog bloka. Shodno tome, vrijednost koju je OPTFLAGS imao na početku izvršavanja ovog if-bloka bit će zamijenjena u CCFLAGS.

Ovaj problem je riješen korištenjem odloženog proširenja varijable. Promenljive zatvorene u !…! umjesto %…% , biće proširene na svoje vrijednosti samo u trenutku direktne upotrebe. Ovaj režim je podrazumevano onemogućen. Možete ga omogućiti korištenjem /V:ON prekidača kada pozivate cmd.exe ili korištenjem naredbe:

u tekstu samog bat fajla. Drugi način mi se čini zgodnijim - nije baš cool zahtijevati od nekoga da pokrene vašu skriptu sa određenim parametrom.

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

setlocal enabledelayedexpansion

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

Echo INFO: Podešavanje okruženja režima za otklanjanje grešaka

Postavite OPTFLAGS=/Od

Postavite CCFLAGS=!OPTFLAGS! /MDd /Z7

) drugo (

Echo INFO: Podešavanje okruženja za način oslobađanja

Postavite OPTFLAGS=/O2

Postavite CCFLAGS=!OPTFLAGS! /MD

Sada je ovo gotovo punopravni blok ako-onda-drugo. Gotovo, jer ako u jednoj od naredbi echo naiđete na zagradu za zatvaranje, onda je morate pobjeći znakom ^, inače će se parser zbuniti...

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

Funkcije

Da li je moguće kreirati funkciju u bat fajlu? Da, možeš. Štaviše, ponekad je čak i neophodno. Istina, može se uslovno nazvati funkcijama.

Postoji posebna sintaksa za naredbu call, koja vam omogućava da skočite na oznaku u istoj bat datoteci, pamteći mjesto sa kojeg je ovaj poziv upućen:

call:label argumenti

Povratak iz funkcije se vrši 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 komandnu liniju:

poziv/?

Izlaz /?

Zanimljivo je da naredba call sa ovom sintaksom podržava rekurzivne pozive sa automatskim kreiranjem novog okvira za varijabilne argumente %0-%9. Ponekad ovo može biti od pomoći. Evo klasičnog primjera rekurzivnog faktorskog izračunavanja u komandnom jeziku:

@echo off

poziv: faktorski %1

echo %RESULT%

Izlaz

rem Funkcija za izračunavanje faktorske vrijednosti

rem Prijava:

rem %1 Broj za koji želite da izračunate faktorijel

rem izlaz:

rem %RESULT% Faktorska vrijednost

:faktorski

ako je %1 == 0 (

Postavite RESULT=1

Izlaz /b

ako je %1 == 1 (

Postavite RESULT=1

Izlaz /b

postavi /a PARAM=%1 - 1

poziv: faktorski %PARAM%

postavi /a REZULTAT=%1 * %RESULT%

izlaz /b

Primjer rada:

> factorial.bat 10

3628800

Korištenje povratnih vrijednosti
(obrada izlaznog koda programa)

Svaki program na kraju svog rada vraća operativnom sistemu šifru svog završetka. Uobičajeno je vratiti nulu nakon uspjeha, inače šifru greš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 fajlu. Na primjer, program vraća kod pritisnute tipke, a .bat datoteka na njoj izvodi različite radnje.

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

Primjer batch datoteke sa nivoima grešaka:

@ECHO OFF

REM Pokrenite program prg1.exe

PRG1.EXE

Analiza REM izlaznog koda

AKO GREŠKA NIVO 2 IDI NA FILENOTFOUND

AKO GREŠKA NIVO 1 IDI NA WRITEERROR

AKO NIVO GREŠKE 0 IDI NA IZLAZ

GOTO ONEXIT

:DATOTEKA NIJE PRONAĐENA

ECHO Greška! Datoteka nije pronađena!

GOTO ONEXIT

:WRITEERROR

ECHO Greška pri pisanju!

GOTO ONEXIT

:EXITOK

ECHO program je uspješno završen.

GOTO 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 nivo greške veći ili jednak vrijednosti, onda ...". To jest, ako provjerimo počevši od nule, bilo koja vrijednost će biti istinita u prvom redu, što nije tačno.

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

BAT datoteke su tekstualni dokument sa posebnom ekstenzijom. U njega se upisuju komande za njihovo naknadno izvršavanje na komandnoj liniji. Pokretanjem datoteke aktivirate CMD program, on čita komande koje se uzastopno izvršavaju. Na ovaj način možete olakšati rad sa komandnom linijom, a da pritom zadržite željeni redosled. Naravno, možete ručno unijeti sve naredbe odjednom u komandnu liniju, međutim, ako trebate ponoviti iste operacije, mnogo je zgodnije to učiniti pokretanjem automatskog čitanja liste napisane u obliku šišmiša dokument. Ova opcija je također praktična i zgodna po tome što kasnije možete promijeniti redoslijed, dopuniti novim procesima koji su vam potrebni, a također i ukloniti nepotrebne.

BAT pomaže da se automatizuju procesi: pokretanje programa, arhiviranje, pravljenje rezervnih kopija. Stoga je korisno znati kako sami kreirati bat datoteku, ispraviti je i dopuniti.

Rad sa palicom preko Notepad-a

Algoritam kreiranja

Proces rada kroz Notepad nije nimalo komplikovan. Ako to nikada ranije niste radili, onda to možete učiniti prilično dobro tako što ćete naučiti kako kreirati bat datoteku i dodati joj komande. Počnimo sa stvaranjem. Ovdje nastavite striktno prema algoritmu:

  1. Kreirajte tekstualni dokument, u početku ćete ga dobiti sa ekstenzijom txt. Ovu operaciju možete izvesti na nekoliko načina, neki ovise o nivou Windowsa koji ste instalirali:
    • U fascikli koju ste odabrali, kliknite desnim tasterom miša na polje, otvoriće se meni, tamo izaberite "Kreiraj" - "Tekstualni dokument";
    • Pokrenite "Notepad" kroz "Start" odabirom "Svi programi" - "Dodatna oprema" - "Beležnica" (za Windows 7);
    • U kasnijim (nakon 7) verzijama Windowsa, možete otvoriti i Notepad preko "Start": prođite kroz "Sve aplikacije", zatim "Standard" - "Windows" i odaberite "Notepad" na listi;
    • Pozovite sistemski komandni prozor pomoću kombinacije Win + R, unesite "bilježnicu" u red, kliknite "U redu".
  2. Unesite tekst naredbe. Za test, zapišite, na primjer, "START taskmgr.exe" - pokrenite upravitelj zadataka. "START" govori tumaču komandi da pokrene program, nakon čega slijedi izvršna datoteka programa.
  3. Odredite putanju na koju želite da sačuvate kreirani dokument.
  4. Navedite u prozoru za spremanje:
    • u redu "Vrsta" - "Sve datoteke";
    • u red "Naziv" unesite naziv i ekstenziju bat, dodajući ga iza imena, stavite tačku između imena i ekstenzije, na primjer "file.bat".
  5. Kliknite na "Sačuvaj".

Batch datoteka sa ekstenzijom .bat će se pojaviti u folderu koji ste naveli.

Pokretanje fajla

Lakše je otvoriti bat datoteku dvostrukim klikom miša na nju. Drugi način je pokretanje iz komandne linije: unesite adresu na kojoj se nalazi dokument sa ekstenzijom .bat koji ste sačuvali.

Uređivanje

Ako želite promijeniti dokument - dodati komande u bat-datoteku, obrisati neke od njih, uneti drugi program za naknadni rad s njim - to nije teško učiniti. Otvorite dokument pomoću uređivača teksta. Zgodno je to učiniti desnim klikom na bat datoteku, odaberite "Uredi" u meniju koji se otvori. Notepad će se pokrenuti - tamo možete uređivati ​​komande, mijenjati sadržaj, unositi dodatke.

Aplikacija Dr.Batcher

Za početnika koji tek počinje da radi sa interpretatorom komandi, koji ga koristi prilično retko, dovoljan je Notepad. Ako želite da dosegnete viši profesionalni nivo, preporučujemo korištenje Dr.Batcher uslužnog programa. U Dr.Batcheru možete numerisati stranice, postoji podrška za bookmark, lista sistemskih komandi koje se koriste u bat-u, unete komande su istaknute.

Kreiranje 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.

Pokreni Dr. Batcher.

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

Uređivanje

Ako trebate promijeniti bat fajl, Dr.Batcher to radi na nekoliko načina:

  1. Kliknite desnim tasterom miša na ikonu, iz menija izaberite "Uredi sa Dr.Batcherom".
  2. Pokrenite Batcher. Otvorite željenu bat datoteku slijedeći putanju:
  • "fajl";
  • "otvoreno";
  • odredite putanju do dokumenta;
  • "Otvoreno".

Prateći jednu od predloženih putanja, otvorit ćete uslužni program, u prozoru će se pojaviti tekst u kojem možete izvršiti podešavanja, promijeniti komande, dopuniti ih i izbrisati nepotrebne.

Bat datoteka je zgodna kada trebate automatizirati zadatke u Windowsu. Pogotovo ako je potrebno izvršiti radnje nekoliko puta (periodično ili uzastopno) u određenom algoritmu. Ovo je obično potrebno prilikom kreiranja sistema direktorijuma, prilikom masovnog preimenovanja datoteka i drugih jednostavnih i složenijih operacija. Nakon što ste sačuvali redoslijed radnji, možete brzo i bez nepotrebnog gubitka vremena za ručno unošenje 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 bat datoteku pomoći će vam ne samo da ih sami kreirate, već i uredite.

Svako može pisati bat fajlove!

komandni procesor

Mnogi operativni sistemi, uključujući i one koje je razvio Microsoft, uključuju komandni procesor. Ovo je naziv programa koji pokreće izvršavanje različitih radnji kao odgovor na komande koje korisnik unese sa tastature. U osnovi, ove akcije se sastoje u pokretanju potrebnih programa s određenim parametrima. Ali ne samo; kasnije ćemo vidjeti da se neke komande izvršavaju direktno od strane ljuske. U osnovi, to su naredbe koje služe za kontrolu konteksta i redoslijeda izvršavanja naredbi. Međutim, nećemo previše razmišljati o prirodi komandi, barem ne nepotrebno. Još jedna stvar je važnija: svaki program koji je tehnički moguće pokrenuti iz komandne linije komandni procesor smatra komandom. Ne pravi razliku između "nativnih" komandi koje su prvobitno ugrađene u operativni sistem i programa koji su instalirani na njemu.

Za pokretanje komandnog procesora:

    Kliknite na dugme Počni. Glavni meni će biti prikazan na ekranu.

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

    U polje Open unesite string cmd.

    Kliknite na dugme uredu. Prozor komandnog procesora će biti prikazan na ekranu.

Komandna linija i komande

Prozor školjke u svom izvornom obliku izgleda sumorno i nije baš zgodan za većinu ljudi. Mnogo je lakše koristiti upravitelje datoteka u stilu Norton Commandera. Oni obezbeđuju i sredstvo za brzo kretanje kroz sistem datoteka i vremensko ograničenje za unos komandi.

Za unos naredbe:

    Unesite tekst naredbe u komandnu liniju.

    Pritisnite tipku Enter.

Naredbe procesora naredbi i operativnog sistema su opisane u operativnoj dokumentaciji za potonje. Ova dokumentacija je dijelom sadržana u samom operativnom sistemu. Komanda za pristup je pomozi. Ova komanda prikazuje listu dostupnih komandi. Da biste dobili opis određene komande, kao parametar komande pomozi treba dati njeno ime. Komandna linija prikazana na sljedećem popisu prikazuje opis naredbe za.

Ako ste pokušali unijeti naredbu pomozi, onda ste vjerovatno primijetili da rezultat njegovog rada (tzv. problem) ne stane na jedan ekran. Isti problem se javlja sa tekstom opisa komande za. Dobra vijest je da se izlaz može preusmjeriti na datoteku. Komandna linija prikazana na sljedećem popisu generiše datoteku commands.txt A koji sadrži listu svih MS-DOS komandi.

pomoć > commands.txt

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

pomoć za > for.txt

Ukupno, u modernim Microsoft operativnim sistemima postoji nešto manje od 80 komandi 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 kako ih koristiti. Ove naredbe će se koristiti kasnije u primjerima. Uvijek možete provjeriti detalje na naredbi pomozi ili u priručniku.

kopija- kopiranje jednog ili više fajlova;

del- izbrisati jedan ili više fajlova;

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

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

xcopy- kopiranje stabla poddirektorija;

mkdir(skraćeno md) - kreiranje imenika;

rmdir(skraćeno rd) - brisanje direktorija.

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

premjestiti box\beer.txt tablicu

Prvo šta da se krećemo, pa onda gde da se krećemo.

Ako želimo preimenovati datoteku lena.txt da fajl natasha.txt, tada naredbu treba napisati kao što je prikazano ispod.

ren lena.txt natasha.txt

Prvo šta preimenovati, pa šta preimenovati.

trenutni imenik. Apsolutni i relativni putevi

Kada radite sa naredbama datoteka, koncept trenutnog direktorija je od najveće važnosti. Činjenica je da kada specificiramo datoteku kao parametar komande, uvijek koristimo jedan od dva moguća načina da ukažemo na njih: ili apsolutnu putanju ili relativnu putanju. U punoj putanji navodimo sve počevši od pogona (ili mrežnog imena računara), na primjer d:\misha\box\beer.txt. Koji god direktorij je aktuelan u vrijeme izdavanja naredbe, puna će se putanja podudarati s istom datotekom. Za relativnu putanju, trenutni direktorij je početna točka. Najjednostavniji slučaj relativne putanje je ime datoteke. U kontekstu izvršavanja naredbe, to znači datoteku s tim imenom koja se nalazi u trenutnom direktoriju.

Za pisanje relativne putanje do trenutnog direktorija postoji uslovna notacija . (tačka). Za pisanje relativne putanje do direktorija koji sadrži trenutni direktorij, postoji uvjetna notacija .. (dve tačke). Naredba prikazana na sljedećem popisu kopira sve datoteke u trenutnom direktoriju u direktorij komšija nalazi se pored njega.

kopiraj *.* .\susjed

batch fajlovi

Do sada smo pri davanju primjera pretpostavljali da svaki put komande unosimo ručno. Kada se obrađuje veliki broj datoteka ili kada se sistematski izvršavaju iste komande, to postaje opterećujuće. Stoga, komandni procesor pruža mogućnost izvršavanja batch datoteka. Komandna datoteka je tekstualna datoteka u koju se upisuju naredbe (ili barem jedna naredba). Primjer batch datoteke prikazan je na sljedećem popisu. Pokušajte pogoditi šta ova batch datoteka radi.

pomoć kopiraj > kopiraj.pomoć

pomoć premjestiti > pomaknuti.pomoć

premjestiti *.help msdos-help

Ako vam je svrha ove datoteke misterija, pokušajte je stvarno kreirati i izvršiti. Batch fajlovi obično dobijaju ekstenziju bat. Prema njemu, fajlove ovog tipa prepoznaje komandni procesor. Ovaj fajl se može nazvati npr. make-help.bat.

Da pokrenete batch fajl:

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

U batch fajlu, svaka komanda zauzima jedan red. Tačnije, postoji način da se jedna naredba postavi u nekoliko uzastopnih redova, za to, neposredno prije svakog prijeloma reda, stavite simbol "cap" ^ . (Svaka kapica mora biti posljednji znak u svom redu; iza njega ne smije biti razmaka ili tabulatora.) Primjer takve komande prikazan je na sljedećem popisu.

ako postoji disser.txt ^

kopiraj disser.txt ^

d:\science\papers\drafts\sources

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

Prilikom izvršavanja batch datoteke, shell je skenira od vrha do dna od prvog do posljednjeg reda i izvršava naredbe onim redoslijedom kojim ih pronađe. Izvodi ih u cjelini kao da smo svaku od njih unijeli ručno. Općenito, zato što se neke komande 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, redoslijed izvršavanja naredbi može promijeniti pomoću kontrolnih naredbi (sa čime ova potreba može biti povezana je posebno pitanje).

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

Komentiranje batch fajla i njegovo izdavanje. echo i rem komande

Batch datoteka je u suštini program napisan u jeziku ljuske operativnog sistema. Tekst programa treba da bude opremljen komentarima kako se, vraćajući se na njega nakon nekog vremena, ne bi bolno sećali čemu ovaj program služi i kako funkcioniše.

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

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

rem Generiranje datoteka pomoći

pomoć kopiraj > kopiraj.pomoć

pomoć premjestiti > pomaknuti.pomoć

premjestiti *.help msdos-help

Obratite pažnju na prazne redove po kojima je batch fajl podijeljen na "paragrafe". Ovaj jednostavan trik čini batch fajl čitljivijim.

Prilikom izvršavanja gornje batch datoteke, sve komande će biti prikazane na ekranu kako se izvrše, što nije uvijek zgodno. Izdavanje naredbi se može onemogućiti pomoću naredbe @echo off. Simbol "pas" ispred komande echo znači da se ova naredba sama mora izvršiti u "tihi" modu. Mogli bismo i da ne koristimo komandnu liniju echo off, ali stavite "pas" ispred svake komande.

U mnogim slučajevima, želite da batch fajl prikazuje određene poruke na ekranu (ili u datoteci). U nekim slučajevima to mogu biti poruke o grešci, u drugim informativne poruke koje objašnjavaju korisniku batch fajla šta se trenutno dešava, ponekad formiramo neki drugi korisni fajl sa batch fajlom. Ista echo komanda se koristi za prikaz poruka. Kao parametar, prosljeđuje se tekst izlazne poruke. Ispis poboljšane batch datoteke je dat u nastavku.

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

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

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

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

rem Generiranje datoteka pomoći

pomoć kopiraj > kopiraj.pomoć

pomoć premjestiti > pomaknuti.pomoć

rem Kreirajte direktorij za pohranjivanje datoteka pomoći

rem Premjestite datoteke pomoći u pripremljeni direktorij

premjestiti *.help msdos-help

echo Gotovo!

Prenošenje parametara u batch fajl

Pretpostavimo da želimo da kreiramo batch fajl koji prvo generiše pomoć koja opisuje komandu koju je odredio korisnik, a zatim je učitava za pregled u beležnici. Trik je da mu na neki način kažemo kada sljedeći put pokrenete batch fajl za koju smo naredbu ovog puta zainteresovani.

Da bi se riješio ovaj problem, obezbjeđen je mehanizam za obradu parametara. Radi prilično jednostavno. Ako je korisnik prilikom pokretanja batch datoteke naveo nekoliko parametara, tada u tekstu batch 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 pomozi. Prvi parametar batch datoteke se prosljeđuje kao njegov parametar.

rem Formiramo fajl sa opisom naredbe,

rem čije se ime prosljeđuje kao parametar

pomoć %1 > help.tmp

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

notepad help.tmp

Pretpostavimo da smo ovoj batch datoteci dali ime show-help.bat. Da biste učitali opis komande u notepad, na primjer, dir, moramo unijeti naredbu na sljedeći način.

show-help.bat dir

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

rem Primjer batch datoteke sa dva parametra

rem Kreirajte direktorij s imenom danim prvim parametrom

rem Kreirajte fajl u njemu sa opisom naredbe,

rem dat drugim parametrom

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

Šta se dešava 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. Šta se dešava ako korisnik navede samo prvi parametar? Drugi parametar će biti prazan. Efekt će biti sljedeći: batch fajl će se izvršiti, ali kao na mjestu snimanja %2 nema ničega. Komanda pomoći će generisati listu svih naredbi i staviti je u datoteku sa praznim imenom i ekstenzijom .help. Ako korisnik pokrene ovu datoteku bez navođenja niti jednog parametra, onda kada komandni procesor pokuša izvršiti naredbu md(podsjetimo, radi se o kreiranju direktorija), dobićemo poruku o sintaksičkoj grešci, jer komanda md mora imati parametar.

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

Varijable. set command

Varijabla je imenovana vrijednost. U udžbenicima programiranja, varijabla se obično poredi sa kovertom na kojoj je napisano ime. U kovertu možete staviti nešto, na primjer, određeni iznos novca - to je njegova vrijednost. Kao i kod omotnice, vrijednost varijable se može promijeniti.

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

Da biste izdvojili vrijednost varijable, njeno ime se postavlja između dva znaka procenta, kao što je prikazano ispod.

rem datoteke pomoći kompajlera 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 Prevođenje datoteka pomoći

%help_compiler% %store_hpj%

%help_compiler% %sales_hpj%

Listing ispod pokazuje korisnost varijabli.

Prvo, dozvoljavaju da se umjesto dugog fragmenta (na primjer, putanja do kompajlera datoteke pomoći) koristi sinonimni kratki unutar batch datoteke. Barem je zgodno.

Drugo, omogućavaju vam da izbjegnete ponavljanje fragmenata u tekstu batch datoteke, što se može promijeniti u budućnosti. Zamislite da smo ponovo instalirali Microsoft HTML Workshop u drugi direktorij. Ako se varijabla koristi u batch datoteci za pisanje putanje do nje, tada će biti dovoljno da se ispravi samo jedan red u batch datoteci, odnosno onaj u kojem je vrijednost varijable dodijeljena help_compiler. Ako bismo napisali putanju do kompajlera svaki put kada je trebalo da se pozove, onda bismo nakon promene putanje morali da ispravimo svaki takav red. U gornjem 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 svake linije teško (na kraju krajeva, niko nije otkazao komande “copy” i “paste”), već što to uvelike povećava vjerovatnoću slučajne greške.

Parametri paketne datoteke su također varijable, ali se razlikuju od običnih varijabli po tome što se njihove vrijednosti postavljaju prilikom pokretanja batch datoteke. U daljem tekstu, kada govorimo o varijablama, posebno o radu sa njihovim vrijednostima, mislićemo i na parametre batch fajla, barem u odsustvu eksplicitnih rezervi u vezi s tim.

Prilikom pisanja batch fajlova često se koristi sljedeći trik: nekoliko varijabilnih vrijednosti je naznačeno jednu pored druge (ili isprepleteno nekim znakovima ili redovima), kako bi se dobila neka nova značajna vrijednost. Primjer je prikazan u sljedećem popisu.

Provjerite uslove i odaberite opcije. if i goto komande

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

Provjera stanja je gotovo neophodna mjera pri kreiranju batch datoteka koje koriste parametre. Prije početka rada, batch fajl, općenito govoreći, mora biti siguran da mu 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 da nagađa u čemu je problem. Štoviše, ako batch datoteka izbriše, premjesti ili prepiše bilo koji podatak, onda s neispravnim parametrima može čak uzrokovati štetu.

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

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

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

echo Nije navedeno ime projekta datoteke pomoći

rem i idite na kraj batch datoteke

rem do kraja

rem je oznaka pod nazivom compile

rem Ispod su naredbe za kompilaciju

rem Putanja 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

set project_path=e:\work\projects\help-projects

rem Pozvati kompajler da obradi određeni projekat,

rem čije ime prenosimo 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će ime datoteke kao parametar, batch datoteka će biti zadovoljena i pokušati kompilaciju. Ispravniji način je provjeriti postoji li takva datoteka. Da biste to učinili, komandni jezik MS-DOS daje posebnu riječ postoje. Zato bi bilo bolje napisati: ako postoji %1.hpj ide na kompajliranje.

Drugo, aktivna upotreba naredbe idi(tzv. bezuslovni skok) i oznake uvelike zbunjuju kod. Tehnički, oni uopće nisu loši, ali otklanjanje grešaka i održavanje batch fajla napisanog u ovom stilu je prilično nezgodno. Stoga su programeri dugo vremena bezuslovni skok smatrali nepoželjnom tehnikom. Ispod je ispravnija, sa stanovišta stila programiranja, strukturirana verzija, koja koristi konstrukciju ako…drugo. Radi ovako: ako je uslov istinit, naredbe u zagradama iza ako, a ako je netačno, onda u zagradama nakon ostalo.

rem Provjerite da li je parametar postavljen

ako ne postoji %1.hpj (

rem Putanja 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

set project_path=e:\work\projects\help-projects

rem Pozvati kompajler da obradi određeni projekat,

%help_compiler% %project_path%\%1.hpj

Evo još jednog primjera rada sa čekovima. Sljedeća batch datoteka kreira direktorij pod nazivom fajlovi pomoći(pretpostavimo, da u njega učitamo kompajlirane datoteke pomoći). U isto vrijeme, 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 fajl dodjeljuje ekstenziju bak za to. Ali ako imenik help-files.bak već postojao, onda ga batch fajl briše (pretpostavljamo da nam je dovoljna jedna rezervna kopija).

ako postoji help-files.bak rd help-files.bak

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

Grupna obrada datoteka. za komandu

Komanda for vam omogućava da organizujete izvršavanje ponovljenih akcija istog tipa. 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) uradi eho %%i

Varijabilna i zove brojač ciklusa. Zbog posebnosti sintakse naredbe za, ime brojača petlje mora biti jedno slovo. Štaviše, ako pišemo batch fajl, tada se ispred imena brojača petlje mora staviti znak dvostrukog procenta, ali ako jednostavno ukucamo naredbu u komandnoj liniji, onda jednu.

Logika ove naredbe je sljedeća. Posle reči in opseg brojača ciklusa je specificiran. 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čigledno je da će takvih koraka biti deset. Ako smo odredili broj kao korak brojanja 2 , tada bi se petlja izvršila pet puta. Na svakom koraku petlje, tijelo petlje se izvršava, upisano nakon riječi uradi. U gornjem primjeru, ovo je naredba echo, koja ispisuje trenutnu vrijednost brojača petlje na ekran.

Vjerovatno možete doći do situacije u kojoj je tako nešto zaista 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 sa .htm na .html, unosimo naredbu ren *.htm *.html. Ali ako istu stvar treba učiniti ne u jednom direktoriju, 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. Tačnije, u cijelom stablu direktorija koje se nalazi unutra web stranica.

za /r web stranicu %%i u (*.htm) uradite ren %%i %%~ni.html

Ključ /r ukazuje na potrebu prelaska direktorija web stranica i sve njegove unutrašnjosti. Ako nije naveden (ali tada ni direktorij nije dozvoljeno navesti), tada će se obrađivati ​​samo datoteke u trenutnom direktoriju. Raspon vrijednosti za brojač ciklusa u ovoj verziji naredbe je skup svih datoteka sa ekstenzijom .htm, koji se nalazi unutar direktorija (tačnije, stabla) web stranica. Čudno na prvi pogled ~ni znači da iz vrijednosti varijable i samo ime fajla treba da bude istaknuto. MS-DOS komandni jezik pruža nekoliko takvih modifikatora, kao što je pisanje ~xi označava ekstenziju datoteke. Svi modifikatori su opisani u pomoći komande. za.

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

za /r web stranicu %%i u (*.htm) uradi (

rem Odštampaj naziv datoteke

rem preimenuj fajl

ren %%i %%~ni.html

Prenesite kontrolu na drugu batch datoteku. naredbu poziva

Moguće je pozvati drugu batch datoteku iz jedne batch datoteke. Za ovo, komanda poziv. Zanimljivo je da su varijable postavljene u pozivnoj batch datoteci "vidljive" pozvanoj. I obrnuto, nakon što pozvani fajl završi svoj rad i vrati kontrolu pozivaocu, ovaj će "videti" varijable koje mu je ostavilo pozvano "nasleđivanje". Ovo omogućava programeru batch datoteka da djeluje, na primjer, na sljedeći način. Ako nekoliko batch datoteka mora koristiti iste vrijednosti, recimo, putanje do nekih datoteka, one se mogu premjestiti u zasebnu batch datoteku, koja će igrati ulogu konfiguracijske datoteke. Svaki radni batch fajl će započeti konfiguracionim pozivom. Prednost je što kada promijenite putanje, morate napraviti promjene samo u jednom konfiguracijskom fajlu, a ne u velikom broju radnika.

"konfiguracijski" batch fajl config.bat.

rem Putanja 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

set project_path=e:\work\projects\help-projects

"Radni" batch fajl.

rem Postavite varijable

rem Provjerite da li je parametar postavljen

ako ne postoji %1.hpj (

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

echo Ne postoji takav projekat datoteke pomoći.

rem Ispod su naredbe za kompilaciju

rem Pozvati kompajler da obradi određeni projekat,

rem čije ime prenosimo u prvom parametru

%help_compiler% %project_path%\%1.hpj

Prilikom rada na računaru često postaje neophodno ponavljanje istih DOS komandi za izvođenje periodično izvršavanih radnji, izgradnju složenog i višeslojnog niza izvršnih naredbi ili aplikacija, automatizaciju rada sa aplikacijama i datotekama sa ili bez korisnika. Operativni sistem ima mogućnost da upiše nekoliko komandi u bat fajl. Istovremeno, jednostavnim pokretanjem ove batch datoteke (koje se često naziva skripta ili jednostavno "batch datoteka"), možete izvršiti propisane komande, a upisivanjem u događaje Windows planera možete automatizirati ovaj proces .

Karakteristika datoteka ovog tipa je odsustvo bilo kakvog koda unutra - postoje samo informacije o satu koje čita i izvršava DOS komandni procesor, koji je kompatibilan sa gotovo svim verzijama Windows operativnog sistema. Jedan od najjasnijih primjera je datoteka autoexec.bat, koja je neophodna za pokretanje ovog OS-a, jer ga on konfiguriše prilikom pokretanja.

Ključne karakteristike paketnih datoteka

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

Dizajniran da prikaže određenu vrijednost, frazu, aplikaciju ili informaciju na ekranu;
- za pokretanje paketnih dokumenata;
- za rad sa ciklusima;
- kreirati grananje izvršenja koristeći uslove;
- za rad sa aplikacijama.

Izvršavanje paketnih datoteka

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

Kada se batch fajl nalazi u drugom direktorijumu, potrebno je, pored punog naziva ove datoteke, navesti punu putanju do direktorijuma u kojem je pohranjena. Ekstenzija datoteke se također može izostaviti. Na primjer, trenutni direktorij je d:\photo\work, a batch datoteka vera.bat koja se izvršava sa opcijama resize.doc i /p nalazi se u direktoriju d:\photo\home. Zatim, da biste pokrenuli naš fajl, potrebno je da napišete naredbu d:\photo\home\vera resize.doc /p ili naredbu ..\home\vera resize.doc /p.

Prekid rada

Komande Bat-fajla koje se izvršavaju nakon pokretanja mogu se prekinuti kombinacijama dugmadi +i +. Ekran će od vas zatražiti da prekinete izvršavanje batch datoteke sa upitom koji čeka na Da ili Ne. Ako unesete Y, izvršavanje će biti prekinuto, a preostala lista komandi u bat datoteci će biti zanemarena. Ako unesete znak N, izvršavanje će se nastaviti sa sljedećom komandom sa liste.

Pozivanje drugog batch fajla

Bat datoteke mogu sadržavati veze za izvršavanje drugih skripti. Ako jednostavno upišete bat datoteku u tijelo skripte, naredbe nakon nje više se neće izvršavati, jer 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 prosleđuju pozvanim batch fajlovima obično su znakovi %1 - %9. Kada se sve komande bat-fajla proslede uzastopno, izvršavanje originalne skripte će se nastaviti od sledećeg reda.

Prolaz kroz

Postoje slučajevi kada komande bat-fajla moraju da se izvršavaju korak po korak (sa zaustavljanjem nakon svakog reda). Najčešće je ovaj način potreban prilikom otklanjanja grešaka ili testiranja skripti. Pisanje naredbe izgleda ovako: COMMAND /y/c ime_skripte [opcije].

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

Onemogućavanje i omogućavanje izlaza komandi na ekranu

Kada se bat datoteka pokrene, komande se prikazuju red po red prije izvršenja na ekranu, a zatim se izvršavaju. Ponekad to uzrokuje neugodnosti, jer se kod velikog batch fajla komande pokreću ispred korisnika na ekranu u dugačkoj listi, a ponekad ih je potrebno prikazati, na primjer, za dijalog ili otklanjanje grešaka. Da bi se prikazao komandni bat fajl koristi se komanda ECHO ON. Da biste onemogućili ovaj način rada, unesite ECHO sa parametrom OFF. U tom slučaju, sve naredbe koje se dalje izvršavaju neće biti prikazane na ekranu.

Da biste onemogućili izlaz samo jedne linije batch datoteke na ekranu, možete koristiti simbol @ na samom početku ovog reda. Najčešće se ovaj simbol može naći zajedno sa naredbom @ECHO OFF kako bi se spriječilo njegovo prikazivanje na ekranu monitora. Ovaj način rada često koriste napadači, stvarajući viruse zasnovane na bat datotekama ili isporučujući manje i veće probleme korisnicima računara.

Poruke o izvršavanju naredbi

Ako se iza komande ECHO nalaze drugi znakovi osim ON ili OFF, oni će biti prikazani u bilo kojem načinu rada. Ako je ECHO bez parametara, tada prikazuje status moda za prikaz izvršnih komandi - uključeno ili isključeno.

Ako želite, možete čak i igrati (škripati) kompjuter koristeći bat fajl. Naredbe, čiji su primjeri dati u nastavku, zasnovane su na ECHO naredbi sa dodatkom posebnih znakova.

Da biste reprodukovali zvučni signal, potrebno je da prikažete standardni znak sa kodom 7. To možete učiniti pritiskom na taster i "7" na numeričkoj tastaturi (označeno kao početni).

Da biste poboljšali čitljivost poruka, možete koristiti naredbu ECHO sa "." (stavlja se odmah iza komande bez razmaka) ili specijalni znak sa kodom 255. Na ekranu će ovo izgledati kao prazan red.

Komanda ECHO se može koristiti za izlaz poruka u posebnu datoteku. Njegova suština je da se izlaz poruka preusmjeri na zapis u datoteku, a ne na ekran monitora. Za čuvanje dnevnika, glasanja, snimanja događaja možete koristiti bat. Izlazne naredbe imaju sljedeći format:

ECHO poruka >> ime datoteke - komanda dodaje red na kraj postojeće datoteke. Ako u datom direktoriju nema takve datoteke, kreira se nova datoteka.

ECHO poruka > naziv datoteke - ova komanda kreira novu datoteku iu nju se upisuje trenutni red. Ako postoji takva datoteka u trenutnom direktoriju, njen sadržaj će biti obrisan i naredba ili njen rezultat će biti upisana.

Koristeći komentare

Za praktičnost uređivanja skripti koristi se naredba REM. Sve komande bat-fajla nakon njega Windows ignoriše tokom 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.

Komanda odgode u bat fajlu

Ponekad, tokom izvršavanja batch fajla, postaje neophodno privremeno zaustaviti izvršavanje komandi, na primer, da se sačeka reakcija korisnika, da se poveća vreme za čitanje dugačke poruke, da se ubaci disk, potvrdi prisustvo korisnika, ili za otklanjanje grešaka u batch fajlu. Komanda kašnjenja u bat datoteci je zapisana kao PAUSE bez parametara. Ovo će prikazati poruku poput "Pritisnite bilo koji taster za nastavak" na ekranu i skripta će pauzirati dok se ne pritisne dugme na tastaturi. Ako je kombinacija pritisnuta +ili +, onda će sistem 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 komande će biti zanemarene. Kada se pritisne N, izvršenje će se nastaviti sa sljedećom komandom. Kada se pauzira, pritiskom na bilo koje druge alfanumeričke tipke, kao i na "Space" i "Enter", izvršavanje izvršne datoteke će se nastaviti sljedećom komandom.

spisak fajlova

Za sekvencijalno izvršavanje nekoliko datoteka sa liste koja se nalazi u istom direktoriju, možete koristiti i .bat datoteku. Komande "pokreni program po imenu" i "pokreni program prema ekstenziji datoteke" često mogu pomoći u automatizaciji obrade dokumenata, kao što je sortiranje priloga pošte. Razlikuju se u parametrima za naredbu FOR. Format za njegovo pisanje je dat u nastavku:

ZA %x IN (lista datoteka) DO naredbu, gdje je:

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

Lista - nazivi datoteka razdvojeni 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;

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

Kada koristite ovu naredbu za pisanje .bat datoteka, imajte na umu da imena u programima u DOS formatu imaju ograničenje na dužinu imena. Da biste prebacili naredbu FOR da radi sa dugim imenima datoteka, ne smijete zaboraviti pokrenuti naredbu LFNFOR ON prije nje kako biste omogućili način rada s dugim imenima i LFNFOR OFF da biste je onemogućili i vratili na standardnu ​​dužinu datoteke.

Mnoge funkcije s programima, kao što je poređenje datoteka s određenim tipovima ekstenzija koje se nalaze u jednom direktoriju s datotekama istih tipova iz drugog direktorija, kopiranje svih datoteka iz trenutnog direktorija u drugi, sekvencijalno izvršavanje datoteka s ekstenzijama određenog tipa i imena koji počinju brojevima, može se izvršiti samo jednom komandom unesenom u bat fajl. Pokretanje programa može se kombinovati sa zahtjevima korisnika, što poboljšava praktičnost rada s podacima.

tranzicije u bat fajlovima

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

Komanda jump ima pravopis GOTO sa nazivom oznake odvojenim razmakom. Ako nema parametra ili ako se naziv oznake ne pronađe u komandnoj datoteci, skripta prestaje raditi na ovoj komandi. primjer:

REM (potrebne komande se izvršavaju).

U ovom primjeru, sekvencijalno izvršavanje batch datoteke, kada dostigne GOTO zzz, skače na oznaku :zzz i nastavlja sa REM, zanemarujući sve između instrukcije za skok i specificirane oznake.

Uslovi korišćenja pri radu sa bat fajlovima

Bat datoteka može ili ne mora izvršiti komande u zavisnosti od različitih uslova ako koristi IF provjeru događaja. Format ove naredbe izgleda kao "komanda uvjeta IF".

Uslov je niz izraza:

ERRORLEVEL broj - ako je prethodni izvršni program završio sa 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, uslov postaje istinit. Umjesto nizova, možete zamijeniti znakove %0 - %9, tada će se uporediti parametri batch datoteke.

EXIST - ime datoteke - ako navedena datoteka postoji, tada je uslov istinit.

NOT - uslov — ako je navedeni uslov netačan, tada ćemo na izlazu naredbe dobiti pravu vrijednost.

Korištene komande u bat fajlovima

Ako kliknete na dugme "Start" i pokrenete komandnu liniju (cmd), možete videti sve što je umetnuto u bat fajl, možete ga koristiti kao alat za otklanjanje grešaka, kao pomoćnik, program za dobijanje informacija o komandama. Da biste to učinili, možete jednostavno upisati HELP. Ovo proizvodi listu naredbi sa kratkim opisima za njih. Za detaljnije informacije možete unijeti HELP sa imenom željene naredbe.

Korišćenje bat fajlova prilikom pravljenja rezervnih kopija podataka

Batch fajlovi uveliko pojednostavljuju život sistem administratorima u njihovom svakodnevnom radu. Njihov najčešći opseg je kreiranje, brisanje, preimenovanje i još mnogo toga. Sve ovo se zasniva na korištenju naredbe COPY bat file. Na primjer, možete kreirati 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 folderu s korisničkim imenom i nazivajući ga "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.

Upotreba bat-fajlova (inače - "batch file", "batch file") često može olakšati vaš rad, na primjer, automatizirati instalaciju softvera, prema unaprijed određenim parametrima; sinhronizacija datuma i vremena; pokretanje sekvenci komandi i tako dalje. Međutim, da biste koristili takve skripte, morate biti u mogućnosti da ih kreirate. U svojoj srži, datoteke sa ekstenzijom .bat su skup naredbi konzole, istih kao i one koje se koriste u komandnoj liniji.

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

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

Korak 1. Da biste pokrenuli komandnu liniju u Start meniju, koristite dijalog "Traži programe i datoteke". Morate postaviti parametar pretrage na cmd i kliknuti levim tasterom miša na ikonu u odeljku "Programi".

Korak 2 Preporučljivo je koristiti poseban direktorij za pohranjivanje pisanih batch datoteka, pa odaberite lokaciju na tvrdom disku i kreirajte posebnu mapu unosom naredbe "MD D:\Bat".

Napomenu! Naredba se upisuje bez navodnika, razmak se stavlja tek nakon upotrebeMD. U ovom slučaju, folder pod nazivom « slepi miš"će biti kreiran na diskuD. Komandna linija je neosjetljiva na velika i mala slova, tj. rezultat je izvršavanja "MDD:\slepi miš", "mdD:\slepi miš" i "mdd:\Bat" će biti isti.

Korak 3 Kreirajte stvarni batch fajl naredbom "@echo off > D:\Bat\probnik.bat".

Napomenu! U ovom slučaju, velika i mala slova su važna pri određivanju putanje lokacije, odnosno foldera "palica", "slepi miš" i "BAT" - tri nezavisna i potpuno različita imenika. Ako pokažete na nepostojeći folder, komanda se neće izvršiti. Imajte na umu da neće biti ni poruke o grešci.

Korak 4 Da biste promijenili sadržaj datoteke, otvorite njegovu lokaciju za pohranu, pozovite kontekstni izbornik i odaberite redak "Promijeni".

Kreirajte batch fajl pomoću Notepad-a

Korak 1. Da biste pokrenuli notepad, idite na meni "Svi programi", stavku "Dodatna oprema" i kliknite na ikonu za pokretanje.

Korak 2

Naučite kako kreirati datoteku bez mnogo znanja o programiranju u novom članku -

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

« @echo off

mod con cols=32 reda=50

naslovna zvijezda!

za %%i u (

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

) eho %%i

pauza > null

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

Korak 3 Spremite rezultirajuću datoteku u željeni direktorij. Da biste promijenili dozvolu, koristite liniju "Vrsta datoteke", u njoj odaberite "Sve datoteke", a prilikom unosa imena, nakon tačke, navedite "bat".

Kreiranje batch fajla pomoću "dr.dozator"

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

Korak 1. Za kreiranje datoteke 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 komande koje možete koristiti prilikom pisanja koda. Sve što trebate učiniti je odabrati onu koju želite i kliknuti na dugme.InsertCommand", što pomaže u uštedi vremena pri radu.

Korak 4 Spremite rezultirajuću datoteku u željeni direktorij.

Bitan! Imajte na umu da vam ovaj uslužni program omogućava otklanjanje grešaka u programu u hodu. Dovoljno je koristiti meni"Batch" za početak već unesenog niza. Napredak se prikazuje u donjem okviru. Kada koristite "IzvršiinEksterniWindow…” batch fajl će se izvršiti, slično njegovom pokretanju pomoću operativnog sistema.

Zaključak

Opisali smo tri načina za kreiranje .bat fajlova. Dvije od ovih metoda su standardne metode dostupne za Windows, a jedna zahtijeva instaliranje dodatnog softvera. Procjena svake od metoda data je u zbirnoj tabeli.

Informacije\ImeKomandna linijaNotebookDr. Batcher
LicencaIsporuka uz WindowsIsporuka uz WindowsPlaćeno
ruski jezikOvisno o verziji WindowsaOvisno o verziji
Kreirajte batch fajlDaDaDa
Batch uređivanje fajlovaNeDaDa
Jednostavnost korisnika (od 1 do 5)4 4 5

Video - Kreiranje Bat fajla

Top Related Articles