Kopiointi DOSsissa

Viestiketju Vapaata keskustelua -osiossa. Ketjun avasi Käyttäjä 07.12.2011.

  1. Käyttäjä

    Käyttäjä Member

    Liittynyt:
    23.01.2003
    Viestejä:
    36
    Kiitokset:
    0
    Pisteet:
    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.  
  3. LaLLi80

    LaLLi80 Senior member

    Liittynyt:
    23.11.2003
    Viestejä:
    5,010
    Kiitokset:
    0
    Pisteet:
    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
     
  4. xbkrypt0n

    xbkrypt0n Active member

    Liittynyt:
    16.06.2010
    Viestejä:
    3,154
    Kiitokset:
    120
    Pisteet:
    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.
     
    Viimeksi muokattu: 15.12.2011

Jaa tämä sivu