Komentojonotehtävät - Mallivastauksia - Demo1
Seuraavassa on esitetty muutamia mallivastauksia vaikeimpiin komentojonotehtäviin. Vastaus ei ole ainut oikea vaihtoehto, joten tekemäsi komentojono saattaa olla oikea, vaikka se eroaa mallivastauksesta.
Komentojen putkitus ja uudelleen suuntaus
Teht 2
DIR | MORE
Vastaava DOS-komento olisi
DIR /P
Komentojen erona on erilainen tuloste listauksen jatkamiseksi ja more-komennolla voidaan edetä rivi kerrallaan painamalla enter-näppäintä
Tehtävä 3
DIR> DIR.TXT
Tehtävä 5
DIR | SORT> DIR.TXT
Tehtävä 6
DIR | SORT /R>> DIR.TXT
Komentojonojen perusteet
Tentävä 2
ECHO Mukavaa päivää!
Komentorivien tulostus saadaan pois päältä lisäämällä seuraava komento komentojonon alkuun:
@ECHO OFF
Tentävä 3
ECHO Mukavaa päivää %1!
Tentävä 4
MKDIR temp
Tentävä 5
MKDIR temp DIR temp
Tentävä 6
MKDIR temp COPY joku.bat temp DIR temp
Tehtävä 7
MKDIR %1 COPY joku.bat %1 DIR %1
Tehtävä 8
MKDIR %1 COPY %2 %1 DIR %1
Tehtävä 9
@ECHO OFF ECHO Tehdään hakemiston %1 MKDIR %1 ECHO Kopioidaan tiedosto(t) %2 hakemistoon %1 COPY %2 %1 DIR %1
Tehtävä 10
@ECHO OFF IF EXIST %1 GOTO kopioi ECHO Hakemisto %1 ei ollut olemassa, joten se tehdään! MKDIR %1 :kopioi ECHO Kopioidaan tiedosto(t) %2 hakemistoon %1 COPY %2 %1 DIR %1
Tehtävä 11
@ECHO OFF IF EXIST %1 GOTO kopioi ECHO Tehdään hakemisto %1! Paina jotakin näppäintä jatkaaksesi... ECHO Voit keskeyttää komentojonon suorittamisen CTRL-C-näppäinkomennolla PAUSE> NUL MKDIR %1 :kopioi ECHO Kopioidaan tiedosto(t) %2 hakemistoon %1 COPY %2 %1 DIR %1
Tehtävä 12
@ECHO OFF REM Testataan annettiinko ensimmäistä parametria IF "%1"=="" GOTO param REM Testataan onko hakemisto jo olemassa IF EXIST %1 GOTO kopioi ECHO Tehdään hakemisto %1! Paina jotakin näppäintä jatkaaksesi... ECHO Voit keskeyttää komentojonon suorittamisen CTRL-C-näppäinkomennolla PAUSE> NUL MKDIR %1 :kopioi REM Testataan annettiinko toinen parametri IF "%2"=="" GOTO kaikki ECHO Kopioidaan tiedosto(t) %2 hakemistoon %1 COPY %2 %1 DIR %1 GOTO loppu :kaikki ECHO Kopioidaan kaikki oletushakemiston tiedostot hakemistoon %1 COPY *.* %1 DIR %1 GOTO loppu :param ECHO Et antanut hakemiston nimeä! :loppu
Lisätehtävät
Tehtävä 1
Seuraava ratkaisu ei varmasti ole paras mahdollinen, koska esimerkiksi kopioitaessa rekursiivisesti hakemistoa, jonne uusi hakemisto tehdään, saadaan aikaa ikuinen silmukka. XCOPY-komennon käyttö mahdollistaisi huomattavasti yksinkertaisemman komentojonon käytön, koska XCOPY-komento osaa luoda hakemiston tarvittaessa. Jos käytetään tehokkaampia komentoja, niin kannattaa varmistaa, että komentojono toimii halutulla tavalla kaikissa tilanteissa.
@ECHO OFF REM Testataan annettiinko ensimmäistä parametria IF "%1"=="" GOTO param REM Testataan onko hakemisto jo olemassa IF EXIST %1 GOTO kopioi ECHO Tehdään hakemisto %1! Paina jotakin näppäintä jatkaaksesi... ECHO Voit keskeyttää komentojonon suorittamisen CTRL-C-näppäinkomennolla PAUSE> NUL MKDIR %1 :kopioi REM Testataan annettiinko toinen parametri IF "%2"=="" GOTO kaikki ECHO Kopioidaan tiedosto(t) tai hakemisto rekursiivisesti %2 hakemistoon %1 REM XCOPY /E %2 %1 REM poistetaan hakemistolistaus, koska sillä ei tässä kohtaa ole merkitystä. REM Haluttaessa hakemistolistaus voitaisiin antaa rekursiivisesti. REM DIR %1 GOTO loppu :kaikki REM Jos ei saatu toista parametria, niin kopioidaan kaikki oletushakemiston tiedostot ECHO Kopioidaan kaikki oletushakemiston tiedostot hakemistoon %1 COPY *.* %1 DIR %1 GOTO loppu :param ECHO Et antanut hakemiston nimeä!
Tehtävä 2
@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 MKDIR %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 kopioi hakemistonimi tiedosto1 [tiedosto2 tiedosto3 .. tiedostoN] :loppu