Jak napsat dávkový skript v systému Windows

Víte, jak používat příkazový řádek? Pokud tak učiníte, můžete napsat dávkový soubor. V nejjednodušší podobě 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 až do systému DOS, ale stále fungují na moderních verzích systému Windows.

Skripty PowerShell a Bash 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ý s příponou .bat. Jeden můžete napsat pomocí Poznámkového bloku nebo pokročilejšího textového editoru, 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 následující řádky:

ECHO OFF ECHO Hello World PAUSE

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

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

Nyní máte dávkový soubor s příponou .bat. Spusťte jej poklepáním. Tento konkrétní dávkový soubor vypne ECHO (který vyčistí výstup tím, že skryje příkazy před tiskem na výzvu, vytiskne na obrazovku text „Hello World“ a poté počká, až stisknete klávesu, než skončí.

Pokud jste PAUSEdo souboru nepřidali , dávkový soubor jednoduše spustí své příkazy a poté se automaticky zavře. V takovém případě by do okna vytiskl „Hello World“ a poté okamžitě zavřel okno příkazového řádku. Pokud chcete rychle spouštět příkazy, aniž byste viděli výstup, můžete to vynechat. Pokud spouštíte několik příkazů, můžete PAUSEpříkaz umístit mezi ně.

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

Vytvoření dávkového souboru je zásadně jednoduché. Jedinou věcí, kterou musíte změnit, je to, co napíšete do Poznámkového bloku. Chcete-li spustit několik příkazů, zadejte každý z nich na vlastní řádek a dávkový soubor spustí každý z nich v uvedeném pořadí.

Řekněme například, že chceme napsat dávkový soubor, který spouští několik síťových diagnostických příkazů. Možná bychom chtěli spustit ipconfig /allzobrazení informací o síti, ping google.comzjistit, zda servery Google reagují, a tracert google.comspustit traceroute na google.com a zjistit, zda na cestě nejsou nějaké problémy.

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

ipconfig / vše ping google.com tracert google.com PAUSE

Když spustíme tento soubor, uvidíme výstup každého příkazu hned za sebou. Není to ale nutně ideální způsob zápisu dávkového souboru.

Můžete například přidat řádky komentářů. Jakýkoli řádek, který začíná písmenem a, ::je řádek komentáře a nebude proveden. Díky tomu jsou užitečným způsobem, jak vysvětlit, co se v souboru děje pro kohokoli, komu byste to mohli dát - nebo pro vaše budoucí já, kdo by mohl zapomenout, proč jste tam vložili určitý příkaz.

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

Takhle by to mohlo vypadat:

:: Tento dávkový soubor kontroluje problémy se síťovým připojením. ECHO OFF :: Zobrazit podrobnosti síťového připojení ipconfig / vše :: Zkontrolovat, zda je Google.com dosažitelný ping google.com :: Spustit traceroute a zkontrolovat cestu na Google.com tracert google.com PAUSE

S dávkovým souborem, jako je tento, můžete jít i dalšími směry. Můžete například chtít, aby váš dávkový skript spustil výše uvedené příkazy a poté uložil výstup do textového souboru, který si můžete prohlédnout později. Chcete-li tak učinit, použijte >>operátor po každém příkazu k přidání jeho výstupu do textového souboru. Protože stejně budeme číst výstup z textového souboru, můžeme PAUSEpříkaz vynechat .

:: Tento dávkový soubor kontroluje problémy se síťovým připojením :: a ukládá výstup do souboru .txt. ECHO OFF :: Zobrazit podrobnosti síťového připojení ipconfig / all >> results.txt :: Zkontrolovat, zda je Google.com dosažitelný ping google.com >> results.txt :: Spustit traceroute a zkontrolovat cestu na google.com tracert google. com >> results.txt

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

Příklad, který používáme výše, závisí na skutečně tisku informací do příkazového řádku, aby si je uživatel mohl přečíst. Mnoho dávkových souborů je však navrženo tak, aby se spouštěly neinteraktivně. Můžete například mít dávkový soubor, který odstraní více souborů nebo adresářů pokaždé, když na něj dvakrát kliknete. Stačí použít delpříkaz k odstranění souborů nebo deltreepříkaz k odstranění adresářů. Nezapomeňte, že právě používáte stejné příkazy, které byste spustili v okně příkazového řádku.

To je v zásadě smysl většiny dávkových souborů - 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 použít příkazy „IF“ spolu s příkazem „GOTO“ ke kontrole hodnoty něčeho a poté přeskočit na různé řádky v závislosti na výsledku. Je to spíš jako psaní skutečného malého programu než rychlý a špinavý skript. To je jeden z důvodů, proč se souborům .bat někdy říká „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í online dávkového programování. Ale teď už znáte základy toho, jak dát dohromady jeden jednoduchý.