Tässä luvussa käsitellään DOS-komentojonoja. Komentojono on nimensä mukaisesti jono komentoja. Luvussa käsiteltävät komentojonot eivät ole puhtaasti DOS-komentojonoja, koska "puhdasta" DOSia käytetään nykyisin hyvin vähän. Tämän vuoksi esimerkkeihin ja komentoihin on otettu mukaan Windows 2000, NT, 98 ja 95 mukanaan tuomia ominaisuuksia.
Seuraavassa on esitelty DOS-komennot sekä muutama tarpeellinen apuohjelma erittäin lyhyesti.
CD \ vaihtaan oletushakemistoksi levyaseman juurihakemiston.CD .. vaihtaan oletushakemistoksi nykyisen oletushakemiston isähakemiston (lähemmäksi juurta).CD ..\hakemisto vaihtaa oletushakemistoksi oletushakemiston isähakemistossa sijaitsevan hakemisto-nimisen hakemiston.CD hakemisto vaihtaa oletushakemistoksi oletushakemiston alihakemiston hakemisto.Seuraavassa on muutama hyödyllinen merkkipohjainen ohjelma, joka on asennettava erikseen käyttöjärjestelmään.
Komentojen putkittamisella voidaan komennon tai ohjelman tuloste ohjata jonkin toisen ohjelman syötteeksi. Seuraavassa yksinkertainen esimerkki komennon putkittamisesta, jossa DIR-komento putkitetaan MORE-nimiselle ohjelmalle. Toisin sanoen DIR-komennosta syntyvä tulosten ohjataan MORE-ohjelmalle, joka osaa näyttää tulosteen sivu kerrallaan.
DIR |MORE
Jos halutaan esimerkiksi järjestää jonkin tiedoston rivit aakkosjärjestykseen näytölle, niin se onnistuu putkittamalla tiedoston tuloste SORT-ohjelmalle. Seuraavassa esimerkissä on koe.txt -tiedosto, jonka sisältö on seuraavassa nähtävillä.
eka toka kolmas neljäs
Tiedoston tulostaminen näytölle tehdään TYPE-komennolla, jonka tulos ohjataan SORT-ohjelmalle.
TYPE koe.txt | SORT
Näytölle tulostettaessa tiedoston rivit on järjestetty aakkosjärjestykseen seuraavan esimerkin mukaisesti.
eka kolmas neljäs toka
Komentojen uudelleen suuntaaminen tarkoittaa komennon tulosteen suuntaamista esimerkiksi tiedostoon.
Esimerkiksi DIR-komennon tuloste voidaan uudelleen suunnata esimerkiksi dir.txt-tiedostoon seuraavan esimerkin mukaisesti.
DIR > dir.txt
Jos komennon tuloste halutaan suunnata jo olemassa olevan tiedoston loppuun, niin suurempi kuin -merkin paikalle on laitettava kaksi suurempi kuin -merkkiä. Seuraavassa esimerkissä DIR-komennon tuloste ohjataan jo olemassa olevan tiedoston dir.txt.
DIR >> dir.txt
Seuraavassa hieman monipuoleisempi esimerkki komentojen uudelleen suuntaamisesta ja putkittamisesta.
Esimerkissä putkitetaan DIR-komennon tuloste FIND-ohjelmalle, jolla
etsitään hakemistolistauksesta kaikki rivit, joilla lukee txt.
Tämän jälkeen FIND-ohjelman tuloste uudelleen suunnataan tiedostoon tekstit.txt.
Tiedostoon menee ainoastaan hakemistolistauksen ne rivit, jotka koskevat txt-päätteisiä tiedostoja.
DIR | FIND ".txt" > tekstit.txt
DOS-komentojonot olivat erityisen merkittäviä ja käyttökelpoisia DOSin ja Windows 3.1:n aikaan, mutta nykyisinkin niiden avulla voidaan tehdä Windows-ympäristössä erilaisia ylläpidollisia toimia.
Komentojonojen avulla on kohtuullisen helppoa toteuttaa usein toistuvia toimintoja, kuten esimerkiksi varmuuskopiointia. Komentojonojen avulla voidaan myös tehostaa erilaisia kopiointitoimia sekä muutamien ohjelmien käyttöä. Komentorivillä käytettävissä ohjelmissa on paljon parametreja, joiden avulla voidaan ohjata ohjelman toimintaa. Jos ohjelmaa ajetaan usein samoilla parametreilla, niin ohjelmakutsun ja sen parametrien tekeminen komentojonoksi voi säästää tulevaisuudessa paljon aikaa.
Komentojonotiedosto on tavallinen pelkkää tekstiä sisältävä tekstitiedosto (ASCII), joka nimetään päätteelle .BAT tai .CMD. CMD-päätteisinä tiedosto eivät toimi ainakaan Windowsin versioissa 95 tai 98, mutta ne toimivat Windowsin versiossa 2000.
Komentojonotiedosto sisältää tavallisia DOS-komentoja sekä ajettavien ohjelmien nimiä ja muutamia erityisesti komentojonoja varten tehtyjä komentoja. Jokainen yksittäinen komentojonotiedoston rivi sisältää jonkin DOS-komennon.
Seuraavassa esimerkissä on tehty yksinkertaisin komentojono, jonka voi toteuttaa. Komentojono ainoastaan tulostaa näytölle tekstin "Hello World". Seuraava rivi on tallennettu hello.bat nimiseen tiedostoon. Tiedoston ajaminen onnistuu kirjoittamalla komentoriville pelkkä komentojonon nimen alkuosa esimerkin tapauksessa hello.
ECHO Hello World!
Komentojono sisältää ainoastaan echo-komennon, jonka perään on kirjoitettu teksti, joka halutaan tulostaa näytölle. Seuraavassa on nähtävillä komentojonon tuloste, jossa ensimmäisellä rivillä on korostettuna käyttäjän antama komento. Seuraavalla riville on tulostunut suoritettava komento. Vasta tämän jälkeen tulee näkyville komennon tuloste eli teksti Hello World!.
C:\cmd>hello C:\cmd>echo Hello World! Hello World! C:\cmd>
Ajettaessa tehty komentojono täytyy olla oletushakemistossa tai PATH-polkumuuttujasta täytyy löytyä viittaus hakemistoon, jossa komentojonot sijaitsevat.
Seuraavassa hieman monimutkaisempi esimerkki komentojonosta. Komentojonon alussa tulostetaan näkyville viesti käyttäjälle, jonka jälkeen tulostetaan yksi tyhjä rivi. Tämän jälkeen kopioidaan A-levyaseman (levykkeen) juuresta kaikki tiedostot C-levyaseman juuressa sijaitsevaan korppu-hakemistoon. Nyt peräkkäisiä komentoja on kolme kappaletta ja ne suoritetaan yksitellen toistensa jälkeen.
ECHO Kopioidaan levykkeen tiedostoja kovalevylle ECHO. COPY a:\*.* c:\korppu
Edellisen esimerkin komentojono on tallennettu nimelle kopioi.bat. Seuraavassa on nähtävillä komentojonon tuloste.
C:\cmd>kopioi
C:\cmd>ECHO Kopioidaan levykkeen tiedostoja kovalevylle
Kopioidaan levykkeen tiedostoja kovalevylle
C:\cmd>ECHO.
C:\cmd>COPY a:\*.* c:\korppu
a:\selkkarit.html
a:\Esipuhe.doc
a:\kysely.html
a:\Windows95.doc
a:\index.html
5 file(s) copied
C:\cmd>
Edelliset komentojonon eivät ole tuollaisenaan kovin käyttökelpoisia, koska niissä tehdään aina samat asiat. Käyttäjä pääsee kuitenkin muuttamaan hieman komentojonon toimintaa komentojonoihin välitettävien parametrien avulla. Parametrien välittämisestä enemmän seuraavassa luvussa.
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.
Komentojonoissa voidaan käyttää mitä tahansa DOS-komentoja tai ohjelmien nimiä. Seuraavissa luvuissa tutustutaan erityisesti komentojonojen yhteydessä käytettäviin komentoihin, joiden avulla komentojonoista saadaan entistä käyttökelpoisempia.
ECHO-komennon avulla voidaan ohjata komentojonon tulostetta.
echo [on | off] [viesti]
Seuraavassa esimerkissä tulostetaan näkyville teksti "Mukavaa päivää!".
Komentojonon ensimmäinen rivi kertoo, että komentojonon komentojen tulostuminen näytölle otetaan pois päältä ja ainoastaan ECHO-komennolle tulostettavat asiat tulevat käyttäjän nähtäville. @-merkki rivin alussa kertoo, että kyseistä riviä ei tulosteta näkyviin. Ilman @-merkkiä ensimmäinen rivi tulisi vielä näkyviin, mutta loput komennot eivät tule näkyviin.
Toisella ja neljännellä rivillä tulostetaan tyhjä rivi näkyville komennolla ECHO. . Kolmannen rivin ECHO-komennolla voidaan tulostaa käyttäjälle haluttu informaatio näkyville.
@ECHO OFF ECHO. ECHO Mukavaa päivää! ECHO.
Seuraavassa on esitetty komentojonon tulosteet. Korostettu teksti on käyttäjän antama komentojonon kutsu.
C:\cmd>paivaa Mukavaa päivää! C:\cmd>
REM-komennolla voidaan komentojonoon liittää kommentteja, jotka eivät vaikuta komentojonon suorittamiseen.
rem [kommenttiteksti]
REM-komennolla on seuraavassa on liitetty komentojonoon informaatiota komentojonon toiminnasta.
@ECHO OFF REM HELLO.BAT REM Komentojono tulostaa tekstin Hello World! ECHO. ECHO Hello World! ECHO.
Seuraavassa on esitetty edellisen komentojonon tulostamat tekstit.
C:\cmd>hello Hello World! C:\cmd>
PAUSE-komennolla voidaan keskeyttää komentojonon suoritus. PAUSE-komennolla keskeytyksessä komento tulostaa tekstin "press any key to continue. . .". PAUSE-komento antaa käyttäjälle mahdollisuuden keskeyttää komentojonon suorittaminen CTRL-C-näppäinyhdistelmällä.
Seuraavassa on esitetty yksinkertainen komentojono, joka jää odottamaan käyttäjän toimintaa.
@ECHO OFF ECHO Jos haluat jatkaa komentojonoa, niin paina "any key"-näppäintä! ECHO Jos et halua jatkaa, niin paina CTRL-C-näppäinyhdistelmää! PAUSE ECHO Löysit "any key"-näppäimen!
C:\cmd>pausetus Jos haluat jatkaa komentojonoa, niin paina "any key"-näppäintä! Jos et halua jatkaa, niin paina CTRL-C-näppäinyhdistelmää! Press any key to continue . . .
Jos käyttäjä painaa mitä tahansa näppäintä, niin komentojono tulostaa lisäksi vielä seuraavan rivin. Jos käyttäjä haluaa keskeyttää komentojonon suorittamisen, niin se onnistuu painamalla CTRL-C-näppäinyhdistelmää.
Löysit "any key"-näppäimen!
Seuraavan esimerkin komentojono tulostaa käyttäjälle informaatiota ja antaa mahdollisuuden keskeyttää toimintansa ennen hakemiston luomista. Esimerkissä PAUSE-komennon tulostus ohjataan suoraan "roskikseen", kuten seuraavassa esimerkissä on tehty. Jos komentojonon toimintaa ei keskeytetä CTRL-C-näppäinyhdistelmällä, niin komentojono luo hakemiston ja tulostaa sen sisällön näkyviin.
@ECHO OFF ECHO Tehdään hakemisto %1 ECHO Keskeyttääksesi paina CTRL-C! ECHO Muussa tapauksessa paina mitä tahansa . PAUSE >NUL MD %1 DIR %1
Seuraavassa on nähtävillä edellisen komentojonon tulosteet.
C:\cmd>pausetus koe
Tehdään hakemisto koe
Keskeyttääksesi paina CTRL-C!
Muussa tapauksessa paina mitä tahansa .
Volume in drive C has no label
Volume Serial Number is 3F3C-1CDA
Directory of C:\cmd\koe
. <DIR> 25.10.01 8.57 .
.. <DIR> 25.10.01 8.57 ..
0 file(s) 0 bytes
2 dir(s) 3 629.66 MB free
C:\cmd>
Komentojonoissa komennot suoritetaan riveittäin peräkkäin tiedoston alusta aina loppuun saakka. GOTO-komennon avulla voidaan muuttaa komentojonon komentojen suoritusjärjestystä. Komentojonon sisällä voidaan hyppiä paikasta toiseen nimiöiden avulla. GOTO-komennolle annetaan nimiö, johon sen käsketään hypätä. Nimiö merkitään komentojonon sisälle aloittamalla nimiörivi kaksoispisteellä (:), jonka jälkeen välittömästi annetaan nimiön nimi.
goto nimiö ... :nimio
GOTO-komennon käyttäminen on välttämätöntä vähänkin monimutkaisemmissa komentojonoissa. DOS-komentojonoissa ei ole samanlaisia silmukkarakenteita kuin ohjelmointikielissä, joten sen vuoksi joudutaan käyttämään GOTO-rakenteita.
Seuraavassa esimerkissä on ikuinen silmukka, joka saadaan keskeytettyä CTRL-C-näppäinyhdistelmällä. GOTO-komennolla hypätään takaisin kohtaan:alku kolmannelle riville.
@ECHO OFF :alku ECHO Ikuinen silmukka :) ECHO CTRL-C keskeyttää!! PAUSE GOTO alku
Seuraavassa on esiteltynä edellisen esimerkin toimintaa. GOTO-silmukka käytiin kaksi kertaa läpi, jonka jälkeen sen suoritus keskeytettiin CTRL-C-näppäinyhdistelmällä.
C:\cmd>silmukka Ikuinen silmukka :) CTRL-C keskeyttää!! Press any key to continue . . . Ikuinen silmukka :) CTRL-C keskeyttää!! Press any key to continue . . . ^C Terminate batch job (Y/N)?y C:\cmd>
Tarkempi ja hieman kehittyneempi esimerkki GOTO-komennon käytöstä löytyy IF-komennon esimerkistä.
IF-komennolla voidaan komentojonon toimintaa ehdollistaa. IF-komento on hyvin monipuolinen komento, jolla voidaan testata esimerkiksi merkkijonojen yhtä suuruutta.
if [not] merkkijono1==merkkijono2 komento
IF-komennon avulla voidaan myös testata tiedostojen ja hakemistojen olemassaoloa. Hakemiston olemassa olon testaaminen Windows 95:ssä aiheuttaa komentoon pienen lisän. Hakemistoa täytyy testata muodossa HAKEMISTO\NUL, koska pelkällä hakemistonimellä testaaminen ei onnistu.
if [not] exist tiedostonimi komento
IF-komennolla voidaan myös testata komentojen ja ohjelmien antamia palautusarvoja.
if [not] errorlevel numero komento
Seuraavassa esimerkissä toisella rivillä testataan IF-komennolla onko komentojonolle annettu parametria. Jos parametria ei ole annettu, niin hypätään kohtaan :puuttuu ja tulostetaan käyttäjälle informaatiota asiasta.
Jos parametri on annettu, niin jatketaan kolmannelle riville, jossa testataan parametrina annettavan hakemiston olemassaolo. Jos hakemisto on olemassa, niin hypätään kohtaan :virhe, jossa käyttäjälle kerrotaan tapahtuneesta. '
Virheen tulostamisen jälkeen tehdään uusi hyppy kohtaan :loppu, joka on komentojonon viimeinen rivi. Jos parametrina annettu hakemisto ei ollut olemassa, niin jatketaan komentojonoa riveittäin alas ja tehdään hakemisto rivillä 5. Hakemiston tekemisen jälkeen kerrotaan asiasta käyttäjälle ja hypätään komentojonon kohtaan :loppu.
@ECHO OFF IF "%1"=="" GOTO puuttuu IF EXIST %1 GOTO virhe MKDIR %1 ECHO Hakemisto %1 tehty! GOTO loppu :virhe ECHO Hakemisto on jo olemassa! ECHO Ei voida tehdä! GOTO loppu :puuttuu ECHO Et antanut parametria! ECHO Komento on annettava muodossa: ECHO TEEIF hakemistonimi :loppu
Komentojonon suoritus voidaan keskeyttää kesken suorituksen EXIT-komennolla. Jos komentojonon suoritus keskeytetään EXIT-komennolla, niin komentokehoteikkuna suljetaan kokonaan. Tällöin käyttäjä ei saa tarvittavaa informaatiota. Edellä olleen IF-esimerkin GOTO loppu tekstien paikalla voitaisiin käyttää EXIT-komentoa.
FOR-komennon avulla voidaan käsitellä erikseen jokainen joukkona annetusta tiedostosta. Esimerkiksi jokerimerkkien avulla annettu parametri voidaan käydä läpi tiedostoittain. Seuraavassa FOR-komennon syntaksi:
for %%muuttuja in (joukko) do komento
Seuraavassa yksinkertaisessa esimerkissä käydään läpi kaikki txt-päätteiset tiedostot ja tulostetaan niiden sisältö näytölle.
for %%f in (*.txt) do type %%f
Seuraavassa esimerkissä tulostetaan näkyville kaikki ensimmäisenä parametrina annettujen tiedostojen sisältö. Esimerkiksi parametrina on voitu antaa *.txt, jolloin jokainen hakemistossa ollut txt-päätteinen tiedosto tulostetaan näytölle yksi kerrallaan, kuten edellisessä esimerkissä.
for %%f in (%1) do type %%f
Seuraavassa esimerkissä on käytetty FOR-komentoa edellisen esimerkin tapaan. Poikkeuksena edelliseen on, että komentojono tulostaa bat-päätteiset tiedostot suoraan annetun tiedoston loppuun. Tämän lisäksi komentojono kirjoittaa näytölle sen tiedoston nimen, jota ollaan käsittelemässä. Kahden komennon suorittaminen on mahdollistettu &-merkin avulla. Tämä onnistuu ainakin Windows 2000:ssa, mutta ei esimerkiksi Windows 95:ssä.
@ECHO OFF FOR %%k IN (*.bat) DO TYPE %%k >> batit.txt & ECHO %%k
Komentojono tulostaa näytölle seuraavaa:
U:\LAITT~PN\cmd>kooste hello.bat kopioi.bat ikuinen.bat kooste.bat
Windows 2000 tuo mukanaan muutamia laajennuksia, jotka ovat erityisen käyttökelpoisia.
FOR-komennon avulla voidaan esimerkiksi parsia tiedostoja sekä näyttää tiedostoista haluttuja informaatioita.
Perinteisessä DOSissa tällaiset olisivat vaatineet erillisten apuohjelmien käyttöä
ja kohtuullisen hankalia komentojonoja.
Seuraavassa esimerkissä parsitaan tiedostoa. Tiedoston tiedot on jaettu sarakkeisiin ja sarakkeiden erotinmerkiksi on laitettu pystyviiva (|) seuraavan esimerkin mukaisesti.
koe | koe2 | koe3 | koe 4 koe | koe2 | koe3 | koe 4 koe | koe2 | koe3 | koe 4
Seuraavassa komentoriviltä suoraan käytetyllä FOR-komennolla toteutettu tiedoston parsiminen, jossa tulostetaan toinen ja neljäs sarake tiedostosta.
FOR /F "tokens=2,4 delims=|" %i in (koe.txt) do @echo %i %j
Komento tulostaa sarakkeet seuraavasti:
koe2 koe 4 koe2 koe 4 koe2 koe 4
FOR-komennolle löytyy mukava laajennus tiedostolistauksen parsimiseen. Seuraavassa esimerkissä tulostetaan oletushakemiston tiedostojen muutospäivämäärä ja tiedostonimi ilman päätettä.
FOR %f in (*.*) do @echo %~tf %~nf
Seuraavassa edellisen esimerkin tulosteet:
U:\LAITT~PN\cmd>FOR %f in (*.*) do @echo %~tf %~nf 07.11.01 08:27 kooste 29.10.01 13:51 muuttuja 31.10.01 11:17 koe 29.10.01 11:41 koe 29.10.01 13:11 kopioi 07.11.01 08:27 batit 29.10.01 14:12 kaikki 07.11.01 07:46 koetus 29.10.01 10:08 ikuinen 29.10.01 16:05 tiedosto 29.10.01 13:51 hello
Tarkemmin FOR-komennon parametreihin ja mahdollisuuksiin kannattaa tutustua FOR-komennon opasteen avulla. Täydellisen opasteen saa näkyviin komentoriviltä komennolla FOR /? | MORE.
SHIFT-komento mahdollistaa komentojonoissa enemmän kuin
yhdeksän parametrin käytön. Komentoa ei useinkaan tarvita, koska
komentojonolle joutuu harvoin antamana edes yhdeksää parametria.
SHIFT-komento siirtää kaikkia parametreja yhden taaksepäin eli
%2 parametrista tulee %1 parametri. Seuraavassa SHIFT-komennon syntaksi:
shift
Seuraavassa esimerkissä tuhotaan kaikki parametrina annettavat tiedostot. SHIFT-komennon käyttö mahdollistaa jokaisen parametrina annetun tiedoston tuhoamisen yksitellen. Jokaisen tiedoston tuhoamisen yhteydessä kysytään varmistus tuhoamiselle. Välissä olevalla IF-komennolla saadaan katkaistua komentojonon suoritus, jos parametrit loppuvat. Muuten kysymyksessä olisi ikuinen silmukka.
@ECHO OFF :alku IF "%1"=="" goto loppu ECHO Tuhotaan %1 ECHO Paina jotakin näppäintä jatkaaksesi... ECHO Painamalla CTRL-C voit keskeyttää tapahtuman! PAUSE > NUL DEL %1 SHIFT GOTO alku :loppu
CALL-komennolla voidaan kutsua komentojonon sisältä toista komentojonoa. Komentojonoa kutsuttaessa täytyy antaa komentojonon paikka ja nimi sekä komentojonoon liittyvät parametrit. Esimerkiksi seuraavasti:
call komentojonon_nimi parametrit
CALL-komentoa käytettäessä komentojonon kutsumisen jälkeen suoritus palautetaan kutsuvaan komentojonoon. Ilman CALL-komentoa suoritus loppuisi kutsutun komentojonon suorittamisen jälkeen.
Komennolla SET voidaan tulostaa, muuttaa tai asettaa ympäristömuuttujien arvoja. Komentorivillä SET-komento näyttää kaikki määritellyt ympäristömuuttujat. Jos halutaan muuttaa jotakin olemassa olevaa ympäristömuuttujaa, niin muuttaminen tehdään seuraavan esimerkin mukaisesti. Esimerkissä PATH-ympäristömuuttuja sisältää tiedon hakemistoista, joista etsitään ajettavia ohjelmia, jollei sitä löydy oletushakemistosta. SET-komennolla PATH-ympäristömuuttujalle voidaan asettaa arvo yhtä suuruus-merkin avulla. Yhtäsuuruus merkin jälkeen annetaan %path%, jolla asetetaan arvoksi tämän hetkisen PATH-muuttujan arvo ja sen perään tulee uusi hakemisto. Hakemistojen välisenä erottimena toimii puolipiste. Seuraavassa esimerkki uuden polun lisäämisestä PATH-muuttujaan.
set PATH=%PATH%;C:\HAKEMISTO\
Seuraavassa esimerkissä käytetään SET-komentoa ottamaan talteen parametrina tuotu arvo. Esimerkissä testataan parametrien olemassaolo ja tarvittaessa tehdään hakemisto, jonne parametrina annetut tiedostot kopioidaan. Tämän jälkeen kopioidaan jokaisen parametrin osoittama tiedosto kohdehakemistoon niin kauan kuin parametreja riittää. Seuraava komentojono on tallennettu nimelle TEESET.bat.
@ECHO OFF REM Testataan oliko ensimmäistä parametriä IF "%1"=="" GOTO para REM Testataan oliko toista parametriä IF "%2"=="" GOTO para REM Alustetaan kohde-niminen muuttuja set kohde=%1 REM Testataan hekemiston olemassaoloa IF EXIST %1 GOTO kopioi ECHO Tehdään hakemisto %1 MD %1 :kopioi IF "%2"=="" GOTO loppu REM Kopioidaan tiedosto kohde-muuttujan ilmaisemaan hakemistoon COPY %2 %kohde% SHIFT GOTO kopioi :para ECHO Et antanut riittävästi parametrejä komentojonolle! ECHO Kutsu komentojonoa muodossa: ECHO TEESET hakemistonimi tiedosto1 [tiedosto2 tiedosto3 .. tiedostoN] :loppu
Seuraavassa on esiteltynä muutaman ohjelman lyhyet suomenkieliset käyttöohjeet. Kaikkia ohjelmien mahdollisuuksia ei ole käyty läpi, joten ohjelman omaan opasteeseen kannattaa myös tutustua.
ARJ on DOS-pohjainen pakkaamisohjelma, jolla pystytään myös purkamaan sillä pakatut tiedostot. ARJ toimii koneen komentoriviltä eli sen käyttämiseksi joudutaan menemään Command Promptiin (suom. Komentokehote). ARJ toimii samoin kuin mikä tahansa komentoriviltä ajettava ohjelma. Ohjelman toimintaa ohjataan erilaisilla optioilla, joilla pystytään määrittelemään mitä kulloinkin ollaan tekemässä. ARJ:n englanninkielisen avustuksen saat näkyviin kirjoittamalla pelkästään ARJ ja hieman tarkemman avustuksen saat kirjoittamalla ARJ /? .
Komento on yleisesti muotoa, jossa hakasulkeissa olevat osat ovat vapaaehtoisia.
ARJ komento [-parametrejä [-parametrejä...]] pakkauksen_nimi [tiedostojen_nimet...]
Seuraavaani on listattu muutama hyödyllinen komento selitteineen.
Seuraavassa muutamia esimerkkejä ARJ:n käytöstä.
Tekee oletushakemiston tiedostosta isotied.exe korpunkokoisia paketteja, joista ensimmäinen nimetään koe.arj ja seuraavat koe.a01 jne. Paketit laitetaan hakemistoon d:\omat\nimi\ . Komento on luonnollisestikin järkevä silloin, kun tiedoston koko on huomattavasti suurempi kuin levykkeen koko!
arj a –v1440 d:\omat\nimi\koe.arj isotied.exe
Tekee oletushakemiston kaikista tiedostoista ja sen alihakemistoista paketin nimelle koe.arj. Paketti laitetaan hakemistoon d:\omat\nimi\ . Sopii hyvin tiedostojen varmuuskopiointiin kovalevylle tai koko hakemistorakenteen ottamiseksi mukaan levykkeelle.
arj a –r d:\omat\nimi\koe.arj *.*
Purkaa korppuasemanjuuressa olevan tiedoston isotied.arj annattuun hakemistoon. Jos kyseessä on useamman korpun paketti tullaan uutta korppua kysymään automaattisesti.
arj x –va A:\isotied.arj d:\omat\nimi\
Purkaa hakemistossa D:\omat\nimi\ olevan tiedoston joku.arj oletushakemistoon. Purkaminen tapahtuu alkuperäisen hakemistorakenteen mukaisesti.
arj x –r D:\omat\nimi\joku.arj
Seuraavassa tutustutaan lyhyesti SCP:n käyttöön. SCP on ohjelma, jonka avulla voidaan kopioida tiedostoja kahden koneen välillä turvallisesti. FTP-ohjelmalla kopioitaessa käyttäjätunnus- ja salasanatiedot lähetetään yleensä selväkielisenä. Tämän vuoksi kannattaakin käyttää SCP-ohjelmaa. Seuraavassa erittäin lyhyt ohje SCP:n käyttöön. Halutessasi voit tutustua tarkemmin SCP:n ominaisuuksiin ja optioihin.
Syntaksi scp [-r] [[user@]host1:]filename1 [[user@]host2:]filename2
Ensimmäisenä parametrina SCP:lle annetaan hakemistorakenne ja tiedosto, joka halutaan kopioida. Toisena parametrina annetaan hakemistorakenne, jonne tiedosto halutaan kopioida. Haluttaessa tiedosto voidaan nimetä uudelleen kopioinnin yhteydessä antamalla uusi nimi toisen parametrin yhteydessä. Lähde- ja kohdehakemistot voivat sijaita palvelinkoneilla, jolloin hakemistoviittausten alkuun on laitettava koneen käyttäjätunnus ja koneen nimi muodossa user@host (esim. peheinon@tukki.cc.jyu.fi). Tämän jälkeen tulee kaksoispistellä (:) erotettuna palvelimella sijaitseva hakemistorakenne. Optiolla -r voidaan kopioida kokonaisia hakemistorakenteita. Jos tiedot ovat oikein, niin SCP kysyy salasanan ja käyttäjätunnuksen koneeseen, johon tai josta olet kopioimassa tiedostoja.
Esimerkkejä SCP:n käytöstä:
Seuraavassa kopioidaan tukki.cc.jyu.fi-koneenpeheinon käyttäjän kotihakemiston alla olevasta WWW-hakemistosta index.html niminen tiedosto. Lokaalin koneen U:-levyasemassa sijaitsevaan tietoverkot hakemistoon.
scp peheinon@tukki.cc.jyu.fi:www/index.html U:\tietoverkot\
Seuraavassa esimerkissä kopioidaan U:levyaseman tietoverkot-hakemistosta demo.html niminen tiedosto tukki.cc.jyu.fi koneen peheinon käyttäjän kotihakemiston alla olevaan www/demot-hakemistoon.
scp U:\tietoverkot\demo.html peheinon@tukki.cc.jyu.fi:www/demot/
ZIP-paketteja tehdessä voidaan joutua käyttämään eri ohjelmaa purkamiseen ja pakkaamiseen. PKZIP on tarkoitettu tiedostojen pakkaamiseen ja PKUNZIP on tarkoitettu pakkausten purkamiseen. Seuraavassa lyhyet ohjeet kummankin käytöstä. Tarkemmat ohjeet ohjelman käytöstä ja erilaisista optioista saat pelkällä ohjelman nimellä.
Syntaksi: pkzip [-optiot] paketin_nimi pakattavat_tiedostot
Seuraavassa esimerkissä pakataan pakkaus.zip nimiseen pakettiin oletushakemiston demot-hakemistosta kaikki tiedostot.
pkzip pakkaus.zip demot\*.*
Seuraavassa esimerkissä lisätään pakkaus.zip nimiseen pakettiin oletushakemiston tiedostot ja kaikkien alihakemistojen tiedostot sekä hakemistorakenne. Jos pakkaus.zip tiedostoa ei ole, niin sellainen luodaan.
pkzip -p -r pakkaus.zip *.*
Syntaksi: pkunzip [-optiot] paketin_nimi purettavat_tiedostot
Seuraava esimerkki purkaa oletushakemistoon paketti.zip tiedoston.
pkunzip PAKETTI.ZIP
Seuraava esimerkki purkaa oletushakemistoon paketti.zip tiedoston koko pakatun hakemistorakenteen.
pkunzip -e -d PAKETTI.ZIP