25.8.1987 / Vesa Lappalainen (p„ivitetty. 9.9.1991, 6.12.1992) 10.10.1997 / Vesa Lappalainen 32-bittiset versiot (95/NT) T„ss„ seuraavat MS-DOSin apuohjelmat: KOPIOI - kopioi tarvittaessa koko puurakenteesta halutut tiedostot vastaavaan rakenteeseen toisella levyll„ - antaa vaihtaa levykkeen edellisen t„ytytty„ - MS-DOSia monipulisemmat maskit ja kiellot - tiedostolista tiedostosta TUHOA - tuhoaa koko puurakenteesta ATTRIB - muuttaa tiedoston suojauksia koko puurakenteesta RENLOW - muuttaa 95/NT:ssa tiedostojen nimi„ pienill„ kirjoitetuksi Ohjelmat esittelev„t oman parametritarpeensa kun kirjoitetaan ohjelman nimi ilman parametrej„ K„ytt”esimerkkej„: ****************** KOPIOI: ======= Helppo tapa kopioida oletushakemisto vastaavaan paikkaa levykkeell„: KOPIOI A:: Jos sama henkil” ty”skentelee useammalla eri koneella voi h„n toimia esim. seuraavasti: Oletetaan, ett„ henkil” tekee ty”t„ kovalevyn hakemistossa C:\TYO\MATTI ja ett„ hakemistossa muuttuu joka kerta my”s alihakemiston C:\TYO\MATTI\ALIOHJ ja alihakemiston C:\TYO\MATTI\OBJEKTIT tiedostot. 0. Kopioidaan kerran kaikki tiedostot levykkeelle KOPIOI C:\TYO\MATTI\*.* A:: /M/S 1. Menness„„n toiselle koneelle henkil” kopioi kaikki tiedostot toisen koneen kovalevylle KOPIOI A:\TYO\MATTI\*.* C:: /M/S 2. Lopettaessaan ty”ns„ t„ll„ koneella kopioidaan vaan muutetut tiedostot taas levykkeelle KOPIOI C:\TYO\MATTI\*.* A:: /M/S 3. T„st„ l„htien kun jatketaan taas kohdasta 1. kopioituvat aina vaan muutetut tiedostot. Edell„ A:: tarkoittaa, ett„ sijoitetaan A:-leveykkeell„ vastaavaan hakemistoon eli A:\TYO\MATTI. Mik„li hakemistoa ei ole, se luodaan. --- KOPIOI OPTIOT yms: ================== Tunnetut optiot: Optiot: /M kopioidaan vain muutetut tiedostot ja kop. merk. muuttamattomaksi. /A kopioidaan vain muutetut tiedostot :: (esim b::), kohde sijoitetaan t„sm„lleen vast. hakemistoon /S kopioidaan koko hakemistorakenne! /E per„„n kirjoitettuja ei kopioida /I per„„n kirjoitetut kopioidaan kuitenkin /V varmistetaan k„ytt„j„lt„ ennen hakemiston luontia /O tiedoston t„ytyy olla kohdelevyll„ /U vain ne tiedostot jotka uudempia kuin kohdelevyll„ /Rtiedosto =tiedosto josta luetaan optiot jatkossa /B luodaan my”s tyhj„t alihakemistot /T post-order j„rjestys kopiointiin (voi aiheuttaa ylim. kysymyksi„ /V -option kanssa) /W my”s hakemiston vaihtoviestit n„ytt””n /Q kopioidaan se, joka on uudempi eli l„hde ja kohde voi vaihtua /C vaihdetaan l„hde ja kohde kesken„„n, t„lle synonyymi esim: a::: /Dlevy oletuslevy, mik„li sit„ ei ole mainittu muuten l„hteess„ /P"jono" pys„hdyt„„n ja tulostetaan teksti jono. /p-"jono" ei pys„hdy. Lis„ksi attribuutit kuten ATTRIB. * Maskit voidaan antaa MS-DOSista poikkeavasti my”s *I* - kaikki tiedostot joiden nimess„ on I *I.* - kaikki tiedostot joiden nimiosa loppuu I Voidaan k„ytt„„ ATTRIB komennon tyyliin my”s kopioimaan vaikkapa vain kirjoitussuojattuja tiedostoja: KOPIOI =R *.PAS B:: Nimi„ voidaan luetella useita: KOPIOI *.PAS *.C *.PRJ B:: Nimi„ voidaan my”s sulkea pois (ei kopioida *.BAK, *.TMP eik„ *.$$$): KOPIOI *.* /E *.BAK *.TMP *.$$$ B:: Nimi„ voidaan edelleen pakottaa mukaan (edelliseen kuitenkin O*.TMP mukaan): KOPIOI *.* /E *.BAK *.TMP *.$$$ /I O*.TMP B:: V„lily”nti ja : aloittaa uuden kopiointikomennon. T„m„ on analoginen optioiden lukemiseksi tiedostosta. Muistettava, ett„ optiot, /I ja /E ja attribuutit ovat kumulatiivisia, eli 1. voimassa olevat tulevat voimaan muihinkin. Esim: KOPIOI *.* a: : a:*.* d:: /s vastaisi KOPIOI *.* a: KOPIOI a:*.* d:: /s KOPIOI *.* a: /s : a:*.* d:: vastaisi KOPIOI *.* a: /s KOPIOI a:*.* d:: /s VAROITUS! KOPIOI *.* a: /s : a:*.* d: vastaisi KOPIOI *.* a: /s KOPIOI a:*.* a: /s KOPIOI d:*.* a: /s Jos todella haluttaisiin a:*.* d:n oletushakemistoon, pit„isi kirjoittaa KOPIOI *.* a: /s : a:*.* d:.: vastaisi KOPIOI *.* a: /s KOPIOI a:*.* d: /s Jos j„lkimm„inen kopionti haluttaisiin ilman rekursiota, pit„isi kirjoittaa KOPIOI *.* a: /s : a:*.* d:: /s- vastaisi KOPIOI *.* a: /s KOPIOI a:*.* d:: Samoin jos ensimm„isen tiedosto tai maski parametrin j„lkeen on parametri jossa on \ tai : tai . (. vain lopussa) aloittaa tavallaa uuden kopioinnin. Esim: KOPIOI *.* \oma a: /s vastaisi KOPIOI *.* a: /s KOPIOI \oma\*.* a: /s KOPIOI *.* /s \oma a: vastaisi samaa kuin edell„. : erottimella edellinen vaikutus pit„isi tehd„: KOPIOI *.* a: /s : \oma Ja jos \oma pit„isi kopioida ilman rekursiota, pit„isi kirjoittaa: KOPIOI *.* a: /s : \oma /s- VAROITUS! KOPIOI *.* /e *.bak \oma *.c a: /s vastaisi KOPIOI *.* a: /e *.bak /s KOPIOI \oma\*.* *.c a: /e *.bak /s Optiota saa kirjoittaa my”s yhteen, esim. KOPIOI *.* a:: /sumv * Optio /M (Make archive) tekee itse asiassa seuraavan synonyymin: KOPIOI *.* a:: /M KOPIOI =a -a *.* a:: * Optio /A (Archive) tekee itse asiassa seuraavan synonyymin: KOPIOI *.* a:: /A KOPIOI =a *.* a:: * Optio /E (Exclude) aloittaa listan niist„, joita EI saa kopioida * Optio /I (Include) aloittaa listan niist„, jotka kuitenkin pit„„ kopioida. /E ja /I voi esiinty„ useaminkin, viimeisen kumotessa aina edellisen. N„iden per„„n kirjotettujen jonojen t„ytyy olla puhtaita maskeja Esim. oma.dat oma*.??? *a*.a oma EI kuitenkaan seuraavia: oma\ oma\*.kissa a:*.* * Varmuuskopioita varten k„tev„ on my”s optio /V (Verify from user), jolla k„ytt„j„lt„ varmistetaan hakemiston luonti ennen sen automaattista luontia. N„in tiedostot voidaan aina ohjata samoille levykkeille. KOPIOI a:: /v * Optiolla /O (file Overwrite only) kysyt„„n varmistus mik„li tiedostoa ei ole ennest„„n kohdelevyll„. N„in my”s tiedostot pysyv„t samoilla levyill„. Siis seuraava on my”s mukava tapa varmuuskopioida: KOPIOI a:: /v /o * Optiolla /U (Use date) kopioidaan vain ne tiedostot joista ei ole uudempaa kopiota kohdelevylle. Siis p„ivitet„„n kohdelevy ajan tasalle! KOPIOI a:: /u Kiva varmuuskopiointiapu my”s optioiden /S, /V ja /O kanssa: KOPIOI a:: /vous * Kohdehakemiston ei v„ltt„m„tt„ tarvitse olla rivin viimeinen, mutta sen pit„„ olla selv„sti erottuva. Rivin viimeisin v„lily”nnein erotettu osa tulkitaan kohdehakemistoksi jos se toteuttaa jonkin seuraavista s„„nn”ist„: 0) Optiot ja attribuutit otetaan ensin pois. 1) Muoto ??*: (eli v„hint„„n 2-merkki„ ja :) on aina kohdehakemisto. T„ll”in tehd„„n seuraavat muutokset: a:: => a: ja samaan hakemistoon a:.: => a:. oma\: => oma\ oma: => oma Seuraavat tehd„„n vain mik„li kohdetta ei l”ydetty s„„nn”ll„ 1 ja sit„ ei ole muutenkaan ennest„„n (tiedostosta lukeminen, osarivi) 2) jonossa ei ole * tai ? 3) jono ei ole 1. paitsi jos rivill„ on /R-optio Siis kutsu voisi olla muotoa Kohde KOPIOI *.* a:: /s /e *.bak *.obj /v =a => a: + sama KOPIOI *.* a:.: /s /e *.bak *.obj /v =a => a:. KOPIOI *.* /s /e *.bak *.obj a: /v =a => a: (jollei ennest„„n) KOPIOI *.* oma => oma ( -"- ) KOPIOI *.* oma /e *.bak *.obj => oma ( -"- ) KOPIOI *.* oma /e *.bak *.obj oma.dat => oma.dat ( -"- ) KOPIOI *.* oma: /e *.bak *.obj oma.dat => oma ( -"- ) KOPIOI oma => . ( -"- ) oma\*.*) KOPIOI a: => . ( -"- ) a:*.* KOPIOI a:: => a: + sama .\*.* KOPIOI a: /R => a: + l„hteet stdinist„ * Optiolla /R (Read) voidaan m„„r„t„, ett„ optioiden lukemista jatketaan seuraavana sanotusta tiedostosta. Jos tiedosto ilmoitetaan, ei parametririvin l„hde-tiedostoista v„litet„. Kuitenkin kaikki parametririvin optiot ja atribuutit otetaan huomioon, samoin talletetaan kaikki /E ja /I maskit. Kohdehakemistona k„ytet„„n aina viimeksi k„ytetty„ kohdehakemistoa. Tiedostossa OMAT.DAT on lueteltu mitk„ tiedostot pit„„ tallettaa, kuitenkaan mahdollisia *.BAK ei haluta tallettaa KOPIOI /r OMAT.DAT /e *.BAK a:: Jos edell„ olisi: KOPIOI TAMA.TXT /r OMAT.DAT /e *.BAK a:: niin toiminta olisi tasmalleen sama kuin edellisess„kin tapauksessa eli tiedostoa TAMA.TXT ei kopioitaisi. Tiedoston luku on hyppy tiedostoon sen j„lkeen kun koko komentorivin osa (tai optiotiedoston) on tulkittu, ei aliohjelmakutsu! Optiotiedoston lopuksi voi siis olla uusi /r -optio (mutta jos se on keskell„, lopetetaan ko. tiedoston lukeminen) J„tt„m„ll„ tiedoston nimi pois, voidaan optiorivej„ (k„yt„nn”ss„ useimmiten tiedoston nimi„) sy”tt„„ standard-inputista: KOPIOI /e *.BAK a:: /r ja sy”tet„„n tiedoston nimi„ ja lopuksi ctrl-Z. Oikeasti t„t„ k„ytett„„n tietysti uudelleensuuntauksen tai putkituksen kanssa. Optiotiedoston saa kopioida vain mik„li sen aiheuttava kopiointik„sky on tiedoston viimeisen„ (muuten tiedoston lukeminen loppuu siihen). Siis pitk„ss„ listassa on syyt„ olla /E optio_tiedosto. Koska optiot ovat kumulatiivisia, niit„ voidaan ottaa pois p„„lt„ muodoilla: /M- /S- /O- /U- jne. (HUOM! /I- tai /E- = /E-I- , ks. seuraava) Jos luettavaa tiedostoa ei l”ydy, jatketaan seuraavasta lauseesta. Esim. KOPIOI /e *.BAK a:: /r oma.txt : /p-"Ei l”ydy tiedostoa oma.txt" T„t„ ominaisuutta voidaan k„ytt„„ siis "IF"-lauseena. Tosin em. virheviesti„ ei kannata kirjoittaa, koska se saadaan optiolla /R-nimi jos tiedostoa ei ole. Jos on optio /R- ja tiedostoa ei ole, lopetetaan ohjelma heti samalla. Useimmiten "IF" ominaisuutta k„ytet„„n jonkin toisen vaihtoehtoisen kopiointiteht„v„n suorittamiseen. KOPIOI /r oma.txt : /r oma2.txt * Optiolla /E- JA /I- voidaan tyhjent„„ molemmat /E ja /I listat, jotka ovat kumulatiivisia. T„ll„ optiolla on k„ytt”„ vain optiotiedoston yhteydess„. Pelk„st„„n toista listaa EI VOIDA TYHJENTŽŽ!!! * Optiolla /B (Blanks) pakotetaan luotavaksi kaikki tyhj„tkin alihakemistot * Optiolla /T (posT-order) muutetaan l„pik„yntij„rjestys j„lkij„rjestykseksi POST-ORDER. T„m„ ei ole oletuksena, koska t„ll”in "lopeta t„m„ taso" -kysymys /V -option kanssa (ilman /B) aiheuttaisi ylim„„r„isi„ kysymyksi„. * Optiolla /W (Write more) lis„t„„n n„ytt””n tulevaa teksti„. * Optio /Q (eQual) on tehty samanlaisten tiedostojen pit„miseksi sek„ l„hde ett„ kohde hakemistossa. Esim: KOPIOI a:\oma\*.c . /Q kopioi ne oletushakemiston *.c tiedostot a:\oma:ksi, jotka ovat vastaaviaan uudempia (tai puuttuu kokonaan) ja k„„nt„en. Eritt„in k„tev„ on seuraava: KOPIOI /r a:\ht.sis . /q ja HT.SIS sis„lt„„ listan niist„ tiedostoista, joita ty”ss„ tarvitaan. N„in samalla komennolla voidaan aloittaa ty” kun tullaan koneelle ja samalla lopettaa ja n„in pit„„ korppu koko ajan ajantasalla. T„m„ optio on k„teve„ "vastin"-hakemiston lukemiseksi: KOPIOI a:: /q Tosin t„ll”in oletushakemiston ne tiedostot joita ei ole a:lla menev„t sinne. Jos t„m„ halutaan kielt„„, pit„„ k„ytt„„ muotoa KOPIOI a:: /C * Optiolla /C (Change) vaihdetaan kohde ja l„hde toisinp„in. K„yt„nn”ss„ t„ss„ on mielt„ vain muodon a:: kanssa, koska aina muulloin kohde ja l„hde voidaan k„„nt„„ jo kutsussa. KOPIOI *.c a:: /C T„lle on synonyymi: KOPIOI *.c a::: lukisi a levyn oletuslevyn vastaavaa hakemistoa vastaavassa paikassa olevat c-tiedostot. ELi jos oletuslevyn hakemsito olisi C:\OMAT\OHJELMOI\VESA, niin lukisi A:\OMAT\OHJELMOI\VESA\*.C * Optiolla /P (Pause) voidaan kopiointi keskeytt„„ odottamaan n„pp„imen painallusta (esim. levykkeen vaihdon ajaksi). Tulostettava viesti kirjoitetaan lainausmerkeiss„ heti option per„„n. /p- ei pys„hdy. KOPIOI A:: /A : /P"Vaihda toinen levy!" /M * Optiolla /D (Default drive) voidaan antaa oletuslevy, jota k„ytet„„n mik„li l„hteest„ ei l”ydy levy„. Hy”dyllinen esim. seuraavan optiotiedoston (OMA.SIS) kanssa: \OMAT\APU.BAT \OMAT\KOE\A.C \OMAT\UUSI\*.H kun halutaan vaikka kopioida em. tiedostot korpulta oletushakemistoon: KOPIOI /R oma.sis /DA ; a: => . Tiedostojen tasaus oletushakemiston kanssa olisi vastaavasti: KOPIOI /R oma.sis /DA /Q ; a: <=> . ja jos oletushakemiston tiedostoista em. listaa vastaavat haluttaisiin korpulle em. listan paikkoihin niin KOPIOI /R oma.sis /DA /C ; a: <= . TUHOA: ====== Tuhotaan kaikki kovalevyn .BAK tiedostot ja samalla kaikki tyhj„t alihakemistot: Tunnetut Optiot: /M tuhotaan vain muuttamattomat tiedostot (eli joista on kopio)! /A tuhotaan ne joista EI ole varmuuskopiota (ŽLŽ KŽYTŽ) /S tuhotaan my”s alihakemistoista! /E per„„n kirjoitettuja ei tuhota /I per„„n kirjoitetut tuhotaan kuitenkin /V varmista tuhoaminen k„ytt„j„lt„ /Rtiedosto =tiedosto josta luetaan optiot jatkossa attr ks. ATTRIB /? TUHOA C:\*.BAK /S Muuten optiot, attribuutit ja maskit kuten KOPIOI. ---- * Optiolla V kysyt„„n k„ytt„j„lt„ tuhotaanko tiedosto: TUHOA *.PAS /V Tuhotaanko TUHOA.PAS (Kyll„,Ei,Hak.lop,S„„st.hak.,Quit)? >k Tuhotaan TUHOA.PAS Tuhotaanko KOPIOI.PAS (Kyll„,Ei,Hak.lop,S„„st.hak.,Quit)? >e Tuhotaanko ... Vastaukset: Kyll„ = tiedosto tuhotaan Ei = tiedostoa ei tuhota Hak.lop = t„m„ ja hakemiston loput tiedostot tuhotaan S„„st.hak. = t„t„ eik„ muitakaan t„m„n hakemiston tiedostoja tuhota Quit = lopeta koko tuhoaminen KOPIOI ja TUHOA =============== Kovalevylle tarvitaan tilaa toista ohjelmointikielt„ esim. MS-C ja samanaikaisesti TURBO-C on tarpeeton (?): Laitetaan TURBO-C:n varmuuslevyke A: asemaan ja KOPIOI C:\KIELET\TURBOC\*.* A:: /S TUHOA C:\KIELET\TURBOC\*.* /S Laitetaan MS-C:n varmuuslevyke A: asemaan ja KOPIOI A:\ C:: /S ----- Kovalevylt„ tarvitaan tilaa. Tuhotaan ne tiedostot joista on varmuuskopio: TUHOA C:\ /M /S tai TUHOA #A C:\ /s Tuhotaan kirjoitussuojatut tiedostot: TUHOA =R-R *.* ATTRIB ====== Optiot: /S k„yd„„n my”s kaikki alihakemistot /F tulostetaan my”s tied. koot. /E per„„n kirjoitettuja ei k„yd„ /I per„„n kirj. k„yd„„n kuitenkin /Rtiedosto =tiedosto josta luetaan optiot jatkossa /C alustaa /E ja /I listan tyhj„ksi (/R-option kanssa Muuten optiot ja maskit kuten KOPIOI. Attribuuttien asetukset: Attribuutit (a): - poista attribuutti R = READ ONLY + aseta attribuutti S = SYSTEN FILE = vain ne joissa attribuutti on p„„ll„ H = HIDDEN FILE # vain ne joissa attribuutti ei ole p„„ll„ A = ARCHIVE ! kumoaa pois kaikki em. asetukset -A = tied. on kopio (l„hinn„ /R-option kanssa) +A = ei kopiota Aikaisemmissa esimerkeiss„ tuli TURBO-C:n hakemistosta varmuuskopio. Kun TURBO-C on taas siirretty kovalevylle niin kirjoitetaan ATTRIB -A C:\KIELET\TURBOC\*.* /S ja kun se seuraavan kerran pit„„ poistaa, niin kirjoitetaan KOPIOI C:\KIELET\TURBOC\*.* A:: /S/M jolloin vaan muutetut kohdat kopioituvat. ATTRIBia voidaan k„ytt„„ my”s koko levyn hakemiston listaamiseen: ATTRIB C:\*.* /S tai tiedostojen etsimiseen: ATTRIB C:\HUKASSA.COM /S ATTRIB C:\*HUK* /S My”s uudelleensuuntaus toimii: ATTRIB C:\*.* /S >C:SISALTO.DAT ATTRIBilla voidaan listata k„ytt„en hakuehtona tiettyjen atribuuttien poissa/p„„ll„oloa: =a = attribuutin a pit„„ olla p„„ll„ #a = attribuutti a ei saa olla p„„ll„ Esim: ATTRIB =H C:\*.* /s - kaikki C:n piilotiedostot ATTRIB #A *.* - oletushakemiston kaikki tiedostot joista on varmuuskopio Optiotiedostoa k„ytett„ess„ saattavat attribuutit olla p„„ll„ EI-halutulla tavalla. Optiolla !a alustetaan attribuutti EI-tutkittavaan ja EI-muutettavaan asentoon. Siis koko tilanne saadaan palautettua alkuper„iseksi optiorivill„ (useimmiten optiotiedostossa): !ahrs Lista niist„ tiedostoista kokoineen ja yhteiskoon kanssa, jotka kopioitaisiin levykkeelle kutsulla KOPIOI *.PAS A:: /M saadaan kutsulla ATTRIB *.PAS /M /F RENLOW ====== renlow [attr][disk:][path]{[ /E][ /I]file }[/M][/S][/1][/2][/3][/L][/W] Changes file names to lowercase. Options:/M change only if archive bit off (there is a copy) /S recurse subdirectories! /E exclude following files /I include following files /1 Set first char upper /2 Set first char upper from every word /3 Set every char upper (implisit /L) /L Change also names where is allready lovercase letters /W Writeln name after change /Rfile = read options from file attr look ATTRIB /? Examples: renlow C:\*.* /S - change recursively from C: change if no lowercase allready renlow C:\*.* /E *.PAS - change from C: but no *.PAS renlow A:\*.BAK *.TMP /S - change from A: all *.BAK ja *.TMP renlow *.c - COUNT.C => count.c, cAlc.c no renlow *.c /L - COUNT.C => count.c, cAlc.c => calc.c renlow *.c /1 - COUNT.C => Count.c, cAlc.c no renlow *.c /2 - COUNT DOWN.C => Count Down.c renlow *.c /3 - Count Down.c => COUNT DOWN.C renlow #d *.* - change all but not directories renlow /RCHANGE.TXT /s - read detais from CHANGE.TXT ---------------- renlow/vl 06.10.1997