Parametrien välittäminen komentojonoon

Edellisissä esimerkeissä hello.bat tulosti vakiotekstin ja kopioi.bat kopioi aina samasta levykkeen hakemistosta samaan kovalevyn hakemistoon. Normaalisti komentoriville komentoja kirjoitettaessa komennon parametreja vaihetaan, joten samaa ominaisuutta tarvitaan myös komentojonossa.

Seuraavassa esimerkissä on kehitetty hieman hello.bat nimisen komentojonon toimintaa. Komentojonolle voidaan antaa parametrina oma nimi, jonka komentojono liittää tervehdykseen. Ensimmäisellä rivillä kielletään selvyyden vuoksi ylimääräiset tulostuksen, jotta esimerkit olisivat hieman selkeämpiä. Kyseisen rivin tarkoitus käsitellään tarkemmin ECHO-komennon yhteydessä Toisella rivillä kirjoitetaan näkyville tervehdys Hello World!. Kolmannella rivillä kirjoitetaan näkyville sana Hello ja sen perään käyttäjän parametrina antama sana.

@ECHO OFF
ECHO Hello World!
ECHO Hello %1 !

Seuraavassa komentojonon tulostus, kun komentojonoa kutsutaan ilman parametreja. Tällöin komentojono tulostaa toiselle riville ainoastaan sanan Hello.

C:\cmd>hello
Hello World!
Hello  !

Seuraavassa komentojonolle annetaan yksi parametri. Parametri annetaan välilyönnillä erotettuna komentojonon perään. Komentojonossa %1 korvataan käyttäjän antamalla parametrilla ja toisella rivillä tulostetaan teksti "Hello pete!".

C:\cmd>hello pete
Hello World!
Hello pete !

Edellisessä komentojonossa välitettiin komentojonolle parametrina yksi parametri. Parametreja voidaan välittää kaikenkaikkiaan yhdeksän kappaletta seuraavan esimerkin mukaisesti. Tarvittaessa parametreja voidaan toki antaa enemmänkin käyttämällä SHIFT-komentoa.

%0      %1      %2       %3     %4     %5     %6     %7     %8   %9
KOMENTO EKAPARA TOKAPARA KOLMAS NELJÄS VIIDES KUUDES SEISKA KASI YSI

Seuraavassa esimerkissä tarkastellaan tilannetta, jossa komentojonolle voidaan välittää kaksi eri parametria. Ensimmäisellä rivillä poistetaan ylimääräinen kaiutus. Toisella ja kolmannella rivillä tulostetaan näkyville tietoja. Neljännellä rivillä kopioidaan levykkeeltä käyttäjän antamasta hakemistosta kaikki tiedostot kovelevyn C-levyasemassa sijaitsevaan hakemistoon, jonka käyttäjä antaa toisena parametrina.

@ECHO OFF
ECHO Kopioidaan levykkeen tiedostoja kovalevylle
ECHO.
COPY a:\%1\*.* c:\%2

Edellistä komentojonoa kutsutaan seuraavassa muodossa:

C:\cmd>kopioi korppu lerppu
         %0     %1      %2

Tällöin komentojonossa olevalla kopiointi rivillä olevat muuttujat korvataan komentorivin parametreilla ja rivistä tulee seuraavan näköinen.

COPY a:\korppu\*.* c:\lerppu

Seuraavassa on esitetty komentojonon tulosteet. Komentojono

C:\cmd>kopioi korppu lerppu
Kopioidaan levykkeen tiedostoja kovalevylle

A:\korppu\selkkarit.html
A:\korppu\Esipuhe.doc
A:\korppu\kysely.html
A:\korppu\Windows95.doc
A:\korppu\index.html
        5 file(s) copied

C:\cmd>

Edelliset komentojono esimerkit eivät ole vielä tuollaisenaan kovin käyttökelpoisia. Tarkoituksena olikin esitellä komentojonojen toimintaa mahdollisimman yksikertaisilla komennoilla. Käyttökelpoisten komentojonojen tekemiseen ei kuitenkaan välttämättä vaadita enempää, koska usein toistuvat toimet saattavat olla hyvinkin yksinkertaisia. Seuraavissa luvuissa tarkastellaan komentoja, joiden avulla saadaan komentojonoon lisää erilaisia ominaisuuksia.

Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
Copyright © Tommi Lahtonen (tommi.j.lahtonen@jyu.fi)<URL: http://www.iki.fi/hazor/>
Petri Heinonen (peheinon@mit.jyu.fi)<URL: http://www.mit.jyu.fi/peheinon/>