Alle kan skrive bat-filer!
Kommandoprosessor
Sammensetningen av mange operativsystemer, inkludert de som er utviklet Microsoft Corporation, inkluderer kommandoprosessor... Dette er navnet på et program som starter utførelsen av alle slags handlinger som svar på kommandoer som er lagt inn av brukeren fra tastaturet. I utgangspunktet skal disse handlingene starte nødvendige programmer med visse parametere. Men ikke bare; videre vil vi se at noen kommandoer blir utført direkte av skallet. I utgangspunktet er dette kommandoene som tjener til å kontrollere konteksten og rekkefølgen av kommandoutførelse. Vi vil imidlertid ikke tenke for dypt på kommandoenes natur, i hvert fall ikke unødvendig. Enda viktigere er at ethvert program som er teknisk mulig å kjøre fra kommandolinjen, behandles som en kommando av skallet. Den skiller ikke mellom de "native" kommandoene som opprinnelig var innebygd i operativsystemet og programmene som ble installert på toppen av det.
Slik starter du kommandoprosessoren:
Klikk på knappen Start... Hovedmenyen vil vises.
Velg Kjør fra hovedmenyen. En dialogboks vil vises Lansering av programmet.
Skriv inn strengen i Åpne-boksen cmd.
Klikk på knappen OK... Et skallvindu vil vises.
Kommandolinje og kommandoer
Skjellvinduet ser dystert ut i sin opprinnelige form, og det er lite praktisk for de fleste å jobbe med det. Mye enklere å bruke filbehandlere med stil Norton-sjef... De gir både et middel for rask navigering gjennom filsystemet og en tidsbegrensning for å legge inn kommandoer.
For å angi kommandoen:
Skriv inn kommandoteksten på kommandolinjen.
Trykk på tasten Tast inn.
Kommandoprosessor og kommandoer operativsystem beskrevet i driftsdokumentasjonen for sistnevnte. Denne dokumentasjonen er delvis inneholdt i selve operativsystemet. For å få tilgang til den, bruk kommandoen hjelp... Denne kommandoen viser en liste over tilgjengelige kommandoer... For å få en beskrivelse av en spesifikk kommando, som en parameter, kommandoen hjelp navnet hennes skal angis. Kommandolinjen vist i følgende liste viser kommandobeskrivelsen til.
Hvis du prøvde å skrive inn kommandoen hjelp, har du sannsynligvis lagt merke til at resultatet av arbeidet hennes (det såkalte problemet) ikke passer på én skjerm. Det samme problemet oppstår med kommandobeskrivelsesteksten til... Den gode nyheten er at utdataene kan omdirigeres til en fil. Kommandolinjen vist i følgende liste genererer filen commands.txt som inneholder en liste over alle MS-DOS-kommandoer.
hjelp> commands.txt
For å generere en fil med en kommandobeskrivelse til, må du gi en slik kommando (du kan lage navnet på utdatafilen til hva du vil).
hjelp for> for.txt
Totalt har moderne operativsystemer til Microsoft-selskaper litt mindre enn 80 kommandoer, og det er umulig å beskrive dem i en artikkel. Her kan vi bare nevne noen få kommandoer som er nyttige for å automatisere filbehandling og vise hvordan du bruker dem. Disse kommandoene vil bli brukt i de følgende eksemplene. Du kan alltid avklare detaljene med kommando hjelp eller i referansen.
kopiere- kopiering av en eller flere filer;
del- slette en eller flere filer;
bevege seg- flytte en eller flere filer eller kataloger;
endre navn(forkortet ren) - gi nytt navn til en eller flere filer eller kataloger;
xcopy- kopiere et tre med underkataloger;
mkdir(forkortet md) - opprette en katalog;
rmdir(forkortet rd) - sletting av en katalog.
En av de generelle reglene for MS-DOS kommandosyntaks er at når du spesifiserer parametere, spesifiserer du først kilden og deretter resultatet. For eksempel hvis vi ønsker å flytte filen beer.txt fra katalogen eskeå katalogisere bord, må vi skrive inn kommandoen vist i følgende liste.
flytte boks \ beer.txt-tabell
Først hva du skal flytte, så hvor du skal flytte.
Hvis vi ønsker å gi nytt navn til filen lena.txtå lagre natasha.txt, så skal kommandoen skrives som vist nedenfor.
ren lena.txt natasha.txt
Først hva du skal gi nytt navn, deretter hva du skal gi nytt navn.
Gjeldende katalog. Absolutte og relative veier
Når du arbeider med filkommandoer, blir konseptet med gjeldende katalog ekstremt viktig. Faktum er at når vi spesifiserer en fil som en kommandoparameter, bruker vi alltid en av to mulige måter å peke på dem: enten en absolutt bane eller en relativ bane. I den fullstendige banen indikerer vi alt som starter fra disken (eller nettverksnavn datamaskin), for eksempel d: \ misha \ box \ beer.txt... Uansett hvilken katalog som er gjeldende når kommandoen legges inn, full vei vil matche den samme filen. Til relativ vei den gjeldende katalogen fungerer som et utgangspunkt. Det enkleste tilfellet for en relativ bane er et filnavn. I sammenheng med kommandoutførelse betyr det en fil med det navnet som ligger i gjeldende katalog.
Det er en betinget oppføring for å skrive den relative banen til gjeldende katalog . (punkt). For å skrive den relative banen til katalogen som inneholder gjeldende katalog, er det en betinget oppføring .. (to prikker). Kommandoen vist i følgende liste kopierer alle filer fra gjeldende katalog til katalogen nabo plassert ved siden av.
kopi *. *. \ nabo
Kommandofiler
Inntil nå, da vi ga eksempler, antok vi at vi skrev inn kommandoer manuelt hver gang. Ved behandling et stort antall filer eller systematisk utførelse av de samme kommandoene, blir det tungvint. Derfor gir kommandoprosessoren muligheten til å utføre kommandofiler. En batchfil er en tekstfil som inneholder kommandoer (eller minst én kommando). Et eksempel på en batchfil er vist i følgende liste. Prøv å gjette hva denne batchfilen gjør.
hjelp kopi> kopi.hjelp
hjelp flytte> flytte.hjelp
flytte * .help msdos-help
Hvis formålet med denne filen forblir et mysterium for deg, prøv å faktisk opprette og utføre den. Det er vanlig at batchfiler får utvidelsen flaggermus... Av den gjenkjennes filer av denne typen av kommandoprosessoren. Denne filen kan for eksempel navngis make-help.bat.
Slik kjører du en batchfil:
Skriv inn navnet som en kommando. Etter det vil batchfilen bli utført.
I en batchfil opptar hver kommando én linje. Mer presist, det er en måte å plassere en kommando på flere påfølgende linjer, for dette, rett før hver linjemating, legg "cover"-tegnet ^ ... (Hvert omslag må være det siste tegnet på sin linje; det må ikke være mellomrom eller tabulatorer etter det). Et eksempel på en slik kommando er vist i følgende liste.
hvis det finnes disser.txt ^
kopier disser.txt ^
d: \ vitenskap \ papirer \ utkast \ kilder
Men for enkelhets skyld, for ikke å ta forbehold hver gang, vil vi anta at dette på en eller annen måte er én lang «logisk» linje.
Når en kommandofil utføres, skanner kommandoprosessoren kommandofilen fra topp til bunn fra første linje til siste og utfører kommandoene i den rekkefølgen den finner dem. Han utfører dem som en helhet som om vi skrev inn hver av dem manuelt. Generelt fordi noen kommandoer oppfører seg litt annerledes når de legges inn manuelt og når de utføres fra en batchfil.
Når vi ser fremover, la oss si at om nødvendig kan sekvensen for kommandoutførelse endres ved hjelp av kontrollkommandoer (som kan være forbundet med et slikt behov, et eget spørsmål).
Ikke forveksle gjeldende katalog med katalogen der batchfilen som kjøres, ligger. Anta at gjeldende katalog er arbeid, inneholder den katalogen verktøy og verktøykatalogen inneholder batchfiler. Du starter en av dem med kommandoen verktøy \ collect-images.bat... Så, "fra synspunktet" til denne batchfilen, vil den gjeldende katalogen fortsatt være det arbeid, men ikke verktøy.
Kommenterer batchfilen og dens utstedelse. Ekko og rem kommandoer
En batchfil er egentlig et program skrevet på språket til operativsystemskallet. Teksten til programmet er ment å være forsynt med kommentarer, slik at vi kommer tilbake til det litt senere, og ikke smertelig husker hva dette programmet er for og hvordan det er arrangert.
MS-DOS-kommandosystemet gir en kommando for å kommentere rem... Dette er en dummy-kommando som ikke innebærer noen handlinger, men lar deg skrive vilkårlig tekst på linjen etter navnet ditt. Dessuten oppfatter ikke kommandoprosessoren det som en syntaksfeil. Et eksempel på formatering av en batchfil med kommentarer er vist i følgende liste.
rem ************************************************** * ***
rem Genererer hjelpefiler
hjelp kopi> kopi.hjelp
hjelp flytte> flytte.hjelp
flytte * .help msdos-help
Legg merke til de tomme linjene som deler opp batchfilen i "avsnitt". Denne enkle teknikken gjør batchfilen mer lesbar.
Når du utfører batchfilen ovenfor, vil alle kommandoer vises på skjermen etter hvert som de utføres, noe som ikke alltid er praktisk. Utstedelse av kommandoer kan deaktiveres ved å bruke kommandoen @ekko av... Symbolet "hund" foran kommandoen ekko betyr at denne kommandoen i seg selv må utføres i "stille" modus. Vi kan like gjerne ikke bruke kommandoen ekko av, og plasser en "hund" foran hvert lag.
I mange tilfeller kreves det at kommandofilen sender ut visse meldinger til skjermen (eller til en fil). I noen tilfeller kan dette være feilmeldinger, i andre informasjonsmeldinger som forklarer brukeren av batchfilen hva som skjer for øyeblikket, noen ganger danner vi en annen nyttig fil med batchfilen. Den samme ekkokommandoen brukes til å vise meldinger. Teksten til den viste meldingen sendes til den som en parameter. Listen over den forbedrede batchfilen vises nedenfor.
rem ************************************************** * ***
rem Genererer hjelpefiler for kopierings- og flyttkommandoene
rem ************************************************** * ***
@echo Genererer hjelpefiler. Ett sekund ...
rem Genererer hjelpefiler
hjelp kopi> kopi.hjelp
hjelp flytte> flytte.hjelp
rem Opprett en katalog for å lagre hjelpefiler
rem Flytt hjelpefilene til den forberedte katalogen
flytte * .help msdos-help
ekko Ferdig!
Sende parametere til batchfilen
Anta at vi ønsker å lage en batch-fil som først genererer en hjelp med en beskrivelse av en brukerdefinert kommando, og deretter laster den inn for visning i notepad. Trikset er å fortelle den på en eller annen måte hvilken kommando vi er interessert i denne gangen neste gang batchfilen startes.
For å løse dette problemet er det gitt en parameterbehandlingsmekanisme. Det fungerer ganske enkelt. Hvis brukeren spesifiserte flere parametere ved oppstart av batchfilen, angir vi i teksten til batchfilen den første av dem med oppføringen %1 , den andre oppføringen %2 , tredje oppføring %3 etc. Vi bruker disse betegnelsene i teksten til batchfilen på omtrent samme måte som i naturlig tale med pronomen.
Teksten til kommandofilen som løser problemet vises i følgende liste. Vær oppmerksom på kommandoen hjelp... Den første parameteren i batchfilen sendes til den som parameter.
rem Vi danner en fil med en beskrivelse av kommandoen,
rem hvis navn ble sendt av parameter
help% 1> help.tmp
rem Last inn beskrivelsesfilen i Notisblokkredigering
notatblokkhjelp.tmp
Anta at vi ga denne batchfilen navnet show-help.bat... For å laste inn en kommandobeskrivelse i notisblokk, for eksempel, dir, må vi skrive inn kommandoen som følger.
show-help.bat dir
Følgende kommandofil oppretter en katalog med navnet spesifisert i den første parameteren og skriver en fil med kommandobeskrivelsesteksten spesifisert i den andre parameteren.
rem Eksempel på batchfil med to parametere
rem Opprett en katalog med navnet gitt av den første parameteren
rem Opprett en fil med en kommandobeskrivelse i den,
rem gitt som den andre parameteren
hjelp% 2>% 1 \% 2.hjelp
Hva skjer hvis brukeren, når han kjører denne batchfilen, spesifiserer ikke to, men fire parametere? Det er greit, de vil ikke forstyrre noe, de vil bare ikke bli brukt. Men hva om brukeren bare spesifiserer den første parameteren? Den andre parameteren vil være tom. Effekten vil være som følger: batchfilen vil bli utført, men som på skrivingsstedet %2 det er ingenting. Help-kommandoen vil generere en liste over alle kommandoer og plassere den i en fil med et tomt navn og filtypen .help. Hvis brukeren kjører denne filen uten å spesifisere noen parametere, så når kommandoprosessoren prøver å utføre kommandoen md(husk at det er ment å lage en katalog), vil vi motta en syntaksfeilmelding, siden md-kommandoen må ha en parameter.
Bruk av parametere skaper dermed store muligheter, men kan komplisere saken betydelig. For at kommandofilen alltid skal fungere riktig, er det nødvendig å kontrollere riktigheten av parameterne spesifisert av brukeren og på en eller annen måte svare på ufullstendige eller feil inndata. Du kan selvfølgelig ikke gjøre dette, men en batchfil som ikke fungerer korrekt, kan bryte brann, spesielt hvis den involverer sletting eller overskriving av data.
Variabler. Sett kommando
En variabel er en navngitt verdi. I programmeringslærebøker sammenlignes vanligvis en variabel med en konvolutt med et navn skrevet på. Du kan legge noe i konvolutten, for eksempel en viss sum penger - dette er verdien. Som med konvolutten, kan verdien av variabelen endres.
For å erklære en variabel og samtidig tilordne en verdi til den, bruk kommandoen sett... Et eksempel på å skrive denne kommandoen er vist i følgende liste.
For å hente verdien til en variabel, plasser navnet mellom to prosenttegn, som vist nedenfor.
rem Compiler for hjelpefiler i CHM-format
sett help_compiler = c: \ HTML Help Workshop \ hcc.exe
rem Prosjekt av hjelpefilen til "Warehouse"-modulen
set store_hpj = hjelp \ kilder \ store \ store.hpj
rem Prosjekt av hjelpefilen til "Salg"-modulen
set sales_hpj = hjelp \ kilder \ salg \ sales.hpj
rem Kompiler hjelpefiler
% help_compiler%% store_hpj%
% help_compiler%% sales_hpj%
Denne oppføringen viser hvordan variabler er nyttige.
For det første tillater de i stedet for et langt fragment (for eksempel banen til kompilatoren av hjelpefiler) å bruke et kort synonymt med det inne i batchfilen. I det minste er det praktisk.
For det andre tillater de å unngå repetisjon i teksten til batchfilen av fragmenter som kan endre seg i fremtiden. Tenk deg at vi har installert Microsoft HTML Workshop på nytt i en annen katalog. Hvis en variabel brukes i kommandofilen for å skrive banen til den, vil det være nok å korrigere bare én linje i kommandofilen, nemlig den som verdien til variabelen er tildelt help_compiler... Hvis vi skrev banen til kompilatoren hver gang den må kalles, så etter å ha endret banen, må vi korrigere hver slik linje. I det gitte eksemplet er det to av dem, men i et ekte prosjekt kan det være fem eller femten av dem med samme suksess, i henhold til antall hjelpefiler vi ønsker å kompilere. Problemet er ikke at det er vanskelig å manuelt korrigere hver linje (tross alt var det ingen som avbrøt kommandoene "kopier" og "lim inn", men at dette øker sannsynligheten for en utilsiktet feil.
Parametrene til batchfilen er også variabler, men de skiller seg fra vanlige variabler ved at verdiene deres settes når batchfilen startes. I det følgende, når vi snakker om variabler, spesielt om å jobbe med deres verdier, vil vi også huske på parametrene til batchfilen, i det minste i fravær av eksplisitte forbehold om dette.
Når du skriver batchfiler, brukes ofte følgende teknikk: flere verdier av variabler er indikert side ved side (eller alternerer dem med symboler eller strenger), for å få en ny meningsfull betydning. Et eksempel er vist i følgende liste.
Sjekke forhold og velge alternativer. If og goto-kommandoer
If-kommandoen lar deg markere i en batch-fil grupper av kommandoer som utføres eller ikke utføres, avhengig av visse forhold. Hva er den til?
Tilstandskontroll er nesten et nødvendig tiltak når du lager batchfiler som bruker parametere. Før du starter arbeidet, må batchfilen generelt sett sørge for at riktig sett med parametere sendes til den. V ellers det er stor risiko for at det blir utført feil eller til ingen nytte, og brukeren må bare gjette hva problemet er. Dessuten, hvis batchfilen sletter, flytter eller overskriver data, kan den til og med forårsake skade med feil parametere.
Følgende liste viser den allerede kjente batchfilen for kompilering av hjelpefilen. La til sjekk av den første parameteren for ikke-tom i begynnelsen av batchfilen. Vær oppmerksom på denne syntaksfunksjonen: det doble likhetstegnet brukes for sammenligningsoperasjonen. Hvis den første parameteren viser seg å ikke være tom, utløses goto-kommandoen, som "kaster" kommandoprosessoren til den angitte etiketten. V i dette tilfellet navnet på denne etiketten er kompilert. Legg merke til at der etiketten er, er navnet innledet av et kolon, men ikke i goto-kommandoen. Hvis den første parameteren er tom, går skallet til neste linje som gir en feilmelding. Og så til den neste, som kaster den helt til slutten av filen til etiketten med navnet bli ferdig.
hvis ikke "% 1" == "" må du kompilere
rem Hvis parameteren er tom, gi en feilmelding
echo hjelpefil prosjektnavn ikke spesifisert
rem og gå til slutten av batchfilen
rem til sluttetiketten
rem Dette er en etikett som heter compile
rem Nedenfor er kompileringskommandoene
rem Sti til kompilatoren for hjelpefilene
set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe"
rem Banen til katalogen der hjelpefilprosjektene er plassert
set project_path = e: \ arbeid \ prosjekter \ hjelpe-prosjekter
rem Ring kompilatoren for å behandle et spesifikt prosjekt,
rem hvis navn vi sender i den første parameteren
% help_compiler%% project_path% \% 1.hpj
rem Dette er en etikett som heter finish
La oss innse det, den foreslåtte metoden for å sjekke en parameter er ikke den mest vellykkede.
For det første, hvis brukeren feilaktig spesifiserer et navn som en parameter, ikke eksisterende fil, vil batchfilen være fornøyd med dette og vil forsøke å kompilere. En mer korrekt måte er å sjekke om en slik fil faktisk eksisterer. For dette er et spesielt ord gitt i MS-DOS-kommandospråket eksistere... Derfor er det bedre å skrive: hvis det finnes % 1.hpj må kompileres.
For det andre aktiv bruk av kommandoen gå til(såkalt ubetinget hopp) og etiketter forvirrer koden kraftig. Teknisk sett er de ikke dårlige i det hele tatt, men det er ganske upraktisk å feilsøke og vedlikeholde en batchfil skrevet i denne stilen. Derfor har programmerere lenge ansett ubetinget forgrening for å være uønsket. Nedenfor er en mer korrekt, fra synspunkt av programmeringsstil, strukturert versjon, som bruker konstruksjonen hvis … annet... Det fungerer slik: hvis betingelsen er sann, kommandoene i parentes etter hvis, og hvis falsk, så i parentes etter ellers.
rem Sjekk om parameteren er satt
hvis ikke finnes % 1.hpj (
rem Sti til kompilatoren for hjelpefilene
set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe"
rem Banen til katalogen der hjelpefilprosjektene er plassert
set project_path = e: \ arbeid \ prosjekter \ hjelpe-prosjekter
rem Ring kompilatoren for å behandle et spesifikt prosjekt,
% help_compiler%% project_path% \% 1.hpj
Her er et annet eksempel på arbeid med sjekker. Følgende batchfil oppretter en katalog med navnet hjelpe-filer(anta, for å laste ned kompilerte hjelpefiler inn i den). Dessuten, hvis en katalog med samme navn allerede eksisterer (og den inneholder sannsynligvis gamle hjelpefiler som du ikke vil miste: hva om de nye viser seg å være verre?), tildeler batchfilen den bak-utvidelsen. Men hvis katalogen hjelpe-filer.bak allerede eksisterte, sletter batchfilen den (vi antar at en sikkerhetskopi er nok for oss).
hvis det finnes help-files.bak rd help-files.bak
hvis det finnes hjelpe-filer ren hjelpe-filer hjelpe-filer.bak
Massefilbehandling. For kommando
For-kommandoen lar deg organisere utførelsen av gjentatte handlinger av samme type. Du kan bruke den til å vise tall fra én til ti, som vist i følgende liste.
for / l %% i in (1,1,10) gjør ekko %% i
Variabel Jeg kalt loopteller. På grunn av det særegne ved kommandosyntaksen til, må navnet på looptelleren være én bokstav. Dessuten, hvis vi skriver en kommandofil, må et dobbelt prosenttegn settes foran navnet på looptelleren, men hvis vi bare skriver en kommando på kommandolinjen, så en enkelt.
Logikken til dette laget er som følger. Etter ordet i området for endring av syklustelleren er indikert. V dette alternativet kommandoer er tre tall: startverdien til telleren, trinnet for telling, grenseverdien til telleren. Når du utfører en kommando, vil skallet først tildele til variabelen Jeg betydning 1 , og deretter på hvert trinn i syklusen vil øke den med 1 til det overskrider 10 ... Det vil åpenbart være ti slike trinn. Hvis vi spesifiserte tallet som telletrinn 2 , så ville løkken kjørt fem ganger. Ved hvert trinn i løkken utføres løkketeksten, skrevet etter ordet gjøre... I eksemplet som vises, er dette en ekkokommando som skriver ut gjeldende verdi av looptelleren.
Sannsynligvis kan du tenke deg en situasjon der noe slikt faktisk kreves, men vanligvis kommandoen til brukes til å iterere over og behandle filer. Jeg må si at i ganske enkle tilfeller utføres massefilbehandling ved hjelp av jokertegn. Hvis, vil vi at alle filene i gjeldende katalog skal erstatte utvidelsen .htm på .html, legger vi inn kommandoen ren * .htm * .html... Men hvis det samme må gjøres ikke i én katalog, men i et katalogtre, kan du ikke klare deg uten for-kommandoen. Batchfilen nedenfor utfører denne operasjonen for alle htm-filer i nettsideunderkatalogen til gjeldende katalog. Mer presist, i hele katalogtreet som er inni nettsted.
for / r nettsted %% i in (* .htm) gjør ren %% i %% ~ ni.html
Nøkkel / r indikerer en kataloggjennomgang nettsted og alt hans indre. Hvis du ikke spesifiserer det (men da har du ikke lov til å spesifisere katalogen), vil kun filer i gjeldende katalog bli behandlet. Verdiområdet til looptelleren i denne versjonen av kommandoen er settet med alle filer med utvidelsen .htm plassert inne i en katalog (mer presist, et tre) nettsted... Ved første øyekast er oppføringen merkelig ~ ni betyr at fra verdien av variabelen Jeg bare filnavnet må utheves. MS-DOS-kommandospråket gir flere slike modifikatorer, for eksempel oppføringen ~ xi står for filtypen. Alle modifikatorer er beskrevet i kommandoreferansen til.
Hoveddelen av løkken kan bestå av flere kommandoer, omsluttet av parentes.
for / r nettsted %% i in (* .htm) do (
rem Vis filnavnet
re Gi nytt navn til filen
ren %% i %% ~ ni.html
Overfør kontrollen til en annen batchfil. Ring kommando
Det er mulig å kalle opp en annen kommandofil fra en batchfil. Dette gjøres av kommandoen anrop... Bemerkelsesverdig nok er variablene satt i den oppringende kommandofilen "synlige" for den som kalles. Omvendt, etter at den oppringte filen er ferdig med å virke og returnerer kontrollen til den som ringer, vil sistnevnte "se" variablene som er overlatt til ham av den kalte "arvet". Dette lar utvikleren av batchfilene for eksempel fortsette som følger. Hvis flere batchfiler må bruke samme verdier, for eksempel stier til noen filer, kan de flyttes til en egen batchfil, som vil fungere som en konfigurasjonsfil. Hver fungerende batch-fil vil starte med et kall til konfigurasjonen. Fordelen er at når du endrer stier, trenger du bare å gjøre endringer i én konfigurasjonsfil, og ikke til mange arbeidere.
"Config" batchfil config.bat.
rem Sti til kompilatoren for hjelpefilene
set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe"
rem Banen til katalogen der hjelpefilprosjektene er plassert
set project_path = e: \ arbeid \ prosjekter \ hjelpe-prosjekter
"Fungerende" batchfil.
rem Sette opp variabler
rem Sjekk om parameteren er satt
hvis ikke finnes % 1.hpj (
rem Hvis parameteren er tom, gi en feilmelding
echo Det finnes ikke noe slikt hjelpefilprosjekt.
rem Nedenfor er kompileringskommandoene
rem Ring kompilatoren for å behandle et spesifikt prosjekt,
rem hvis navn vi sender i den første parameteren
% help_compiler%% project_path% \% 1.hpj
Nå er det på tide å vurdere bat-kommandoer... I utgangspunktet brukes kommandoene som er lagt inn i cmd her, men det er noen som ikke er fornuftige å bruke på kommandolinjen.
Hvordan få en komplett liste over flaggermus-kommandoer
For å beskrive alle kommandoene, må du skrive hele linjen artikler, for ikke å overbelaste deg, vil vi begrense oss innenfor rammen av én artikkel og vurdere kompakt informasjon. Som du vet, er bat-filen og cmd-kommandoene de samme for å få en liste over dem eller. Skriv inn hjelpekommandoen, som på engelsk er skrevet som hjelp, trykk Enter. Som et resultat vil datamaskinen skrive alle kommandoer med en kort beskrivelse i cmd-grensesnittet.
Etter å ha gjennomgått denne listen, vil du vite mer detaljert hva en spesifikk bat-kommando er. La oss for eksempel velge for-kommandoen, for å beskrive den, skriv inn hjelp for eller for /? og klikk enter. Som et resultat vil du motta online-hjelp på kommando er det omfangsrikt, så du må trykke på hvilken som helst tast flere ganger for å gjøre deg kjent med følgende beskrivelse. Dermed kan du studere syntaksen til en bestemt kommando.
Bat-fil kommandoer
La oss nå bli kjent med kommandoene som brukes i batchfilen, med en kort beskrivelse. De skiller ikke mellom store og små bokstaver, men vi har oppført dem med store bokstaver for å hjelpe med identifikasjon.
@ | Alle bat-kommandoer som utføres vises på skjermen, for å fjerne unødvendige ting, plasseres en "hund" foran kommandoen. Brukes ofte med @echo av. |
sett | Setter variabler. For eksempel setter = c: \ vinduer her tildeler vi per bane. Du kan skrive en voluminøs verdi til en variabel og spesifisere den i et skript, noe som vil gjøre koden mer kompakt. Hvis innholdet endres, trenger du ikke endre verdiene der denne variabelen er gitt overalt. |
:: | En av de to metodene for å kommentere i en bat-fil uten å vise denne linjen på skjermen. |
: ETIKETTE | Når du legger til et kolon i et ord, opprettes det en etikett som lar deg gå til ulike seksjoner kroppsskjorte. Etiketten kan ha et annet navn, LABEL er et eksempel. |
ANROP | Bat-kommando som kaller en batchfil i en annen. Alle parametere beskrevet i en av filene kan overføres til hverandre. |
VALG | Valgkommando. |
CLS | Tømmer innholdet kommandotolk som vist over CLS. |
EKKO | Viser en melding på skjermen. For eksempel "ECHO Hallo!" vil vise "Hei!" Hvis du ikke bruker @ECHO off i begynnelsen batch-fil, så vil du se banen til bat-filen og to meldinger, som er overflødig. Du kan lage en tom streng ved å skrive ECHO. med en prikk på slutten. |
EXIT | Avslutter gjeldende batchskript. |
GÅ TIL ETIKETTE | Brukes til å navigere til en bestemt etikett, i dette tilfellet LABEL, og kjøre skriptet etter den. |
HVIS | Som i bat-programmeringsspråkene, representerer if-kommandoen oppfyllelsen av en betingelse, avhengig av hvilket skript som vil følge en eller annen bane. Se hjelpen for syntaksen. |
til | En syklus som brukes til å organisere utførelsen av de samme handlingene. |
PAUSE | Hvis du trenger å se resultatet av skriptet, men det kjører, og vinduet lukkes raskt, bruk PAUSE. Den lar deg se resultatet og fullføre skriptet ved å trykke på hvilken som helst knapp. |
REM | Den andre måten å kommentere på. I motsetning til :: skrives det ut på skjermen hvis det ikke er noen @ECHO off-konstruksjon. |
SKIFTE | Bytter posisjon batch-parametere i flaggermus-filen. |
START | Starter programmer, vinduer osv. Har mange attributter (se hjelp). |
Dette er base flaggermus lag. Syntaksen til noen elementer er vanskelig for nybegynnere og krever litt kunnskap. Alt bat-fil-kommandoer beskrevet ovenfor gjennomgås overfladisk for å finne ut deres formål, og den fullstendige syntaksen finner du i Windows Hjelp.
1. Kommandofil S.BAT, som gir sidevis visning av innholdet i en gitt tekstfil (med en pause etter å ha fylt hver skjerm):
HVIS /% 1 == / GÅ TIL ERR1 hvis ingen argument (filnavn) er gitt, så ERR1
HVIS IKKE FINNES% 1 GÅ TIL ERR2 - hvis fraværende gitt fil
: ERR1 Ingen argument gitt
ECHO Spesifiser filnavn
: ERR2 Fil mangler
ECHO File% 1 mangler
Mer kommando gir en side-for-side (fullskjerm) visning av innholdet i en tekstfil.
Syntaks:
MER filter leser en tekstfil med standard enhet I / O og viser innholdet med en pause hver gang skjermen er full. I dette tilfellet vises meldingen -MER- på den siste (nederste) linjen på skjermen. For uttak neste side bare trykk på hvilken som helst tast på tastaturet.
2. S.BAT-kommandofil, som legger til søkeruter for kjørbare filer til de eksisterende og viser alle etablerte ruter:
HVIS /% 1 == / GÅ TIL SLUTT
SET BANEN =% BANEN%;% 1
PATH-kommandoen brukes til å angi og vise søkestier for kjørbare filer.
PATH ...]
STI; - kansellerer alle søkeruter.
Den kjørbare filen søkes først etter i katalogen som er tildelt i henhold til spesifikasjonen, og deretter i hver spesifisert katalog.
Hvis bare kommandonavnet er angitt, da nåværende ruter Søk.
Brukseksempel:
S C: \ EDIT \ TEXT \ ME C: \ DOS
Den vurderte batchfilen fungerer bare fint hvis verdien til den globale PATH-variabelen passer på én linje på skjermen.
3. Kommandofil DEL.BAT for sletting av VAK-filer fra den spesifiserte katalogen, hvis spesifisert, eller fra arbeidskatalogen, hvis argumentet ikke er spesifisert
HVIS IKKE /% 1 == / SET # DIR =% 1 \
HVIS FINNES% # DIR% * WAK GÅ TIL DEL
ECHO Ingen VAK-filer å slette
DIR% # DIR% *. VAK
ECHO For å nekte å slette,
ECHO trykk Ctrl-Break, ellers -
EKKO hvilken som helst tast for å fortsette
DEL% # DIR% *. VAK
ECHO *** Filer slettet ***
Denne filen bruker en global variabel med unikt navn#DIR. Den tilbakestilles først med SET-kommandoen. Dette er for å holde det tomt og ikke forbli innstilt etter et tidligere anrop til DEL.BAT. Deretter, hvis argumentet er gitt, tildeles \-tegnet til det til høyre, og resultatet lagres som verdien av den globale variabelen #DIR. I påfølgende kommandoer brukes den som et prefiks til sammensatte navn på VAK-filer.
Ved å spesifisere d: som argument vil VAK-filer slettes ikke i den gjeldende, men i rotkatalogen disk d. Derfor, hvis du trenger å spesifisere gjeldende katalog, må du bruke d: ..
4. Kommandofil LEX.BAT å ringe tekstredigerer LEKSIKON med automatisk nedlasting inn i den siste av tekstfilene som tidligere ble brukt til samme formål:
HVIS /% 1 == / GÅ TIL N
Hvis du ved DOS-ledeteksten går inn
LEX C: \ TXT \ M.TXT
da vil spesifikasjonen til den spesifiserte filen bli lagret i den globale variabelen #DOC, og selve filen vil bli lastet inn i editoren. #DOC-verdien vil da bli brukt når LEXICON.EXE-filen kjøres uten LEX-argument, og sikrer at den sist angitte filen lastes inn i editoren.
5. Følgende skjema kan brukes til å automatisk svare på en forespørsel om en OS-kommando eller et program i en batchfil:
prosess ECHO-kommandoen lager en JA-tekstfil med et svar Y. Innholdet i JA-filen mates deretter til prosessens standardinngang. Dette simulerer inntasting av svaret Y fra tastaturet. Når prosessen er fullført, slettes YES-filen. Naturligvis kan eventuelle nødvendige svar stilles inn på samme måte. Ulempen med den beskrevne metoden er behovet for å opprette og slette en fil, noe som er tidkrevende. Du kan overvinne dette problemet ved å lage permanente flervalgstekstfiler og bruke dem i alle batchfiler. En annen måte å automatisk legge inn et svar i en prosess er å bruke en linje som EKKO Y | prosess 6. Batch filer for å lagre arbeidskatalogen på et bestemt punkt og gjenopprette den etter installering av en ny arbeidskatalog. For å gjøre dette kan du for eksempel opprette følgende kommandofiler i katalogen C: \ BAT CD> C: \ BAT \ CURDIR KOPI C: \ BAT \ CDFILE + C: \ BAT \ CUR C: \ BAT \ RETURN.BAT CDFILE-tekstfilen inneholder "start" av CD-kommandoen. Den må formes med ett mellomrom etter CD-en og uten EOF-markøren. Kommandofilen SAV.BAT skriver spesifikasjonen til arbeidskatalogen til CUR-tekstfilen og genererer kommandofilen RETURN.BAT for å gjenopprette denne katalogen. For enkelhets skyld bør en av søkerutene for kjørbare filer være C: \ BAT. La arbeidskatalogen være C \ EDIT \ TEXT \ LEX. Hvis du kaller kommandofilen SAV (uten argumenter), vil kommandofilen RETURN genereres som inneholder kommandoen CD C \ EDIT \ TEXT \ LEX Du kan deretter endre arbeidskataloger med CD-kommandoen (men ikke med d :)-kommandoen. For å gå tilbake til LEX vil det være nok å skrive inn RETURN fra tastaturet. Hver påfølgende kjøring av SAV-filen angrer den forrige handlingen permanent. Den beskrevne teknikken gjør det lettere å jobbe hvis det er en hardisk forgrenet filstruktur. 7. Kommandofil F.BAT for å sikkerhetskopiere innhold hardisk til disk i stasjon A:. ATTRIB + AC: \ *. * / S arkivfil ECHO Sett inn formatert disk i stasjon A ECHO og trykk deretter på hvilken som helst tast XCOPY C: \ *. * A: / S / M / E / V HVIS FEILNIVÅ 4 GÅ TIL LOOP ECHO Reservasjon fullført ATTRIB-kommandoen setter A-attributtet på alle filer. XCOPY kopierer til disk i stasjon A filstruktur fra harddisken. For alle kopierte filer slettes A-attributtet. Opptreden XCOPY-lag ender i en av følgende tilfeller: 1) disketten er full, men ikke alle filene er sikkerhetskopiert (returkode 4); 2) alle filer er reservert, ingen filer ble funnet å være kopiert, eller kommandoutførelsen ble avbrutt av Ctrl-Break (returkode henholdsvis 0, 1 og 2); 3) skjedde kritisk feil I/O (returkode 5). I tilfeller 1 og 3 vil IF-kommandoen overføre kontrollen til LOOP-etiketten for å fortsette (gjenoppta) sikkerhetskopieringen på neste diskett. I dette tilfellet blir ikke filene som allerede er kopiert, sikkerhetskopiert, siden deres A-attributter tilbakestilles. Hvis tilfelle 2 har oppstått, fullføres reservasjonen med utstedelse av tilsvarende melding. Selvfølgelig kan ytterligere parsing av returkode 5 introduseres. 8. Sikkerhetskopiere alt innhold av hardt disk tar mye tid og mange disker. Derfor, når du sikkerhetskopierer på nytt, er det best å bruke / D-bryteren i XCOPY-kommandoen for å kopiere bare de filene som ble opprettet og oppdatert etter datoen for siste sikkerhetskopiering. I dette tilfellet, for riktig utvalg av filer, er det nødvendig å oppgi DOS-operasjon hele tiden med riktig dato. I tillegg må brukeren huske eller skrive ned datoen for siste sikkerhetskopiering av filene for å indikere det i / D-bryteren. For å bli kvitt dette kan du lage følgende batchfiler: EKKO | MER | DATO | FINN / V "Enter"> B.BAT ATTRIB + A C: \ *. * / S ECHO Sett inn platen i stasjon A XCOPY C \ *. * A: / S / M / E / V / D: % 4 HVIS FEILNIVÅ 4 GÅ TIL LOOP ECHO Reservasjon fullført For å bruke disse filene, må du opprette en BAT-fil én gang ved å bruke kommandoen EKKO | MER | DATO | FINN / V "Enter"> B.BAT Denne filen vil bare inneholde en linje som ligner på følgende: Gjeldende dato er lørdag 26-1-2009 (Gjeldende dato - lørdag 26.01.2009) MORE-kommandoen genererer en EOL-markør når det ikke er noen tekst å vise (fra ECHO-kommandoen) og simulerer dermed å trykke på Enter-tasten som svar på en spørring for gjeldende dato med DATE-kommandoen. FIND-kommandoen fjerner den andre linjen (Skriv inn ny dato (dd-mm-åå) :) fra DATE-kommandoen. Du kan lage en B.BAT-fil på en hvilken som helst annen måte, men innholdet må være i spesifisert form. For å sikkerhetskopiere nye filer (opprettet på dagen for siste sikkerhetskopiering eller senere), er det nå tilstrekkelig å starte kjøringen av batchfilen D. Den kaller B.BAT-filen, som tolkes som en batchfil. Dette starter C.BAT-kommandofilen med fire argumenter (dato, er, ukedag og dato). Det fjerde argumentet (dato) overstyrer alternativ% 4 i / D-bryteren til XCOPY-kommandoen. Når reservasjonen er fullført, går kontrollen tilbake til D.BAT-filen og en DATE-kommando utføres for å oppdatere B.BAT-filen med gjeldende dato, dvs. dato for siste reservasjon. Derfor, etter oppstart av DATECOPY, etter en viss tidsperiode, vil sikkerhetskopieringen fortsette som forventet (alle filer vil bli kopiert med tanke på datoen i B.BAT) I denne artikkelen vil vi vurdere slike nyttig ting hvordan " kroppsskjorte". La oss først definere hva en bat-fil er. Batch eller batch-filer er enkle tekstfiler som inneholder kommandosett ( instruksjon) tolk og ha flaggermus forlengelse eller cmd ( cmd fungerer bare på NT-operativsystemer). Du kan opprette og redigere slike filer ved å bruke vanlig notisblokk eller et annet tekstredigeringsprogram. Nå spør du, hvorfor trenger du å kunne skrive slike baht-filer? Og hvorfor trengs de? Jeg skal prøve å forklare. For det første brukes de for å gjøre arbeidet enklere, dvs. for eksempel må du hele tiden utføre en operasjon hver dag ( for eksempel opprette et arkiv med visse dokumenter), ved hjelp av en batchfil kan dette automatiseres, og du vil ikke lenger ta del i dette. For det andre er disse batchfilene veldig kraftige ( med mindre du vet hvordan du skriver dem), dvs. Du kan til og med skrive et fint program ( Jeg mener med funksjonalitet). Personlig hjelper de meg mye i arbeidet mitt, og jeg glemte bare noen ting når jeg gjorde det manuelt. La oss nå gå direkte til det grunnleggende om disse kroppsskjortene. Hvordan de er opprettet, du trenger bare å lage et enkelt tekstdokument for å åpne det og umiddelbart på fanen " Fil-> lagre som", Skriv i stedet for utvidelsen" Tekst document.txt", for eksempel " Tekstdokument .bat"Og lagre, så vi får en batchfil med .bat-utvidelsen, men den gjør ingenting ennå. Til å begynne med vil jeg gi et eksempel på en batchfil som jeg bruker på jobben for å arkivere dokumenter. "C: \ Program Files \ WinRAR \ winrar.exe" a -r -dh -ed -agYYYY-mm-dd E: \ arhaccounts \ d: \ accounts \ *. Doc "C: \ Program Files \ WinRAR \ winrar. exe "a -r -dh -ed -agYYYY-mm-dd E: \ arhaccounts \ d: \ accounts \ *. xls" C: \ Program Files \ WinRAR \ winrar.exe "a -r -dh -ed -agYYYY -mm-dd E: \ arhkontoer \ d: \ kontoer \ *. txt Nå skal jeg fortelle deg litt hva denne batchfilen gjør. WinRar starter, deretter følger WinRar-kommandoene: I dette tilfellet arkiverer vi alle Word-dokumenter, Excel og tekstfiler, vi trenger ikke arkivere resten. Arkiveringen vår går til en annen disk, og vi kopierer også det resulterende arkivet til en annen datamaskin, slik at arkivene lagres på et annet kontor. Kopiering utføres over henholdsvis nettverket, datamaskinen som arkivet kopieres til må være slått på. For å gjøre dette kan du bruke følgende kommando: Kopi E: \ arhaccounts \ *. Rar \\ namecomp \ arhiv \ Vurder nå grunnleggende kommandoer som du kan bruke. Hvis du trenger å slette en fil, skriv følgende: Del d: \ fil \ test.doc Rd d: \ fil \ Plutselig må du slette alt fra en katalog hver gang, og bruk deretter dette: Ekko Y | del d: \ fil \ La oss nå se på et mer komplisert eksempel, der betingelsen allerede er oppfylt: @echo off "C: \ Program Files \ WinRAR \ winrar.exe" x -O + -IBCK d: \ test \ test.rar d: \ test HVIS ikke EKSISTERER d: \ test \ 123.rar GÅ TIL 1 HVIS EKSISTER d: : \ test \ 123.rar GÅ TIL 2: 2 "C: \ Program Files \ WinRAR \ winrar.exe" x -O + -IBCK d: \ test \ 123.rar c: \ del d: \ test \ 123.rar : 1 del d: \ test \ test.rar slutt Nå forklarer jeg, la oss si at du må pakke ut test.rar-arkivet, som vil inneholde mange filer, men hvis det er en 123.rar-fil, må du pakke den ut til roten av C-stasjonen, og resten av filene forblir i samme katalog urørt. For at det skal være nødvendig med @echo off-kommandoen slik at ingenting reflekteres på skjermen ( i prinsippet, hvis du ikke trenger, kan du ikke skrive denne linjen). Deretter kjører vi Winrar og pakker ut test.rar-arkivet inn i testmappen. Så kommer tilstanden hvis i testen ( etter utpakking test.rar) vi ikke har 123.rar-filen, så kjører vi bare batchfilen går til linjen: 1 og deretter blir test.rar-filen ganske enkelt slettet av unødvendige grunner. vi har allerede pakket ut alt vi trenger. Men hvis filen 123.rar er der, går batchfilen til linje: 2, hvoretter filen 123.rar pakkes ut til roten av C-stasjonen. Med andre ord har vi betingelsen om det er en fil, så gjør det, hvis det ikke er noen fil, gjør dette. La oss si, hvis du ikke skriver betingelsen i dette eksemplet, så vil batchfilen vår gi en feilmelding når vi ikke har 123.rar-filen i denne mappen. La oss nå vurdere et slikt eksempel, la oss si at du må flytte filer fra katalogen på disk D til en USB-flash-stasjon hver gang. Hver gang du må angi datamaskinens stasjon D, velger du ønsket mappe, velg alle filene fra den og klipp ut, og gå deretter til USB-flashstasjonen og lim inn. Ved hjelp av en batchfil gjøres dette med ett klikk ( med en betingelse om at flash-stasjonen hver gang for eksempel kjører G eller hva du har). Her er et eksempel på en slik batchfil: Flytt "D: \ katalog \ *. Doc" G: \ catalognaflehe \ Og alle filer med doc utvidelse som er i katalogen D: \ vil bli flyttet til USB-flashstasjonen. Nå vil jeg si at i kroppsskjorter kan du bruke skript ( skript) ved å bruke Windows Scripting Host og om nødvendig, for eksempel for å vise en melding etter at filene er kopiert ( forrige eksempel) lim inn dette: Echo var WSHShell = WScript.CreateObject ("WScript.Shell"); >% temp% \ mes.js echo WSHShell.Popup ("filer kopiert"); >>% temp% \ mes.js start% temp% \ mes.js deltree / y% temp% \ mes.js Faktisk kan du snakke mye om å skrive batch-filer, og du kan selvfølgelig ikke passe det inn i én artikkel, her viste jeg bare prinsippene som brukes når man skriver bat-filer, så å si grunnlaget. Hvis du vil vite flere kommandoer for å skrive batchfiler, kan du enkelt se dem ved å skrive inn kommandolinjen ( Start - Kjør - cmd) hjelpekommandoen, men det er selvfølgelig ikke alle kommandoer som kan brukes i kroppsskjorter. Lykke til med å skrive BAT filer (batnikov). Fortsettelse av emnet i artikkelen - Når du arbeider på en datamaskin, er det ofte nødvendig å gjenta de samme DOS-kommandoene for å utføre periodisk utførte handlinger, bygge en kompleks og flernivåsekvens kjørbare kommandoer eller applikasjoner, automatiserer arbeid med applikasjoner og filer med eller uten brukeren. Operativsystemet har muligheten til å skrive flere kommandoer i en bat-fil. Samtidig, ganske enkelt ved å starte denne kommandofilen (den kalles ofte et skript, eller ganske enkelt en "batch-fil"), kan du utføre de foreskrevne kommandoene, og ved å skrive den i hendelsene Windows planlegger, kan du automatisere denne prosessen. Funksjonsfiler av denne typen er fraværet i en hvilken som helst kode - det er bare klokkeinformasjon som leses og utføres av kommandoen DOS-prosessor, kompatibel med nesten alle versjoner av operasjonen Windows-systemer... Et av de slående eksemplene er autoexec.bat-filen, som kreves for å starte dette operativsystemet, siden det er han som konfigurerer det under oppstart. Kommandoene som bat-filen inneholder kan betinget deles inn i flere grupper i henhold til deres funksjonalitet: Designet for visning en viss verdi, setninger, applikasjoner eller informasjon; Bat-filene kan kjøres forskjellige måter... Når du arbeider i gjeldende katalog, kan du ganske enkelt skrive inn filnavn med tilleggsparametere eller uten dem. I dette tilfellet vil kommandoene til bat-filene etter oppstart utføres sekvensielt etter hverandre, allerede uten brukerintervensjon. Når en batchfil blir funnet i en annen katalog, må du spesifisere hele banen til katalogen der den er lagret i tillegg til det fulle navnet på denne filen. Filtypen kan også utelates. For eksempel er den gjeldende katalogen d: \ photo \ work, og batchfilen vera.bat, som må kjøres med resize.doc og / p parameterne, ligger i d: \ photo \ hjemmekatalogen. Deretter, for å starte filen vår, må du skrive kommandoen d: \ photo \ home \ vera resize.doc / p eller kommandoen .. \ home \ vera resize.doc / p. Bat-fil-kommandoene som utføres etter oppstart kan avbrytes av knappekombinasjonene Bat-filer kan inneholde lenker til utførelse av andre skript. Hvis du bare skriver en bat-fil i skriptets brødtekst, vil ikke kommandoene etter den bli utført, siden kontrollen overføres til en annen batch-fil og kommandoene vil bli utført fra den. Hvis det kreves retur etter lansering intern fil, så kan den kalles med CALL-kommandoen. Kommandoformatet ser slik ut: CALL batfilename [lanseringsparametere]. Parametrene som sendes til den/de påkalte batchfilen(e) er vanligvis tegnene % 1 - % 9. Når kommandoene til bat-filene er alle sekvensielt bestått, vil utførelsen av det originale skriptet fortsette fra neste linje. Det er tider når kommandoene til bat-filer må utføres trinnvis (med et stopp etter hver linje). Oftest er denne modusen nødvendig ved feilsøking eller testing av skript. Skrivingen av kommandoen ser slik ut: COMMAND / y / c _scriptnavn [parametere]. Når den utføres, vil en Y- eller N-forespørsel bli utstedt for hver kommando. Hvis en kommando er nødvendig, trykk Enter-tasten eller Y. Hvis du trenger å hoppe over kommandoen - trykk ESC eller N. Når bat-filen startes, vises kommandoene på skjermen linje for linje før de utføres og deretter utføres. Noen ganger forårsaker dette ulemper, siden med en stor batchfil kjører kommandoer i en lang liste foran brukeren på skjermen, og noen ganger må de vises, for eksempel for dialog eller feilsøking. For å vise bat-filen til kommandoen, bruk ECHO ON-kommandoen. For å deaktivere denne modusen, skriv inn ECHO med OFF-parameteren. I dette tilfellet vil ikke alle kommandoene som er utført videre vises på skjermen lenger. For å deaktivere utdata fra bare én linje i batchfilen til skjermen, kan du bruke @-symbolet helt i begynnelsen av denne linjen. Oftest kan dette symbolet finnes i forbindelse med @ECHO OFF-kommandoen for å forhindre at det vises på skjermen. Denne modusen brukes ofte av nettkriminelle, skaper virus basert på bat-filer eller leverer mindre og større problemer til databrukere. Hvis det etter ECHO-kommandoen er andre tegn enn PÅ eller AV, vil de vises i hvilken som helst modus. Hvis ECHO er uten parametere, viser den tilstanden til visningsmodusen for kjørbare kommandoer - på eller av. Hvis ønskelig, kan du til og med spille (knirke) datamaskinen ved å bruke en bat-fil. Kommandoene vist nedenfor er basert på ECHO-setningen med tillegg av spesialtegn. Å leke lydsignal trenger å trekke seg standardkarakter med kode 7. Dette kan gjøres ved å trykke på tasten For å forbedre lesbarheten til meldinger kan du søke ECHO kommando med parameteren "." (den plasseres umiddelbart etter kommandoen uten mellomrom) eller spesiell karakter med koden 255. På skjermen vil det se ut som en tom linje. ECHO-kommandoen kan brukes til å vise meldinger i egen fil... Dens essens består i å omdirigere utdataene til meldinger til skriving til en fil, og ikke til monitorskjermen. Du kan bruke flaggermus til å lagre logger, spørreskjemaer og registrere hendelser. Utdatakommandoer har følgende format: ECHO-melding >> filnavn - denne kommandoen legger til en linje på slutten av en eksisterende fil. Hvis det ikke er en slik fil i denne katalogen, så a ny fil. ECHO message> filename - denne kommandoen oppretter en ny fil og skriver gjeldende linje til den. Hvis det er en slik fil i gjeldende katalog, vil innholdet slettes og kommandoen eller resultatet vil bli registrert. For å gjøre det enklere å redigere skript, brukes REM-kommandoen. Alle kommandoer etter den bat-fil Windows ignorert når den utføres. De kan sees når du redigerer og når steg for steg... I alle andre tilfeller vil ikke kommentarer vises på skjermen. Noen ganger, mens du kjører en batchfil, blir det nødvendig å midlertidig stoppe utføringen av kommandoer, for eksempel for å vente på brukerens reaksjon, for å øke tiden for lesing lang melding, for å sette inn en plate, bekrefte tilstedeværelsen av en bruker, eller for å feilsøke en batchfil. Forsinkelseskommandoen i bat-filen skrives som PAUSE uten parametere. I dette tilfellet vil displayet vise en melding som "Trykk på hvilken som helst tast for å fortsette", og skriptet vil bli satt på pause til tastaturknappen trykkes. Hvis kombinasjonen trykkes For sekvensiell kjøring av flere filer fra listen som ligger i samme katalog, kan du også bruke en bat-fil. Kommandoene "Kjør etter navn" og "Kjør etter filtype" kan ofte hjelpe til med å automatisere dokumentbehandling, for eksempel sortering av e-postvedlegg. De er forskjellige i parametere for FOR-kommandoen. Formatet for å skrive det er vist nedenfor: FOR% x IN (liste over filer) DO kommando, hvor: X - et hvilket som helst tegn, bortsett fra tall fra 0 til 9; Liste - mellomromseparerte filnavn eller navnet på en enkelt fil; i dette tilfellet kan du bruke spesialtegnene "?" og "*" for å erstatte fra ett til flere tegn i filnavnet; Kommando - en hvilken som helst DOS-kommando eller et annet program enn FOR; hvis nødvendig bruker FOR, så må du spesifisere %% x i stedet for % x. Når du bruker denne kommandoen til å skrive bat-filer, må du ta hensyn til at navn i DOS-programmer har en begrensning på lengden på navnet. For å bytte FOR-kommandoen til å arbeide med lange navn filer, må du ikke glemme å kjøre LFNFOR ON-kommandoen før den for å aktivere operasjonen med lange navn og LFNFOR OFF for å deaktivere den og gå tilbake til standard fillengde. Mange funksjoner med programmer, som å sammenligne filer med visse typer utvidelser i en katalog med filer av samme type fra en annen katalog, kopiere alle filene i gjeldende katalog til en annen, sekvensiell kjøring av filer med utvidelser av en bestemt type og navn som begynner med tall kan gjøres med bare én kommando som legges inn i bat-filen. Lanseringen av programmet kan kombineres med brukerforespørsler, noe som gjør det enklere å jobbe med data. For å gjøre det lettere å kontrollere rekkefølgen på utsendelseskommandoer i bat-filer, bruker de ofte hoppkommandoer og etiketter som disse overgangene gjøres langs. Hoppkommandoen staves GOTO med navnet på etiketten atskilt med et mellomrom. Hvis det ikke er noen parameter eller navnet på etiketten i kommandofilen ikke blir funnet, slutter skriptet å fungere på denne kommandoen. Eksempel: REM (kjør nødvendige kommandoer). I dette eksemplet hopper sekvensiell kjøring av batchfilen, når GOTO zzz, til etiketten: zzz og fortsetter med REM, og ignorerer alt mellom hoppkommandoen og den spesifiserte etiketten. Bat-fil kan eller ikke kan utføre kommandoer avhengig av ulike forhold hvis den bruker en IF-hendelsessjekk. Formatet til denne kommandoen er "IF condition-kommando". Tilstanden er representert av forskjellige varianter av uttrykk: FEILNIVÅ-nummer - i tilfellet det forrige kjørbare programmet endte med en utgangskode lik den spesifiserte numerisk verdi eller mer, vil tilstanden være sann. LINJE 1 == LINJE 2 - i tilfelle fullstendig samsvar mellom linjene, blir betingelsen sann. I stedet for strenger, kan du erstatte tegnene% 0 -% 9, så vil parametrene til kommandofilen sammenlignes. EXIST - filnavn - if spesifisert fil eksisterer, så er betingelsen sann. IKKE - tilstand - hvis spesifisert tilstand usann, vil utdataene fra kommandoen motta en sann verdi. Hvis du klikker på "Start"-knappen og kjører kommandolinje(cmd), så kan du se at alt som er satt inn i bat-filen kan brukes som et verktøy for feilsøking, som en assistent, et program for å få informasjon om kommandoer. For å gjøre dette, kan du ganske enkelt skrive HELP. I dette tilfellet en liste over kommandoer med korte beskrivelser til dem. For mer detaljert informasjon du kan skrive inn HJELP med navnet på kommandoen du ønsker. Batchfiler gjør livet mye enklere systemadministratorer når du utfører daglig arbeid. De vanligste bruksområdene for disse er opprettelse, sletting, nytt navn og mer. Alt dette er basert på bruken av kommandoen COPY bat-file. Du kan for eksempel lage et program som lager arkivkopier av dokumenter fra en valgt mappe med brukerdata i visse formater, unntatt for eksempel store mediefiler, gir en sikkerhetskopi i en mappe med brukerens navn og kaller den "File_copy_Command. flaggermus". Etter det er det nødvendig å sikre lanseringen i Viss tid ved å bruke den innebygde planleggeren eller av selve programmet og dermed sikre sikkerheten til brukerdata.Eksempler på kommandoer for bat-filer
For å slette hele katalogen, skriv:Grunnleggende funksjoner i batchfiler
- å implementere lanseringen av batchdokumenter;
- å jobbe med sykluser;
- å skape forgreningsutførelse ved å bruke betingelser;
- å jobbe med applikasjoner.Kjøring av batchfiler
Avbrudd i arbeidet
Kaller opp en annen batchfil
Trinn for trinn utførelse
Deaktiver eller aktiver visning av kommandoer på skjermen
Kommandoutførelsesmeldinger
Bruke kommentarer
Forsinkelseskommando i bat-fil
filliste
Overganger i bat-filer
En etikett er en hvilken som helst linje i en kjørbar fil som begynner med et kolon. Etikettnavnet er tegnsettet etter kolon til slutten av linjen eller opp til første mellomrom, hvoretter resten av linjen ignoreres, som kan brukes som kommentar til hoppetiketten.Bruke betingelser når du arbeider med bat-filer
Kommandoer brukt i bat-filer
Bruke bat-filer ved sikkerhetskopiering av data