Kopiointi DOSsissa

Discussion in 'Vapaata keskustelua' started by Käyttäjä, Dec 7, 2011.

  1. Käyttäjä

    Käyttäjä Member

    Joined:
    Jan 23, 2003
    Messages:
    36
    Likes Received:
    0
    Trophy Points:
    16
    Yritän tehdä DOS-ohjelmaa joka kopioisi kaikki tiedostot, joiden tiedostonimi sisältää tietyn tekstin, esim. xcopy *tiedosto* c:\kansio\. Onko tuota mahdollista tehdä niin, että aina kun ohjelman ajaa, niin se kysyy mitä tekstiä etsiä? Vai pitääkö se aina käydä muuttamassa tekstieditorissa?
     
  2. LaLLi80

    LaLLi80 Senior member

    Joined:
    Nov 23, 2003
    Messages:
    5,010
    Likes Received:
    0
    Trophy Points:
    116
    "aina kun ohjelman ajaa" tarkoittaen mitä? Ajat komentoriviltä vai kuvakkeesta?
    Komentorivillä voit antaa argumenttina haettavan stringin.

    Ehkä parempi jos vain opiskelet netistä batch ominaisuuksia ja rajoitteita.
    http://www.ericphelps.com/batch/

    tai googleen hauksi DOS batch
     
  3. xbkrypt0n

    xbkrypt0n Active member

    Joined:
    Jun 16, 2010
    Messages:
    3,154
    Likes Received:
    120
    Trophy Points:
    73
    esim.
    xcopy %1* %2
    tallenna .bat -tiedostoon ja laita johonkin PATH-ympäristömuuttujan kansioon, esim. %WINDIR% (eli yleensä C:\Windows)

    Käyttö komentoriviltä
    omabatti kissa d:\kansio

    -> batti ajaa komennon:
    xcopy kissa* d:\kansio

    On, mutta menee hankalaksi.

    esim.
    set kys1=
    set /p kys1=Kirjoita tiedoston alku ja paina ENTER:
    set kys2=
    set /p kys2=Kirjoita kansio ja paina ENTER:
    xcopy %kys1%* %kys2%


    Simppeli valikko siihen komentojonotiedostoon:
    :valikko1
    echo Mihin rivi menee:
    echo A. Alku (Oletus)
    echo B. Keskellä
    echo C. Lopussa
    echo.
    echo Q. Poistu/Peruuta
    set valinta=
    set /p valinta=Kirjoita valintaa vastaava merkki ja paina ENTER:
    IF /I '%valinta%'=='a' GOTO alussa
    IF /I '%valinta%'=='b' GOTO keskella
    IF /I '%valinta%'=='c' GOTO lopussa
    IF /I '%valinta%'=='q' GOTO ENDNOW
    IF /I '%valinta%'=='' GOTO alussa
    ECHO "%valinta%" ei ole sallittu valinta, yritä uudelleen
    ECHO.
    PAUSE
    cls
    goto valikko1


    Eiköhän noilla pääse alkuun. Jos ei, niin kannattaa tosiaan lueskella vähän aiheesta.

    EDIT: Oletan, että käytössä on normi winkkarin komentorivi/komentokehote. Eihän kukaan enää nykyään oikeata dossia käytä. Itselläni on useita pieniä batcheja sendto:ssa ja itse path-ympäristömuuttujassa, koska W7 ei tykkää mm. jos on liikaa tiedostoja yhdessä kansiossa. Komentokehote taas ei siitä välitä vaan tekee heti sen mitä käsketään sen enempää miettimättä asiaa.
     
    Last edited: Dec 14, 2011

Share This Page