/ Jak napsat dávkový skript na Windows

Jak napsat dávkový skript na Windows

Víte, jak používat příkazový řádek? Pokud tak učiníte, můžete napsat dávkový soubor. Ve své nejjednodušší formě je dávkový soubor (nebo dávkový skript) seznam několika příkazů, které se provedou poklepáním na soubor. Dávkové soubory jdou zpět do DOSu, ale stále fungují na moderních verzích Windows.

Skripty PowerShell a Bash skripty mohou být výkonnější, ale dávkové soubory mohou být stále užitečné, pokud potřebujete spouštět základní příkazy Windows.

Základy dávkových souborů

Dávkový soubor je jednoduše textový soubor uložený pomocíPřípona souboru .bat. Jeden můžete napsat pomocí programu Poznámkový blok nebo pokročilejší textový editor, jako je Poznámkový blok ++, ale nepoužívejte textový procesor, jako je Microsoft Word.

Vytvořme jednoduchý dávkový soubor. Nejprve otevřete Poznámkový blok. Zadejte do něj následující řádky:

ECHO OFF
ECHO Hello World
PAUSE

Poté soubor uložte kliknutím na Soubor> Uložit. Zadejte libovolný název, ale výchozí příponu .txt nahraďte příponou .bat.

Můžete to například pojmenovat hello_world.bat .

Nyní máte dávkový soubor s.přípona souboru bat. Dvojitým kliknutím spustíte. Tento konkrétní dávkový soubor vypíná ECHO (což vyčistí výstup skrytím příkazů před tiskem na výzvu, vytiskne text „Hello World“ na obrazovku a poté čeká, až stisknete klávesu před jejím ukončením.

Pokud jste je nepřidali PAUSE do souboru by dávkový soubor jednoduše spustil svůjpříkazy a pak se automaticky uzavírají. V tomto případě by se do okna vytisklo „Hello World“ a okamžitě se zavřelo okno příkazového řádku. Pokud chcete rychle spouštět příkazy, aniž byste viděli výstup, můžete to vynechat. Pokud používáte několik příkazů, můžete umístit PAUSE příkaz mezi nimi.

Zápis složitějšího dávkového souboru

Vytvoření dávkového souboru je v zásadě jednoduché. Jediné, co musíte změnit, je to, co zadáte do programu Poznámkový blok. Chcete-li spustit několik příkazů, zadejte každý z nich na svůj vlastní řádek a dávkový soubor spustí každý z nich v pořadí.

Řekněme například, že chceme napsat dávkový soubor, který spouští několik příkazů diagnostiky sítě. Možná bychom chtěli utéct ipconfig /all zobrazit informace o síti, ping google.com abyste zjistili, zda servery společnosti Google reagují, a tracert google.com spustit traceroute na google.com a zjistit, zda na cestě nejsou nějaké problémy.

V nejzákladnější podobě bychom mohli všechny tyto příkazy jednoduše umístit do dávkového souboru, jeden po druhém, například:

ipconfig /all
ping google.com
tracert google.com
PAUSE

Když spustíme tento soubor, uvidíme výstup každého příkazu hned za druhým. Není to však nutně ideální způsob, jak napsat dávkový soubor.

Můžete například přidat řádky s komentářem. Jakýkoli řádek, který začíná znakem :: je řádek s komentářem a nebude proveden. To z nich činí užitečný způsob, jak vysvětlit, co se v souboru děje, pro kohokoli, komu byste to mohli dát - nebo pro vaše budoucí já, kteří by mohli zapomenout, proč jste tam zadali určitý příkaz.

Můžete také přidat příkaz „ECHO OFF“na začátek souboru. Obvykle se přidá na začátek většiny dávkových souborů. Když to uděláte, samotné příkazy nebudou vytištěny do příkazového řádku, ale výsledky budou. Zobrazí se například podrobnosti o síťovém připojení, nikoli však řádek „ipconfig / all“. Většina lidí se nestará o příkazy, takže to může vyčistit výstup.

Tak by to mohlo vypadat takto:

:: This batch file checks for network connection problems.
ECHO OFF
:: View network connection details
ipconfig /all
:: Check if Google.com is reachable
ping google.com
:: Run a traceroute to check the route to Google.com
tracert google.com
PAUSE

Existují i ​​další směry, kterými byste mohli jítdávkový soubor, jako je tento. Například můžete chtít, aby dávkový skript spouštěl výše uvedené příkazy a pak výpis vypsal do textového souboru, který si můžete zobrazit později. Chcete-li tak učinit, použijte >> operátor po každém příkazu připojí svůj výstup k textovému souboru. Protože stejně budeme číst výstup z textového souboru, můžeme vynechat PAUSE příkaz.

:: This batch file checks for network connection problems
:: and saves the output to a .txt file.
ECHO OFF
:: View network connection details
ipconfig /all >>  results.txt
:: Check if Google.com is reachable
ping google.com >> results.txt
:: Run a traceroute to check the route to Google.com
tracert google.com >> results.txt

Po spuštění výše uvedeného skriptu najdete souborpojmenované results.txt ve stejné složce jako dávkový soubor s výstupem příkazů. Okno Příkazový řádek se automaticky zavře, jakmile je dávkový soubor spuštěn.

Příklad, který používáme výše, se ve skutečnosti spoléhátisk informací do příkazového řádku, aby je uživatel mohl přečíst. Mnoho dávkových souborů je však navrženo tak, aby byly spouštěny neinteraktivní. Například můžete mít dávkový soubor, který odstraní více souborů nebo adresářů, kdykoli na něj dvakrát kliknete. Stačí použít del příkaz k odstranění souborů nebo deltree příkaz k odstranění adresářů. Pamatujte, že používáte pouze stejné příkazy, jaké jste spustili v okně příkazového řádku.

V zásadě je to bod největší dávkysoubory - stačí spustit několik příkazů jeden po druhém. Dávkové soubory však mohou být ve skutečnosti podstatně složitější. Například můžete pomocí příkazů „IF“ spolu s příkazem „GOTO“ zkontrolovat hodnotu něčeho a pak přeskočit na různé řádky v závislosti na výsledku. Je to spíše jako psát skutečný malý program než rychlý a špinavý skript. To je jeden z důvodů, proč se soubory .bat někdy nazývají „dávkové programy“. Pokud chcete udělat něco složitějšího, najdete spoustu průvodců, jak dělat konkrétní věci pomocí dávkového programování online. Ale teď už znáte základy toho, jak hodit jednoduchý dohromady.