Co se přihodilo :-)

Skriptujeme ve Windows I

18. 2. 2008 18:38
Rubrika: Ze světa IT

O možnostech a výhodách skriptování na *nixových operačních systémech nikdo nepochybuje, vše je dobře zdokumentované, na internetu lze najít spoustu návodu, hodně uživatelů vám s tímto poradí. Zcela opačná je situace ve Windows. O možnostech skriptování na této platformě lze velmi obtížně najít jakékoliv informace,  dokumentace prakticky neexistuje, málo kdo to umí.

První krůčky

Skripty pod Windows mají koncovku .cmd, vytvoříme tedy soubor skript.cmd (nejlépe v notepadu) a uložíme jej. Začít jinak než „Hello World“ prostě nejde. Do skriptu napíšeme (nečekaně)

            echo Hello World

uložíme a spustíme příkazem skript.cmd. Dostaneme něco jako toto:

            echo Hello World
               
Hello World

 Vidíme, že se nejdříve vypsal příkaz a až potom se provedl. Tomu zabráníme přidáním

            @echo off

na začátek skriptu.

Příkaz končí koncem řádku, za echo tedy můžeme vložit libovolný text, složených z jakýchkoliv znaků včetně mezer, který se vleze na 1 řádek.

Proměnné a práce s nimi

Proměnou deklarujeme jednoduše

            set promena=hello world (opět vše až do konce řádku bude obsahem proměnné)

Pro názvy proměnných platí několik podmínek:

1)      název může obsahovat alfabetické znaky, čísla a podtržítko

2)      prvním znakem nesmí být číslo

3)      nesmí se použít klíčová slova jako for, if atp.

4)      na velikosti písmen nezáleží

 

Proměnou vypíšeme tím, že jí „obalíme“ do %

            echo %promena%

 Jelikož jakýkoliv příkaz je ukončen koncem řádku, není problém vypsat více proměnných najednou

            echo %promena1% %promena2% %promena3%

Taktéž není problém zkopírovat více proměnných do jedné

            set promenaDohromady=%promena1% %promena2%

Existují také speciální proměnné %0, %1, %2, %3, …, %9. %0 uchovává název skriptu, %1 odkazuje na první argument příkazové řádky, %2 na druhý atp. Skriptem

            echo %0
                echo %1

vypíšeme název skriptu a první argument. Pokud bychom náhodou potřebovali více než 8 argumentů, musíme použít shift příkaz, který způsobí přesunutí %1 na %0, %2 na %1, … Jelikož nula se nemá kde přesunout, je „zapomenutá“. Vypsání 10 argumentu tedy dosáhneme takto:

            shift
                echo %9

Vypsání 11 takto:
            shift
            shift
            echo %9

Tímhle můžeme pokračovat prakticky do nekonečna. Pro dnešek skončíme a příště se podíváme na řídící příkazy (if, for) a možná i něco navíc.

Zobrazeno 9411×

Komentáře

Pavel icepoint Trávníček

heh, ja spis myslel, ze to boudou mswsh scripty, a ne dosovsky :(

kuchi

wsh skripty jsou celkem dost slozite, ma to blize k programovani nez skriptovani. tyhle skripty jsou mozna prehistoricke, ale spolehlive funguji i na nejnovejsich win:-) a navic jsou pro normalni uzivatele podstatne uzitecnejsi

Pavel icepoint Trávníček

ale treba narozdil od tehlech umi wsh spustit vic programu naraz (vlastne tenhle, az kdyz se jeden ukonci, tak spusti dalsi ...

Zobrazit 3 komentáře »

Pro přidání komentáře se musíš přihlásit nebo registrovat na signály.cz.

Autor blogu Grafická šablona Nuvio