Kako napisati batch skriptu na Windows
Znate li kako koristiti naredbeni redak? Ako to učinite, možete napisati skupnu datoteku. U svom najjednostavnijem obliku, skupna datoteka (ili skupni skript) je popis nekoliko naredbi koje se izvršavaju kada dvaput kliknete datoteku. Batch datoteke idu sve do DOS-a, ali i dalje rade na modernim verzijama sustava Windows.
PowerShell skripte i Bash skripte mogu biti snažnije, ali batch datoteke i dalje mogu biti korisne ako morate pokrenuti osnovne Windows naredbe.
Osnove skupne datoteke
Batch datoteka je jednostavno tekstualna datoteka spremljena s nastavkom .bat. Možete je napisati pomoću Notepada ili naprednijeg uređivača teksta kao što je Notepad ++, ali nemojte koristiti program za obradu teksta kao što je Microsoft Word.
Napravimo jednostavnu skupnu datoteku. Prvo otvorite bilježnicu. Upišite sljedeće retke:
ECHO OFF ECHO Pozdrav Svijet PAUSE
Zatim spremite datoteku klikom na Datoteka> Spremi. Dajte joj bilo koje ime koje želite, ali zamijenite defaultno .txt datoteku s nastavkom .bat.
Na primjer, možda ćete ga htjeti imenovati hello_world.bat
.
Sada imate skupnu datoteku s nastavkom .bat. Dvaput kliknite da biste ga pokrenuli. Ova određena skupna datoteka postavlja ECHO off (koji čisti izlaz skrivanjem naredbi da se ispisuje na upit, ispisuje tekst "Hello World" na zaslon, a zatim čeka da pritisnete tipku prije nego što se završi.
Ako niste dodali PAUZA
u datoteku, skupna datoteka jednostavno bi pokrenula njegove naredbe i automatski se zatvorila. U ovom slučaju, ispisivao bi "Hello World" u prozor, a zatim odmah zatvorio prozor naredbenog retka. Kada želite brzo pokrenuti naredbe bez da vidite izlaz, to možete izostaviti. Ako pokrećete nekoliko naredbi, možete postaviti mjesto PAUZA
naredbu između njih.
Pisanje složenije skupne datoteke
U osnovi je jednostavno stvoriti skupnu datoteku. Jedino što trebate promijeniti je ono što upisujete u Notepad. Da biste pokrenuli nekoliko naredbi, upišite svaku na vlastitu liniju, a skupna datoteka će se izvršavati u redu.
Na primjer, recimo da želimo napisati skupnu datoteku koja pokreće nekoliko mrežnih dijagnostičkih naredbi. Možda želimo pobjeći ipconfig / all
za prikaz mrežnih informacija, ping google.com
da biste vidjeli reagiraju li Googleovi poslužitelji i tracert google.com
da biste pokrenuli trag do google.com i provjerili ima li problema na putu.
U najosnovnijem obliku mogli bismo sve te naredbe jednostavno smjestiti u skupnu datoteku, jednu za drugom, kao na primjer:
ipconfig / svi ping google.com tracert google.com PAUSE
Kada pokrenemo ovu datoteku, odmah ćemo vidjeti izlaz svake naredbe. Ali to nije nužno idealan način za pisanje skupne datoteke.
Na primjer, možda želite dodati retke komentara. Bilo koja linija koja počinje s ::
je crta komentara i neće se izvršavati. To ih čini korisnim načinom da se objasni što se događa u dosjeu za svakoga koga biste ga mogli dati - ili za vaše buduće ja, koji bi mogli zaboraviti zašto stavljate određenu naredbu unutra.
Također možete dodati naredbu "ECHO OFF" na početak datoteke. To se obično dodaje na početak većine skupnih datoteka. Kada to učinite, same naredbe neće biti ispisane u naredbeni redak, ali rezultati će biti. Na primjer, vidjet ćete pojedinosti o mrežnoj vezi, ali ne i liniju "ipconfig / all". Većina ljudi ne želi vidjeti naredbe, tako da to može očistiti izlaz.
Evo kako bi to moglo izgledati:
:: Ova skupna datoteka provjerava probleme s mrežnom vezom. ECHO OFF :: Prikaži detalje mrežne veze ipconfig / all :: Provjerite je li Google.com dostupan ping google.com :: Pokrenite traceroute da biste provjerili put do Google.com tracert google.com PAUSE
Postoje i drugi smjerovi u kojima možete ići s batch datotekom kao što je ova. Na primjer, možda želite da vaš skriptni paket pokrene gore navedene naredbe, a zatim ispustite izlaz u tekstualnu datoteku koju možete pogledati kasnije. Da biste to učinili, upotrijebili biste >>
operator nakon svake naredbe dodaje svoj izlaz u tekstualnu datoteku. Kako ćemo ionako čitati izlaz iz tekstualne datoteke, možemo izostaviti PAUZA
naredba.
:: Ova skupna datoteka provjerava probleme mrežne veze :: i sprema izlaz u .txt datoteku. ECHO OFF :: Pogledaj detalje mrežne veze ipconfig / all >> results.txt :: Provjerite je li Google.com dostupan ping google.com >> results.txt :: Pokrenite traceroute da biste provjerili put do Google.com tracert google. com >> results.txt
Nakon što pokrenete gornju skriptu, pronaći ćete datoteku results.txt u istoj mapi kao i skupna datoteka s izlazom naredbi. Prozor naredbenog retka automatski će se zatvoriti kada se završi radna datoteka.
Primjer koji koristimo gore oslanja se na zapravo ispisivanje podataka u naredbeni redak kako bi ga korisnik mogao pročitati. Međutim, mnoge batch datoteke dizajnirane su tako da se pokreću ne-interaktivno. Na primjer, možete imati skupnu datoteku koja briše više datoteka ili direktorija svaki put kada je dvaput kliknete. Samo trebate upotrijebiti del
naredbu za brisanje datoteka ili deltree
naredbu za brisanje direktorija. Zapamtite, koristite samo iste naredbe koje ste pokrenuli u prozoru naredbenog retka.
U osnovi, to je poanta većine skupnih datoteka - samo pokretanje nekoliko naredbi jedna za drugom. Međutim, batch datoteke mogu biti znatno složenije od ovoga. Na primjer, možete upotrijebiti naredbe "IF" zajedno s naredbom "GOTO" kako biste provjerili vrijednost nečega i zatim prešli na različite linije ovisno o rezultatu. Ovo je više kao pisanje stvarnog malog programa nego brzo i prljavo pismo. To je jedan od razloga zašto se .bat datoteke ponekad nazivaju "batch programi". Ako želite napraviti nešto složenije, naći ćete mnogo vodiča za izvođenje određenih stvari s online batch programiranjem. Ali sada, znate osnove kako baciti jednu jednostavnu.