Demo 1 - Komentojonot
Seuraavissa demotehtävissä kerrataan hieman DOS-komentoja ja harjoitellaan DOS-komentojonojen tekemistä.
Jos DOS-komennot ovat tuttuja, voit mennä suoraan DOS-komentoja kertaavien tehtävien yli. DOS-komentoja
kertaavat tehtävät kannattaa kuitenkin lukea.
Kaikki demotehtävät voi tehdä Windows 2000, Windows NT:n tai Windows 95:n komentokehotteessa
(engl. Command Prompt). Eri käyttöjärjestelmien välillä demojen tekemisessä voi olla pienoisia eroja, mutta periaatteet
ovat kuitenkin samoja.
Apuna demojen tekemisessä voi ja pitää käyttää Windowsin mukana tulevaan
komento-opastetta.
Komento-opasteen saa käyntiin Windows 2000:ssa valinnalla Start|Help. Opasteen
Index-välilehdeltä komento-opasteen saa näkyville hakusanalla Command Reference.
Windows NT:ssä komento-opasteen saa näkyville kirjoittamalla Start/Run-ikkunaan avustustiedoston nimen (ntcmds.hlp). Avustuksesta löytyy demoissa tarvittavien komentojen syntaksi eli
muoto ja esimerkkejä niiden käytöstä. Avustusta kannattaa opetella
käyttämään!
DOS-komentojen kertaus
Seuraavat demotehtävät tehdään komentokehotteessa (engl. Command Prompt). Komentokehotteen saat auki valinnalla
Start | Command Prompt.
- Tee U:-levyasemalle LAITTEISTOT niminen hakemisto ja vaihda oletushakemistoksi tekemäsi
hakemisto eli siirry tekemääsi hakemistoon. (Vihje: MKDIR ja CD)
- Tee oletushakemistoon tiedosto, joka sisältää nimesi ja osoitteesi EDIT-tekstieditorin avulla.
Tallenna tiedosto nimelle MINA.TXT.
- Tee oletushakemiston alle alihakemisto BATIT.
- Kopioi tiedosto MINA.TXT BATIT-hakemistoon
käyttäen suhteellista viittausta. Siirry
BATIT-hakemistoon ja varmista, että tiedosto on kopioitunut
hakemistoon. (Vihje: COPY)
- Uudelleennimeä LAITTEISTOT-hakemistossa oleva MINA.TXT-niminen tiedosto nimelle
MINA2.TXT. (Vihje: RENAME)
- Siirrä LAITTEISTOT-hakemistossa oleva tiedosto
MINA2.TXT BATIT-hakemistoon käyttäen
absoluuttista viittausta. Varmista lopuksi tiedoston
siirtyminen. (Vihje: MOVE)
- Tuhoa BATIT-hakemistossa olevat tiedostot ja palaa tämän jälkeen omalla nimelläsi varustettuun
hakemistoon. (Vihje: DEL)
Komentojonojen perusteita
Seuraavassa listassa on vihjeitä komentojonojen tekemiseen.
- Komentojono on tiedosto, joka sisältää DOS-komentoja.
- Komentojonotiedosto voidaan kirjoittaa esimerkiksi EDIT-editorilla tai NOTEPAD-tekstieditorilla.
- Komentojono tallennetaan .BAT-päätteiseksi.
- Komentojono voidaan ajaa oletushakemistosta kirjoittamalla komentojonotiedoston nimi
komentoriville.
- Demoissa tehtävät komentojonot kannattaa tallentaa esimerkiksi tehtävien nimelle, jolloin kaikki tekemäsi
komentojonot jäävät talteen.
- Komentojonon tekemisessä kannattaa käyttää pohjana aiemmin tehtyjä komentojonoja.
Seuraavissa tehtävissä komentojonoa lähdetään kehittämään hyvin yksinkertaisen esimerkin pohjalta.
Kehitettävästä komentojonosta ei tule vielä kovin käyttökelpoista, mutta tarkoituksena on oppia komentojonon
kirjoittamisen periaatteet.
Edellisissä tehtävissä käytettiin tarvittavia DOS-komentoja suoraan komentoriviltä,
mutta nyt samoja asioita tehdään komentojonotiedostolla. Siirry aluksi BATIT-hakemistoon.
Tee oletushakemistoon komentojono, joka tekee oletushakemiston alle hakemiston nimelle TEMP. Tallenna
komentojono nimelle TEHT1.BAT. Ideana on siis käyttää hakemiston luomiseen samaa komentoa
kuin DOS-komentojen kertaamisen yhteydessä. Aja komentojono, kun se on valmis ja varmista, että se toimii
oikein.
- Kehitetään edellistä komentojonoa hieman paremmaksi. Muuta komentojono sellaiseksi, että
TEMP-nimisen hakemiston tekemisen jälkeen vaihdetaan se oletushakemistoksi. Huomaa, että
edellä tehty hakemisto kannattaa poistaa ennen komentojonon ajamista.
- Muuta komentojono sellaiseksi, että hakemiston tekemisen ja sinne siirtymisen jälkeen tulostetaan
myös oletushakemiston sisältö. Tekemäsi komentojono ei kuitenkaan ole kovin
yleiskäyttöinen, koska sillä voi tehdä vain TEMP-nimisiä hakemistoja.
Tehdään komentojonosta seuraavaksi yleiskäyttöisempi versio.
- Tee komentojonosta versio, jolle käyttäjä voi antaa parametrina tehtävän hakemiston
nimen. Komentojonolle voitiin antaa parametrejä sen kutsumisen yhteydessä. Uutta komentojonoa voitaisiin
esimerkiksi kutsua seuraavasti: TEHT4 TAMP. Edellisellä kutsulla
komentojonon pitäisi tehdä TAMP-niminen hakemisto ja siirtyä hakemistoon, jonka jälkeen se
tulostaisi hakemiston sisällön. Hakemiston nimen saa siis päättää komentojonon
käyttäjä. (Vihje: %1)
- Kun edellä tehty komentojono toimii hyvin, pitää siihen lisätä hieman
käyttäjäinformaatiota ja poistaa turhien komentojen näkyminen näytöllä.
Käyttäjälle pitää kertoa mitä komentojono oikein teki. Käyttäjän ei
kuitenkaan tarvitse nähdä tehtäviä komentoja komentorivillä, joten ne on piilotettava
jotenkin. (Vihje: ECHO)
Hieman kehittyneempiä komentojonoja
- Edellä tehty komentojono toimii virheellisesti, jos käyttäjän antama hakemisto on valmiiksi
olemassa. Muuta komentojono sellaiseksi, että käyttäjän antama hakemisto tehdään vain,
jos sitä ei ole ennestään olemassa. Hakemiston tekemisestä tai sen epäonnistumisesta
pitää informoida käyttäjää. Lopuksi komentojono siirtää
käyttäjän antaman hakemiston oletushakemistoksi ja antaa siitä hakemistolistauksen. (Vihje: IF ja
GOTO)
- Kehitetään komentojonoa siten, että komentojono pysähtyy ennen hakemiston tekemistä ja
antaa käyttäjälle mahdollisuuden keskeyttää komentojonon suorittaminen painamalla CTRL-C
näppäinyhdistelmää. (Vihje: PAUSE)
- Edellä toteutettu komentojono tutkii käyttäjän antaman hakemiston olemassaolon ja tekee hakemiston
tarvittaessa. Muuta komentojono sellaiseksi, että käyttäjä antaa komentojonolle kaksi parametria.
Ensimmäinen parametri kertoo mitä kopiodaan ja toinen parametri kertoo minne kopioidaan (Esimerkiksi
TEHT7 MISTA\MITA MINNE). Komentojonossa voidaan olettaa, että kopioinnin kohde on aina hakemisto.
Jos hakemistoa ei ole, komentojono tekee hakemiston ja vasta sen jälkeen suorittaa kopioinnin. Valmiina löytyvä
XCOPY-komento ajaisi miltei saman asian. XCOPYn on täysin
englanninkielinen ja se ei oleta kohteen olevan hakemisto. Kannattaa kuitenkin yrittää käyttää XCOPY-komentoa.
(Vihje: %2)
- Muuta edellä tehty komentojono sellaiseksi, että komentojonolle annetaan ensin kopioinnin kohdehakemisto
ja tämän jälkeen voidaan antaa mielivaltainen määrä kopioitavia tiedostoja (siis
enemmän kuin 9 kappaletta). (Vihje: SET, SHIFT, IF ja GOTO)