Komentojonojen perusteita

English version

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 muistin virkistämiseksi.

Kaikki demotehtävät voi tehdä Windows 2000, Windows NT:n tai Windows 95:n komentokehotteessa (engl. Command Prompt tai MS-DOS 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-ohjetta. Ohjeesta löytyy demoissa tarvittavien komentojen syntaksi eli muoto ja esimerkkejä komentojen käytöstä. Ohjetta kannattaa opetella käyttämään!

Kaikki seuraavat demotehtävät tehdään komentokehotteessa (engl. Command Prompt). Komentokehote avautuu valinnalla Start | Command Prompt / MS-DOS Prompt.

DOS-komentojen kertaus

Seuraavassa kerrataan lyhyesti DOS-komentoja. DOS-komentoja voit kerrata luento3:n materiaaleista.

  1. Tee U:-levyasemalle LAITTEISTOT niminen hakemisto ja vaihda oletushakemistoksi tekemäsi hakemisto eli siirry tekemääsi hakemistoon. (Vihje: MKDIR ja CD)
  2. Tee oletushakemistoon tiedosto, joka sisältää nimesi ja osoitteesi EDIT-tekstieditorin avulla. Tallenna tiedosto nimelle MINA.TXT.
  3. Tee oletushakemiston alle alihakemisto BATIT.
  4. Kopioi tiedosto MINA.TXT BATIT-hakemistoon käyttäen suhteellista viittausta. Siirry BATIT-hakemistoon ja varmista, että tiedosto on kopioitunut hakemistoon. (Vihje: COPY)
  5. Uudelleennimeä LAITTEISTOT-hakemistossa oleva MINA.TXT-niminen tiedosto nimelle MINA2.TXT. (Vihje: RENAME)
  6. Siirrä LAITTEISTOT-hakemistossa oleva tiedosto MINA2.TXT BATIT-hakemistoon käyttäen absoluuttista viittausta. Varmista lopuksi tiedoston siirtyminen. (Vihje: MOVE)
  7. Tuhoa BATIT-hakemistossa olevat tiedostot ja jatka seuraavien demotehtävien tekemisellä. (Vihje: DEL)

Komentojen putkitus ja uudelleen suuntaus sekä muutamia uusia DOS-komentoja

Seuraavissa tehtävissä tutustutaan muutamiin uusiin DOS-komentoihin sekä perehdytään komentojen putkitukseen ja uudelleen suuntaamiseen.

  1. Tutki aluksi mitä MORE-ohjelma tekee. Ohjelmasta saat ohjeen samalla tavalla kuin DOS-komennoista.
  2. Putkita DIR-komennon tuloste MORE-ohjelmalle.
    • Hakemistolistaus pitäisi tulla näkyville sivutettuna, joten DIR-komento kannattaa ottaa hakemistosta, jonka sisältö ei mahdu kerralla ruudulle.
    • Millä DIR-komennon attribuutilla voidaan tehdä sama asia?
    • Mitä eroa komennoilla on?
  3. Uudelleen suuntaa DIR-komennon tulostus tiedostoon DIR.TXT . Tarkista löytyykö hakemistolistaus DIR-komennon hakemistolistaus tiedostosta DIR.TXT. Tiedostoa voit katsella EDIT-ohjelmalla.
  4. Tutki mitä SORT-ohjelma tekee?
  5. Käytä SORT-ohjelmaa siten, että DIR-komennon tuloste putkitetaan SORT-ohjelman läpi ja sen jälkeen uudelleen suunnataan tiedostoon DIR.TXT .
  6. Lisää DIR.TXT tiedoston loppuun DIR-komennon tuloste, joka on järjestetty SORT-komennolla laskevaan järjestykseen.
  7. Tutki mitä XCOPY-komento tekee? Komentoa tullaan tarvitsemaan myöhemmissä demotehtävissä.
  8. Tutki mitä komento DELTREE (Windows95/98) tai RMDIR /S (Windows NT/2000) tekee? Komento on hieman vaarallinen, mutta se on oikeissa käsissä tehokas.

Komentojonojen perusteita

Seuraavassa listassa on vihjeitä komentojonojen tekemiseen:

Edellisissä tehtävissä käytettiin tarvittavia DOS-komentoja suoraan komentoriviltä, mutta seuraavissa tehtävissä samoja asioita tehdään komentojonotiedostolla. 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.

  1. Vaihda oletushakemistoksi BATIT-hakemisto.
  2. Tee oletushakemistoon komentojono, joka tulostaa käyttäjälle tervehdyksen "Mukavaa päivää". (Vihje: ECHO)
    • Tallenna komentojono ja kokeile sen toimintaa.
    • Komentojono tulostaa nyt myös komentorivit. Muuta komentojono sellaiseksi, että komentojono tulostaa ainoastaan tekstin "Mukavaa päivää".
  3. Muuta komentojono sellaiseksi, että komentojonolle voidaan antaa parametrina oma nimi, joka tulostetaan tervehdyksen yhteydessä (esim. "Mukavaa päivää Pete!"). Komentojonoa siis kutsuttaisiin esimerkiksi seuraavassa muodossa: terve.bat Pete (Vihje: %1)
  4. Tee oletushakemistoon uusi komentojono, joka tekee oletushakemiston alle hakemiston nimelle TEMP.
    • Ideana on siis käyttää hakemiston luomiseen samaa komentoa kuin DOS-komentojen kertaamisen yhteydessä.
    • Tallenna komentojono ja kokeile sen toimintaa.
  5. Muuta komentojono sellaiseksi, että hakemiston luomisen jälkeen tulostetaan luodun hakemiston sisältö näkyville.
  6. Muuta komentojono sellaiseksi, että hakemiston luomisen jälkeen hakemistoon kopioidaan jokin (saat itse päättää mikä) BATIT-hakemiston tiedosto ja tämän jälkeen tulostetaan tehdyn hakemiston 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.

  7. Muuta komentojonoa siten, että käyttäjä voi antaa luotavan hakemiston nimen parametrina komentojonolle.
  8. Muuta komentojonoa siten, että käyttäjä voi antaa toisena parametrina luotuun hakemistoon kopioitavan tiedoston nimen. Voidaan olettaa, että kopioitava tiedosto sijaitsee oletushakemistossa.
  9. Muokkaa edellä kehitetystä komentojonosta hieman käyttäjäystävällisempi eli lisää käyttälle annettavaa informaatiota ja poista kaikki ylimääräiset tulosteet.
  10. 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 täytyy informoida käyttäjää. (Vihje: IF ja GOTO)
  11. 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)
  12. Muuta komentojonoa siten, että se tutkii antaako käyttäjä ensimmäisenä tai toisena parametrina mitään. Jos toista parametria ei anneta, niin komentojono kopioi kaikki oletushakemiston tiedostot luotuun hakemistoon. Jos ensimmäisestä parametria ei anneta, niin komentojonon suoritus keskeytetään.

Lisätehtäviä

  1. Eräs edellä toteutetun komentojonon kehittämisidea voisi olla käyttäjän antaman kokonaisen hakemistorakenteen kopiointi tehtyyn hakemistoon. Tämä voidaan toteuttaa XCOPY-komennon avulla. Muuta komentojono käyttämään XCOPY-komentoa.
  2. Muuta edellä tehty komentojono sellaiseksi, että komentojonolle annetaan ensin kopioinnin kohdehakemisto ja tämän jälkeen voidaan antaa parametrina mielivaltainen määrä kopioitavia tiedostoja (siis enemmän kuin 9 kappaletta). (Vihje: SET, SHIFT, IF ja GOTO)
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/laitteistot/demot/demo1/
© Tommi Lahtonen (tommi.j.lahtonen@jyu.fi)<URL: http://www.iki.fi/hazor/>
2003-05-16 17:10:19