Saltrød Horror Show nr. 78
Søk og erstatt er enkelt når du kun skal endre i en fil. Verre er om du har 26 kapitler av en bok eller en katalog full av batchfiler. Det tar et hav av tid å gå inn i hver enkelt fil på jakt etter et ord eller en tegnrekke for å få jobben gjort. Jeg har lett lenge etter praktisk hjelpemiddel. Enda har jeg ikke funnet det perfekte, men Gedit (i filen GEDIT22.EXE, 28KB, bidragsønske US$12) er et hederlig forsøk. Skriv GEDIT *.BAT C:\SYSTEM D:\SYSTEM for å endre alle forekomster av C:\SYSTEM til D:\SYSTEM i dine batchfiler. Ved hver forekomst av "ordet" blir du bedt om å bekrefte at det er i orden. Tast N, hvis nei. Hurtig. Vil du endre en del av en linje, som inneholder blanke, <, >, eller |, må det du taster til Gedit omsluttes av gåseøyne (som i "Dette er en test"). Vil du fjerne (som i "Dette er en test"), må "-tegnene erstattes med "/q"-koder. En svakhet er at Gedit kun arbeider på linjenivå. Kommer "Dette" på en linje og "er en test" på neste, finner ikke Gedit det. En annen svakhet er at du ikke kan søke etter linjeskift (de norske bokstavene ser ut til å gå bra). Ellers fungerer Gedit bra. Å flytte filer fra en PC til en annen går som en lek med MS-DOS 6s Interlink, skriverkabel og verktøy som hjelpeprogrammet MOVE (i filen MOVE!.COM, 3KB, gratis, se nr. 2/90 s. 107) og PCOPY (i PCOPY92B.EXE, 107KB, US$20.00, nr. 5/89 s. 116). Jeg har for tiden tre PCer koplet opp mot en TIKI 486DX på denne måten. Skru på en bryter, gi en kommando og filer svirrer frem og tilbake. Skal jeg ut på reise, sørger en batchfil for at siste versjon av alle viktige filer under arbeide m/m overføres fra Toshiba 5100 via Tikien til notisbokmaskinen Toshiba 4400SX. Svisj! Ett problem: Når jeg bruker T5100s O:-stasjon fra denne PCens tastatur heter den O:. Når jeg bruker fra Tikiens tastatur den via Interlink, heter den R:. Det er dessverre så lett å taste feil.. Det beste hadde vært om O: alltid var O:, tenkte jeg, og laget en serie batchfiler for å løse problemet. MV45.BAT flytter filer fra 4400 til 5100. MV54.BAT flytter fra 5100 til 4400. SD5.BAT viser filer i en gikk stasjon/katalog på T5100 med programmet HotDir (i filen HOTDIR.EXE, 68KB, US$20.00, se nr. 6/93 s. 62). Da prinsippet er det samme i alle filene, kan SD5.BAT brukes som eksempel. Taster jeg kommandoen "sd5 o:\99" på Tikien, gir det en sortert liste over filene i T5100s O:\99-katalog. Det er ikke nødvendig å referere til katalogen som R:\99. SD5.BAT har følgende innhold (REM-kommentarene bruker eksemplet HDIR O:\99): @echo off Batchfilen blir lang, men den virker. Det eneste problemet er at den ikke fungerer i et DOS Shell under programmet 1stReader. ENV er en kraftig plugg med mange interessante egenskaper for entusiastiske batch-filbrukere. Det kan lese data fra tekstfiler, dBase og regnearkfiler (Lotus 1-2-3, Symphony, Borland Quattro og Quattor Pro) og komma-delte filer. Resultatet kan analyseres for bruk i batchfiler. Å, dette har jeg savnet lenge! Å kunne plukke linjer ut av en tekstfil - en etter en - og kunne gjøre ting ut fra innholdet i linjen. Jeg har f.eks. mange anvendelser i forbindelse med rydding på Tikiens 425MB store harddisk basert på lister over filnavn. Her er en generell og forenklet batch-fil for "plukking" av filnavn fra bulletin nr. 14 på Saltrød Horror Show (Min batchfil kjøres på en RAM-disk og med ENVs BATCH-kommando for økt hastighet): @echo off Kommandoelementet "~1~12" i den første CALC- kommandoen er spesielt interessant. Den kan også brukes for ytterligere analyser av det som plukkes. Det er f.eks. relativt enkelt å utvide batchfilen ut med en test av om filnavet har "." i posisjon 9 (som i KIDSHOW1.EXE), slik at det korrigeres før videre bearbeiding i en flytt filen operasjon eller lignende. Det er også lett å finne ut om en linje ikke inneholder et filnavn (f.eks. ved å teste på om første delen av variablen XX er blank). Automatisk flytting, sa jeg. Jeg ønsket å undersøke om filene i BULLET14-filen lå lagret i katalogen D:\TEST\99. Hvis ja, ville jeg ha dem flyttet til D:\TEST\OLDFILES. Følgende tilleggskommandoer gjorde jobben: REM Hvis filen finnes, utfør flyttejobben Tilsammen hadde jeg 17 andre filkataloger, som skulle behandles på samme måte. Dette løste jeg ved å føye et kontrollord til helt til sist i BULLET14 filen, med ECHO ----slutt--->>bullet14 Dette kan testes med "if (%xx%)==(----slutt---) goto nykatalog", slik at batchfilen vet når den kan skifte til neste katalog. ENVs innebygde kalkulator er svært avansert, med vitenskapelige, dato-, tids- og logiske funksjoner. Resultatet av tekstbearbeidingen kan brukes i ENVs matematiske beregninger. ENV kan be om brukerinput i BATCH-filer. Du kan interaktivt redigere eksisterende eller nye variabler og mye mer. ENV lar deg bruke all tilgjengelig environmentkapasitet i PCen din. Programmet ligger i ENV20.EXE (59KB, bidragsønske US$20). Du vil antakelig finne bruksanvisningen litt i korteste laget. DELETE SENTRY er bra, men det drøyde før jeg fant ut av den nye MS- DOS 6 kommandoen. I mellomtiden var det ofte for lite plass på Tikiens 425MB+ harddisk. UNDELETE-kommandoens Delete Sentry-innstilling flytter slettede filer midlertidig til en egen (skjult) katalog på disken. Bra! Dermed blir det lettere å rekonstruere dem, om du senere angrer. Nøkkelen til problemene mine lå i filen C:\DOS\UNDELETE.INI. Kravene mine til hvor stor katalogen skulle være hadde ikke vært strenge nok. Resultatet ble at jeg ofte hadde for lite plass. Jeg strammet inn kravet for når filer skulle bort fra SENTRY-katalogen med følgende kommandoer: days=3 Den første gjør at alle filer eldre enn tre dager kastes ut, om det er for lite plass i SENTRY-katalogene. Maksimal størrelse på katalogene skal være på 2 prosent av tilgjengelig kapasitet. Det fikk holde. Den siste linjen angir at alle filer skal sikkerhetskopieres unntatt de som ender på *.USA (USA Today nyhetsfiler fra Euronet), *.QWK (QMail meldingspakker fra diverse BBSer) og *.ZIP (da jeg oppbevarer filer som selv-utpakkende LHA *.EXE-filer). Dermed var problemet delvis løst. DIR-kommandoen gir feil antall bytes, når du kjører med DELETE SENTRY. Det er umulig å stille inn kommandoen for å gi korrekt tall. DIRs oppgir antall bytes ledig som om SENTRY-katalogen var tom. Ingen av "vis antall bytes"-programmene jeg har testet er smarte nok til å oppdage problemet. Bortsett fra CHKDSK.EXE. Bruker du DELETE SENTRY, kan du bruke BATCH-filen PLASS.BAT for å få antall ledige bytes på denne måten: @ECHO OFF E:-stasjonen er en RAM-disk. Gamle gode FGREP (i filen FGREP171.EXE, 15KB, gratis) finner linjen med "bytes available on disk". Rapporten ser slik ut: vent litt.. C-stasjonen har 2459648 bytes available on disk Det tar tid, men det virker. Det er forbudt å distribuere denne artikkelen - eller deler av den - i elektronisk, trykt eller kopiert form mot betaling. |