Kommando for å lage en fil i cmd. Kommandolinje og kommandoer. Massefilbehandling. For kommando

Mange tekniske skribenter finner det nødvendig å automatisere behandlingen av filer fra tid til annen. Det var en gang det kommer om engangsbehandling et stort antall filer, noen ganger om den systematiske ytelsen til de samme handlingene, for eksempel ved bruk av DocBook- eller DITA-teknologier). Behandler hver fil et eget lag manuell inntasting er ikke bare tidkrevende, men fører også til vanskelige feil på grunn av naturlig uforsiktighet hos operatøren.

I MS-DOS-operativsystemet og i alle operativsystemer i familien Microsoft Windows Den enkleste måten å automatisere behandlingen av filer (og kataloger) på er de såkalte batch-filene. La oss si med en gang at batchfiler ikke er den eneste måten å automatisere brukerarbeid på, selv fra de innebygde. I operativsystemer i Microsoft Windows-familien, fra og med versjon 98, er det også Windows Script (ing) Host. I tillegg er det ingen som forbyr oss å bruke noe tolket språk til dette formålet, for eksempel Perl, Python eller Ruby. Selv om disse verktøyene er kraftige, krever de programmeringskunnskaper, dvs. komponer og, som er viktig, feilsøke programmer, i det minste på et godt amatørnivå. Bruken av batchfiler er tilgjengelig for alle uten noen spesiell forberedelse, omsorg og sunn fornuft er nok.

Viktig notat. Fullstendig referanse eller til og med en samvittighetsfullt kompilert opplæring om MS-DOS-kommandoer og batch-filutvikling vil måtte beskrive de mange nyansene forbundet med bruk ulike parametere, særegenhetene ved arbeidet med batchfiler i forskjellige versjoner Microsoft Windows, etc. etc. Den foreslåtte artikkelen hevder ikke å være fullstendig, spesielt:

  • vi vil ikke beskrive forskjellige måter oppnå samme resultat;
  • vi vil ikke beskrive alle mulighetene og alternativene for å bruke de nevnte kommandoene.

Vår oppgave nå er å hjelpe de som er helt eller nesten ukjent med dette verktøyet til å begynne å mestre batchfiler. Alle detaljene kan deretter leses i den proprietære dokumentasjonen eller i oppslagsverk.

Kommandoprosessor

Mange operativsystemer, inkludert de som er utviklet av Microsoft, 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:

  1. Klikk på knappen Start... Hovedmenyen vil vises.
  2. Velg Kjør fra hovedmenyen. En dialogboks vil vises Lansering av programmet.
  3. Skriv inn strengen i Åpne-boksen cmd.
  4. 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. Det er mye enklere å bruke filbehandlere i Norton Commander-stil. De gir både et middel for rask navigering gjennom filsystemet og en tidsbegrensning for å legge inn kommandoer.

For å angi kommandoen:

  1. Skriv inn kommandoteksten på kommandolinjen.
  2. Trykk på tasten Tast inn.

Kommandoprosessoren og operativsystemkommandoene er beskrevet i operativsystemdokumentasjonen. Denne dokumentasjonen er delvis inneholdt i selve operativsystemet. For å få tilgang til den, bruk kommandoen hjelp... Denne kommandoen viser en liste over tilgjengelige kommandoer på skjermen. 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.

Hjelp 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 i moderne operativsystemer Microsoft Corporation litt mindre enn 80 kommandoer, og det er umulig å beskrive dem i én 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 generelle regler Syntaksen til MS-DOS-kommandoer er at når du spesifiserer parametere, indikeres kilden først, 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.

Flytt 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 peker på dem: enten en absolutt vei eller en relativ vei. I den fullstendige banen indikerer vi alt som starter fra disken (eller nettverket datamaskinnavn), 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. For en relativ bane er den gjeldende katalogen utgangspunktet. Den enkleste saken relativ vei- 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.

Kopier *. *. \ Nabo

Kommandofiler

Inntil nå, da vi ga eksempler, antok vi at vi skrev inn kommandoer manuelt hver gang. Ved behandling av store antall filer eller det blir tungvint når du systematisk utfører de samme kommandoene. 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.

Help copy> copy.help help move> move.help md msdos-help move * .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:

  1. 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 ^ ... (Det er nødvendig at hvert "deksel" er siste tegn i din linje; det skal 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 for kopiering og flytt rem-kommandoer *********************************** * ****************** rem Opprett hjelpefiler help copy> copy.help help move> move.help rem Opprett en katalog for å lagre hjelpefiler md msdos-help rem Flytt hjelpefilene til den forberedte one move-katalogen * .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 i dette øyeblikket, noen ganger danner vi en annen kommandofil nyttig fil... Det samme gjelder for visning av meldinger. ekko kommando... Teksten til den viste meldingen sendes til den som en parameter. Listen over den forbedrede batchfilen vises nedenfor.

@echo off rem ********************************************* ** ***** rem Genererer hjelpefiler for kopiering og flytt rem-kommandoer ********************************* * ******************** @echo Vi genererer hjelpefiler. Ett sekund ... rem Opprett hjelpefiler hjelp kopi> copy.help hjelp flytte> move.help rem Opprett en katalog for å lagre hjelpefiler md msdos-help rem Flytt hjelpefilene til den forberedte katalogen move * .help msdos-help echo Ferdig!

Sende parametere til batchfilen

Anta at vi ønsker å lage en batchfil som først genererer en hjelp med en beskrivelse brukerdefinert kommando, og laster den deretter inn for visning i notisblokk. 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.

@echo off rem Lag en fil med en beskrivelse av kommandoen, rem hvis navn sendes av parameteren help% 1> help.tmp rem Last beskrivelsesfilen inn i editoren Notepad notepad help.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 Et eksempel på en kommandofil med to parametere rem Opprett en katalog med navnet spesifisert av den første parameteren md% 1 rem Opprett en fil med beskrivelsen av kommandoen rem spesifisert av den andre parameteren help% 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.

Rem Compiler for hjelpefiler i CHM-format sett help_compiler = c: \ HTML Help Workshop \ hcc.exe

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 for "Warehouse"-modulsettet store_hpj = help \ sources \ store \ store.hpj rem Prosjekt for hjelpen fil for modulen "Sales "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.

Rem Path til hjelpefilen kompilatoren set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe" rem Banen til katalogen der hjelpefilen prosjekter er plassert sett project_path = e: \ work \ projects \ help-projects rem Vi kaller kompilatoren for å behandle et spesifikt prosjekt, hvis rem-navn sendes i den første parameteren% help_compiler%% project_path% \% 1.hpj

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. Ellers er det 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.

@echo off rem Sjekk om parameteren er satt hvis ikke "% 1" == "" skal kompilere rem Hvis parameteren er tom, gir vi en feilmelding echo Prosjektnavnet til rem hjelpefilen er ikke spesifisert og gå til slutten av rem batch-filen til finish goto label finish rem Dette er en etikett som heter compile: compile rem Nedenfor er kommandoene for kompilering av rem Banen til hjelpefilen kompilatoren set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe" rem Banen til katalogen der hjelpeprosjektene er plassert filer sett project_path = e: \ work \ projects \ help-projects rem Ring kompilatoren for å behandle et spesifikt prosjekt, hvis rem-navn sendes i det første parameter% help_compiler%% project_path% \% 1.hpj rem Dette er en etikett som heter finish: 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 kommandoer 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.

@echo off rem Sjekk om parameteren hvis ikke eksisterer% 1.hpj (rem Hvis parameteren er tom, gir vi en feilmelding echo Dette hjelpefilprosjektet eksisterer ikke.) else (rem Nedenfor er kompilasjonskommandoene rem Banen til help file compiler set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe" rem Banen til katalogen der hjelpefilprosjektene er plassert set project_path = e: \ work \ projects \ help-projects rem Ring opp kompilator for å behandle et spesifikt prosjekt , rem hvis navn vi sender inn i den første parameteren% help_compiler%% project_path% \% 1.hpj)

Vær oppmerksom på polstringen fra venstre kant. De er valgfrie, men de gjør teksten i batchfilen mer lesbar.

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, så sletter batchfilen den (vi vil anta at en backup det er nok for oss).

Hvis det finnes help-files.bak rd help-files.bak hvis det finnes hjelpe-filer ren hjelpe-filer help-files.bak md hjelpe-filer

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.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.

@echo off for / r nettsted %% i in (* .htm) do (rem Skriv ut filnavn echo %% i rem Gi nytt navn til fil 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 Path til hjelpefilen kompilatoren set help_compiler = "c: \ Program Files \ HTML Help Workshop \ hhc.exe" rem Banen til katalogen der hjelpefilen prosjekter er plassert sett project_path = e: \ work \ projects \ help-projects

"Fungerende" batchfil.

@echo off rem Konfigurere variabler kall config.bat rem Sjekk om parameteren hvis ikke eksisterer% 1.hpj (rem Hvis parameteren er tom, gir vi en feilmelding echo Dette hjelpefilprosjektet eksisterer ikke.) else (rem Nedenfor er kompileringskommandoene rem Kall kompilatoren for å behandle et spesifikt prosjekt, hvis rem-navn sendes i den første parameteren% help_compiler%% project_path% \% 1.hpj)

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 LEXICON med automatisk lasting av den siste tekstfilen 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 sikkerhetskopiering innhold av hardt disk 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 ett 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) Det har oppstått en kritisk I/O-feil (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. Sikkerhetskopiering av hele innholdet på en harddisk er tidkrevende og krever 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 sett med kommandoer ( instruksjon) tolk og har bat- eller cmd-utvidelsen ( 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:

  • a - dette er for å legge til arkivet;
  • -r - behandle undermapper;
  • -dh - åpne delte filer;
  • -ed - ikke legg til tomme mapper;
  • ÅÅÅÅ-mm-dd - legg til gjeldende dato i arkivnavnet ( datoformat);
  • E: \ arhaccounts \ - banen der det endelige arkivet vil bli plassert;
  • d: \ kontoer \ *.doc - bane og maske av filer som skal arkiveres.

I dette tilfellet arkiverer vi alle Word-, 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 \

Eksempler på kommandoer for bat-filer

Vurder nå grunnleggende kommandoer som du kan bruke.

Hvis du trenger å slette en fil, skriv følgende:

Del d: \ fil \ test.doc


For å slette hele katalogen, skriv:

Rd d: \ fil \

Plutselig må du slette alt fra en katalog hver gang, og bruk deretter dette:

Ekko Y | del d: \ fil \

  • del d: \ fil \ - dette er nøyaktig sletting av alle filer;
  • ekko Y | - kommandoen bekrefter slettingen fordi hvis du ikke registrerer denne kommandoen, vil du se en melding som bekrefter slettingen - "Fortsett", og du må svare på dette spørsmålet hver gang.

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å gå inn på datamaskinens disk D, velg ø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-utvidelsen som er i D: \ katalogkatalogen 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 i stavemåte 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 av kjørbare kommandoer eller applikasjoner, automatisere 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.

En funksjon av denne typen filer er fraværet av noen kode inni - det er bare klokkeinformasjon som leses og utføres av kommandoen DOS-prosessoren, som er kompatibel med nesten alle versjoner av operativsystemet. 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.

Grunnleggende funksjoner i batchfiler

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;
- å implementere lanseringen av batchdokumenter;
- å jobbe med sykluser;
- å skape forgreningsutførelse ved å bruke betingelser;
- å jobbe med applikasjoner.

Kjøring av batchfiler

Batchfiler kan startes på 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.

Avbrudd i arbeidet

Bat-fil-kommandoene som utføres etter oppstart kan avbrytes av knappekombinasjonene +og +... Displayet vil be deg om å avbryte kjøringen av batchfilen med en melding som venter på Ja eller Nei. Hvis du skriver inn Y, vil utførelsen bli avbrutt, og den gjenværende listen med kommandoer i bat-filen vil bli ignorert. Hvis du skriver inn tegnet N, vil utførelsen fortsette med neste kommando fra listen.

Kaller opp en annen batchfil

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 du vil returnere etter å ha startet en intern fil, kan du ringe den 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.

Trinn for trinn utførelse

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.

Deaktiver eller aktiver visning av kommandoer på skjermen

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.

Kommandoutførelsesmeldinger

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 du må vise standardtegnet med koden 7. Dette kan du gjøre ved å trykke på tasten og "7" på det numeriske tastaturet (merket hjem).

For å forbedre lesbarheten til meldinger kan du bruke ECHO-kommandoen med "."-parameteren. (den plasseres umiddelbart etter kommandoen uten mellomrom) eller et spesialtegn med koden 255. På skjermen vil det se ut som en tom linje.

ECHO-kommandoen kan brukes til å sende meldinger til en separat 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, opprettes en 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.

Bruke kommentarer

For å gjøre det enklere å redigere skript, brukes REM-kommandoen. Alle kommandoer for bat-filer som er etter den, ignoreres av Windows under kjøring. De kan sees under redigering og i trinn-for-trinn-modus. I alle andre tilfeller vil ikke kommentarer vises på skjermen.

Forsinkelseskommando i bat-fil

Noen ganger, mens du kjører en batchfil, blir det nødvendig å midlertidig stoppe utførelsen av kommandoer, for eksempel å vente på brukerens reaksjon, for å øke tiden til å lese en lang melding, sette inn en disk, for å bekrefte tilstedeværelsen av 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 +eller +, så vil systemet tolke dette som fullføringen av den kjørbare filen og vil sende en forespørsel om å bekrefte fullføringen av arbeidet: "Avbryte utførelsen av batchfilen? (J/N) ". Hvis du trykker på Y-tasten, vil skriptet bli avbrutt på dette tidspunktet og alle gjenværende utestående kommandoer vil bli ignorert. Hvis du trykker på N, fortsetter kjøringen med neste kommando. Når den er satt på pause, trykker du på andre alfanumeriske taster, så vel som "Mellomrom" og "Enter", vil kjøringen av den kjørbare filen fortsette med neste kommando.

filliste

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 det er behov for å bruke FOR, 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 å fungere med lange filnavn, må du huske å kjøre LFNFOR ON-kommandoen før den for å aktivere operasjonsmodusen med lange navn og LFNFOR OFF for å deaktivere den og gå tilbake til standard fillengde.

Mange funksjoner med programmer, for eksempel å 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 starter med tall, kan gjøres med bare én kommando som er lagt inn i bat-filen. Lanseringen av programmet kan kombineres med brukerforespørsler, noe som gjør det enklere å jobbe med data.

Overganger i bat-filer

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.
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.

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.

Bruke betingelser når du arbeider med bat-filer

En bat-fil kan eller ikke kan utføre kommandoer avhengig av ulike forhold, hvis sjekken for forekomsten av en IF-hendelse brukes i den. Formatet til denne kommandoen er "IF condition-kommando".

Tilstanden er representert av forskjellige varianter av uttrykk:

FEILNIVÅ-nummer - i tilfelle det tidligere utførte programmet ble avsluttet med en utgangskode lik eller større enn den angitte numeriske verdien, vil betingelsen 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 - hvis den angitte filen eksisterer, er betingelsen sann.

NOT - betingelse - hvis den angitte betingelsen er usann, vil kommandoutgangen motta en sann verdi.

Kommandoer brukt i bat-filer

Hvis du klikker på "Start"-knappen og kjører kommandolinjen (cmd), kan du se alt som er satt inn i bat-filen, du kan bruke den som et verktøy for å feilsøke, som en assistent, et program for å få informasjon om kommandoer. For å gjøre dette, kan du ganske enkelt skrive HELP. I dette tilfellet utstedes en liste over kommandoer med korte beskrivelser til dem. For mer detaljert informasjon kan du skrive inn HJELP med navnet på den nødvendige kommandoen.

Bruke bat-filer ved sikkerhetskopiering av data

Batchfiler gjør livet mye enklere for systemadministratorer i deres daglige 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 på et bestemt tidspunkt ved å bruke den innebygde planleggeren eller av selve programmet og dermed sikre sikkerheten til brukerdata.

Windows bat-filer er en praktisk måte å utføre ulike oppgaver på en PC, som brukes aktivt av datahåndverkere. De lar deg automatisere hverdagsoppgaver, redusere gjennomføringstiden og gjøre en kompleks prosess til noe som er gjennomførbart for en vanlig bruker. Denne artikkelen presenterer de grunnleggende funksjonene til batchfiler og anbefalinger for å skrive dem selv.

Automatisering gjort enkelt

Hvordan lage en bat-fil? For å gjøre dette, følg disse trinnene:

  1. Lag et tekstdokument i et hvilket som helst tekstredigeringsprogram, for eksempel Notisblokk eller WordPad.
  2. Skriv kommandoene dine i den, start med @echo, og deretter (hver gang på en ny linje) - tittel [navn på batchskriptet], ekko [melding som skal vises] og pause.
  3. Lagre tekst i et elektronisk dokument med filtypen .bat (for eksempel test.bat).
  4. For å starte, dobbeltklikk på den nyopprettede batch-fil.
  5. For å redigere den må du klikke på den Høyreklikk musen og velg "Endre" fra hurtigmenyen.

Råfilen vil se omtrent slik ut:

title Dette er ditt første bat-filskript!

echo Velkommen til manuset batchbehandling!

Flere detaljer om kommandoene til bat-filer og deres bruk vil bli diskutert nedenfor.

Trinn 1: lage et programskript

La oss anta at en bruker ofte har problemer med nettverket. Han bruker kommandolinjen hele tiden, skriver ipconfig og pinger Google for å feilsøke nettet. Etter en stund innser brukeren at det ville vært mye mer effektivt om han skrev en enkel bat-fil, skrev den til USB-stasjonen og kjørte den på datamaskinene han diagnostiserer.

Opprett et nytt tekstdokument

En batch-fil gjør det enkelt å utføre repeterende oppgaver på datamaskinen ved å bruke Windows-kommandolinjen. Nedenfor er et eksempel på et skript som er ansvarlig for å vise noe tekst på skjermen. Før du oppretter en bat-fil, bør du høyreklikke på tomrom i katalogen og velg "Opprett" og deretter "Tekstdokument".

Legger til kode

Dobbeltklikk på dette nye tekstdokumentet vil åpne standard tekstredigeringsprogram. Du kan kopiere og lime inn kodeeksemplet ovenfor i en tekstoppføring.

Bevaring

Skriptet ovenfor viser teksten "Velkommen til batchskriptet!" Et elektronisk dokument må skrives ved å velge tekstredigeringsmenypunktet "Fil", "Lagre som", og deretter angi ønsket navn for bat-filen. Den skal fullføres med .bat-utvidelsen (for eksempel welcome.bat) og klikk "OK". Til riktig visning Kyrillisk i noen tilfeller bør du sørge for riktig valg av koding. For eksempel, når du bruker konsollen til Russified Windows NT-systemet, må dokumentet lagres i CP866. Nå må du dobbeltklikke på snarveien til bat-filen for å aktivere den.

Men skjermen vil vise:

"Velkommen til batch-skriptet! Trykk en tast for å fortsette ..."

Hvis bat-filen ikke starter, anbefaler brukere å gå inn i registeret og slette nøkkelen:

"HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .BAT \ UserChoice".

Ikke tro at dette er alt batch-skript er i stand til. Skriptparametere er modifiserte versjoner av kommandolinjekommandoer, så brukeren er bare begrenset av deres evner. Og de er ganske omfattende.

Trinn 2: bli kjent med noen av kommandoene

Hvis en PC-bruker er kjent med hvordan man utfører DOS-konsollkommandoer, vil han være en veiviser for å lage programskript, fordi det er samme språk. Linjene i bat-filene vil fortelle cmd.exe-tolken alt som kreves av den. Dette sparer tid og krefter. I tillegg er det mulig å angi en viss logikk (f.eks. enkle løkker, conditionals, etc., som er konseptuelt lik prosedyreprogrammering).

Innebygde kommandoer

1. @echo er en bat-fil-kommando som lar deg se skriptet fungere på kommandolinjen. Den brukes til å se fremdriften til den kjørende koden. Hvis batchfilen har noen problemer da gitt kommando lar deg raskt lokalisere problemer. Å legge til av gjør det mulig å raskt avslutte kjøringen av koden, og unngå utdata unødvendig informasjon på skjermen.

2. Tittel gir de samme egenskapene som taggen i HTML, det vil si at den lager en overskrift for et batchskript i et ledetekstvindu.</p><p>3. Call kaller en bat-fil fra en annen eller en subrutine innenfor ett skript. For eksempel beregner potensfunksjonen potensen % 2 av % 1:</p><p>if% counter% gtr 1 (</p><p>sett / en teller- = 1</p><p>endlocal & sett resultat =% prod%</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862019.jpg' width="100%" loading=lazy loading=lazy></p><p>4. Cls forsvinner <a href="https://qzoreteam.ru/no/kak-otkryt-programmu-v-komandnoi-stroke-kak-zapuskat-programmu-iz/">kommandolinje</a>... Brukes til å lage forrige utgang <a href="https://qzoreteam.ru/no/luchshaya-blokirovka-ekrana-dlya-android-blokirovka-ekrana-na-android-kak/">fremmed kode</a> forhindret ikke å se fremdriften til det gjeldende skriptet.</p><p>5. Farge angir fargen på fonten og bakgrunnen. For eksempel setter kommandofargen f9 hvite bokstaver til <a href="https://qzoreteam.ru/no/rgb-kod-krasnogo-cveta-zapisyvaetsya-kak-kak-izmenit-cvet-teksta-html-i-css/">blå bakgrunn</a>... Kommando uten parameter gjenoppretter standardinnstillinger.</p><p>6. Ekko brukes til å sende ut informasjon, samt aktivere (ekko på) eller deaktivere (ekko av) slik utgang. For eksempel ekko-kommandoen. trekker ut <a href="https://qzoreteam.ru/no/1s-8-kak-operacii-so-strokoi-novye-funkcii-raboty-so-strokami/">ny linje</a> uten en prikk, men ekko. - punkt. Uten parametere viser kommandoen informasjon om gjeldende status - ekko på eller ekko av.</p><p>7. Rem gir samme funksjonalitet som taggen<! в HTML. Такая строка не является частью выполняемого кода. Вместо этого она служит для пояснения и предоставления информации о нем.</p><p>8. Pause lar deg avbryte utførelsen av bat-fil-kommandoer. Dette gjør det mulig å lese de utførte linjene før du fortsetter med programmet. I dette tilfellet vises meldingen "For å fortsette, trykk på hvilken som helst tast ..." på skjermen.</p><p>9. Set lar deg vise eller angi miljøvariabler. Med / p-bryteren ber kommandoen brukeren om inndata og lagrer den. Med parameteren / a gjør det mulig å utføre enkelt <a href="https://qzoreteam.ru/no/operacii-nad-primitivnymi-tipami-v-java-arifmeticheskie-operacii/">aritmetiske operasjoner</a> mens de også tilordner resultatet til en variabel. Når du opererer med strenger, skal det ikke være mellomrom verken før eller etter likhetstegnet. For eksempel, set viser en liste over miljøvariabler, set HOME viser verdiene til argumenter som starter med "HOME", og set / p input = skriv inn et heltall: ber om et heltall og tilordner det til den aktuelle variabelen.</p><p>10. Start "" [nettsted] vil starte det angitte nettstedet i standard nettleser.</p><p>11. If tjener til å kontrollere en spesifikk tilstand. Hvis det er sant, blir kommandoen etter den utført. Det er 3 typer tilstander:</p><ul><li>FEILNIVÅ-nummer - sjekk utgangskoden til den sist utførte instruksjonen for samsvar med eller overskrider det angitte tallet. I dette tilfellet indikerer 0 vellykket fullføring av oppgaven, og et hvilket som helst annet tall, vanligvis positivt, indikerer en feil. For eksempel kan du bruke nestede kommandoer for nøyaktig å bestemme utgangskoden: hvis feilnivå 3 hvis ikke feilnivå 4 ekkofeil # 3 har oppstått.</li><li>String1 == string2 - sjekk om to strenger samsvarer. For eksempel i fravær <a href="https://qzoreteam.ru/no/luchshie-zhestkie-diski-1-tb-kakoi-firmy-luchshe-vybrat-vneshnii/">ekstern parameter</a> hvis "% 1" = = "" gå til ERROR-kommandoen vil overføre kontrollen til ERROR-etiketten.</li><li>EKSISTER navn - sjekk om det finnes en fil med det angitte navnet. For eksempel, hvis det ikke finnes A: \ program.exe KOPIER C: \ PROSJEKTER \ program.exe A: kopierer program.exe til stasjon A hvis den ikke er der.</li> </ul><p>12. Else må være på samme linje med If-kommandoen. Indikerer behovet for å prestere <a href="https://qzoreteam.ru/no/kak-perepisat-kontakty-chtoby-skopirovat-kontakty-s-telefona-na-kompyuter/">følgende instruksjon</a> hvis uttrykket er usant.</p><p><img src='https://i1.wp.com/syl.ru/misc/i/ai/324915/1862021.jpg' width="100%" loading=lazy loading=lazy></p><p>13.For brukes til repetisjon <a href="https://qzoreteam.ru/no/polnaya-nastroika-routera-zyxel-keenetic-neobhodimo-vypolnit-opredelennye/">visse handlinger</a> med hvert medlem av listen. Den har formatet for %% argument i (list) do kommando. Argumentet kan være en hvilken som helst bokstav fra A til Å. En liste er en sekvens av strenger atskilt med mellomrom eller komma. Jokertegn kan også brukes. For eksempel:</p><ul><li>for %% d i (A, C, D) do DIR %% d - viser sekvensielt katalogene til stasjonene A, C og D;</li><li>for %% f in (* .TXT * .BAT * .DOC) do TYPE %% f - skriver ut innholdet av alle .txt-, .bat- og.doc-filer i gjeldende katalog;</li><li>for %% P i (% PATH%) gjør hvis finnes %% P \ *. BAT COPY %% P \ *. BAT C: \ BAT - kopierer alle batchfiler som finnes i alle kataloger i søkeruten til mappen C : \ BAT.</li> </ul><p>14. Et kolon (:) foran et ord danner en lenke fra det, som lar deg hoppe over en del <a href="https://qzoreteam.ru/no/tegi-prednaznachennye-dlya-vyvoda-chastei-programmnogo-koda-html-programmnyi/">programkode</a> eller gå tilbake. Den brukes med kommandoene Call og Goto, som indikerer hvor du skal fortsette å kjøre bat-filen, for eksempel når en viss betingelse er oppfylt:</p><p>15. Variabler:</p><ul><li>%% a står for hver fil i mappen;</li><li>% CD% - gjeldende katalog;</li><li>% DATO% - <a href="https://qzoreteam.ru/no/change-the-system-time-and-date-system-time-of-the-computer/">systemdato</a>, hvis format avhenger av lokaliseringen;</li><li>% TID% - <a href="https://qzoreteam.ru/no/sbivaetsya-sistemnoe-vremya-sbivaetsya-vremya-na-kompyutere/">system tid</a> i form av HH: MM: SS.mm .;</li><li>% RANDOM% - generert pseudo-tilfeldig tall i området fra 0 til 32767;</li><li>% ERRORLEVEL% - utgangskode returnert av den sist utførte kommandoen eller bat-skriptet.</li> </ul><p>Du kan trekke ut delen av en streng som er inneholdt i en variabel, gitt dens posisjon og lengde, som følger:</p><p>% [variabel]: ~ [start], [lengde] %. For eksempel kan du vise datoen i formatet DD / MM / ÅÅÅÅ som ÅÅÅÅ-MM-DD slik: echo% DATO: ~ 6,4% -% DATO: ~ 3,2% -% DATO: ~ 0,2%.</p><p>16. (". \") - <a href="https://qzoreteam.ru/no/kak-naiti-kornevuyu-papku-fleshki-gde-nahoditsya-kornevaya-papka-fleshki/">Rotmappen</a>... Når du arbeider med konsollen, før du endrer filnavnet, sletter det osv., må du dirigere kommandohandlingen til en bestemt katalog. Når du bruker en batchfil, er det bare å kjøre den i hvilken som helst katalog du ønsker.</p><p>17,% siffer - tar parameterverdier, <a href="https://qzoreteam.ru/no/mozhno-li-vyvesti-golosa-iz-vkontakte-peredaem-golosa-drugim/">overført av brukeren</a> til en flaggermus-fil. Kan skilles med mellomrom, komma eller kolon. Siffer er et tall fra 0 til 9. For eksempel er % 0 verdien av gjeldende kommando. % 1 samsvarer med den første parameteren, og så videre.</p><p>18. Shift - kommandoen som brukes til å skifte <a href="https://qzoreteam.ru/no/kak-ustranit-nesootvetstvie-parametrov-vhodnoi-seti-specificheskie-trebovaniya-directaccess/">inndataparametere</a>én stilling. Gjelder når eksterne argumenter sendes til batchfilen. For eksempel kopierer følgende bat-fil filene som er spesifisert som parametere på kommandolinjen til D-stasjonen:</p><p>hvis ikke (% 1) == () gå til neste</p><p>I tillegg kan følgende manipulasjoner utføres med argumentene:</p><ul><li>% ~ - fjern omkringliggende anførselstegn;</li><li>% ~ f - utvide parameteren til det fullstendige banenavnet sammen med stasjonsnavnet;</li><li>% ~ d - vis disknavn;</li><li>% ~ p - vis bare banen;</li><li>% ~ n - velg bare filnavnet fra parameteren;</li><li>% ~ x - behold bare utvidelsen;</li><li>% ~ s - konverter bane til kort navn representasjon;</li><li>% ~ a - trekk ut filattributter;</li><li>% ~ t - viser dato og klokkeslett for opprettelsen;</li><li>% ~ z - vis filstørrelsen;</li><li>% ~ $ PATH: - søker i katalogene som er oppført i <a href="https://qzoreteam.ru/no/net-prav-dlya-zapuska-trebuemogo-vida-klienta-zapusk-programmy-bez-prav/">miljøvariabel</a> PATH, og utvider parameteren til det første samsvarende fulle navnet funnet, eller returnerer en tom streng ved feil.</li> </ul><p><img src='https://i2.wp.com/syl.ru/misc/i/ai/324915/1862020.jpg' width="100%" loading=lazy loading=lazy></p><h2>Jokertegn</h2><p>Mange kommandoer godtar filnavnmønstre - tegn som samsvarer med en gruppe filnavn. Jokertegn inkluderer:</p><ul><li>* (stjerne) - angir en hvilken som helst sekvens av tegn;</li><li>? (spørsmålstegn) - erstatter ett (eller 0) tegn annet enn et punktum (.).</li> </ul><p>For eksempel, <a href="https://qzoreteam.ru/no/sortirovka-po-date-komanda-dir-spravka-po-komande-dir-i-ee/">dir kommando</a>* .txt lister txt-filer og dir ???.txt-lister <a href="https://qzoreteam.ru/no/the-main-formats-for-storing-text-documents-text-formats-and-text-file-editors/">tekstdokumenter</a> hvis navn ikke overstiger 3 bokstaver.</p><h2>Funksjoner</h2><p>I likhet med subrutiner emuleres de med call, setlocal, endlocal og etiketter. Følgende eksempel viser muligheten til å definere en variabel der resultatet er lagret i anropslinjen:</p><p>ring: si resultat = verden</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862022.jpg' width="100%" loading=lazy loading=lazy></p><h2>Beregninger</h2><p>I bat-filer kan du utføre enkle aritmetiske operasjoner med 32-bits heltall og biter ved å bruke kommandoen set / a. Maksimalt støttet antall er 2 ^ 31 - 1 = 2147483647, og minimum er - (2 ^ 31) = -2147483648. Syntaksen ligner på programmeringsspråket C. TIL <a href="https://qzoreteam.ru/no/jquery-umnozhenie-chisel-arifmeticheskie-operatory-v-javascript-kodirovka/">aritmetiske operatorer</a> inkluderer: *, /,%, +, -. I bat-filen skal % (resten av heltallsdivisjonen) angis som "%%".</p><p>Operatører med <a href="https://qzoreteam.ru/no/tablica-perevoda-chisel-iz-dvoichnoi-sistemy-v-vosmerichnuyu-perevod/">binære tall</a> tolke tallet som en 32-bits sekvens. Disse inkluderer: ~ (bitvis IKKE eller komplement), & (AND), | (ELLER), ^ (eksklusiv ELLER),<< (сдвиг влево), >> (skift til høyre). <a href="https://qzoreteam.ru/no/operatory-otnosheniya-i-logicheskie-operatory-peremennye-operacii/">Logisk operatør</a> fornektelse er! (Utropstegn). Den endrer 0 til 1 og en verdi som ikke er null til 0. Kombinasjonsoperatoren er (komma), som tillater <a href="https://qzoreteam.ru/no/kak-okruglit-chislo-v-bolshuyu-storonu-kak-okruglit-chislo-v-excel/">mer</a> operasjoner i ett sett kommando. De kombinerte tilordningsoperatorene + = og - = i uttrykkene a + = b og a- = og tilsvarer uttrykkene a = a + b og a = a-b. * =,% =, / =, & =, | =, ^ =, >> =,<<=. Приоритет операторов следующий:</p><p>(); %+-*/; >>, <<; &; ^; |; =, %=, *=, /=, +=, -=, &=, ^=, |=, <<=, >>=; ,</p><p>Bokstaver kan angis som desimal, heksadesimal (med innledende 0x) og oktal (med innledende null). For eksempel, sett / a n1 = 0xffff tildeler n1 en heksadesimal verdi.</p><h2>Eksterne kommandoer</h2><ul><li>Avslutt brukes til å avslutte DOS-konsollen eller (med / b-alternativet) bare gjeldende bat-fil eller subrutine.</li><li>Ipconfig er en klassisk konsollkommando som viser nettverksinformasjon. Den inkluderer MAC- og IP-adresser og subnettmasker.</li><li>Ping pinger en IP-adresse ved å sende datapakker til den for å estimere avstanden og latens (respons). Brukes også til å sette en pause. For eksempel stopper ping 127.0.01 -n 6 kjøring av kode i 5 sekunder.</li> </ul><p>Bat-kommandobiblioteket er enormt. Heldigvis er det mange sider på nettet som viser dem alle sammen med batchskriptvariabler.</p><p><img src='https://i0.wp.com/syl.ru/misc/i/ai/324915/1862017.jpg' width="100%" loading=lazy loading=lazy></p><h2>Trinn 3: skrive og kjøre bat-filen</h2><p>Følgende skript vil i stor grad forenkle din daglige nettaktivitet. Hva om du umiddelbart vil åpne alle favorittnyhetssidene dine? Siden skriptene bruker konsollkommandoer, kan du lage et skript som åpner hver nyhetsfeed i et enkelt nettleservindu.</p><p>Deretter bør du gjenta prosessen med å lage en bat-fil, og starter med et tomt tekstdokument. For å gjøre dette, høyreklikk på en tom plass i en mappe og velg "Ny", og deretter - "Tekstdokument". Etter å ha åpnet filen, må du skrive inn følgende skript, som starter de viktigste russiskspråklige mediene som er tilgjengelige på Internett:</p><p>start "" http://fb.ru</p><p>start "" http://www.novayagazeta.ru</p><p>start "" http://echo.msk.ru</p><p>start "" http://www.kommersant.ru</p><p>start "" http://www.ng.ru</p><p>start "" http://meduza.io</p><p>start "" https://news.google.com/news/?ned=ru_ru&hl=ru</p><p>Dette skriptet inneholder start-“”-kommandoer som åpner flere faner. Du kan erstatte de foreslåtte koblingene med andre etter eget valg. Etter å ha skrevet inn skriptet, gå til editorens meny "Fil", og deretter til "Lagre som ..." og skriv et dokument med filtypen .bat, endre parameteren "Filtype" til "Alle filer" (*. * ).</p><p>Etter å ha lagret, for å kjøre skriptet, dobbeltklikker du på det. Nettsidene vil begynne å laste umiddelbart. Du kan eventuelt plassere denne filen på skrivebordet. Dette vil gi deg umiddelbar tilgang til alle favorittsidene dine.</p><h2>Arrangør</h2><p>Hvis du laster opp flere filer om dagen, vil snart hundrevis av dem samle seg i nedlastingsmappen. Du kan lage et skript som vil sortere dem etter type. Det er nok å plassere .bat-filen med programmet i en mappe med uorganiserte data og dobbeltklikke for å kjøre:</p><p>rem Hver fil i mappen</p><p>for %% a in (". \ *") do (</p><p>rem sjekk for utvidelse og ikke tilhører dette skriptet</p><p>if "%% ~ xa" NEQ "" if "%% ~ dpxa" NEQ "% ~ dpx0" (</p><p>rem sjekk for eksistensen av en mappe for hver utvidelse, og hvis den ikke eksisterer, opprett</p><p>hvis ikke eksisterer "%% ~ xa" mkdir "%% ~ xa"</p><p>flytt filen til mappen</p><p>flytt "%% a" "%% ~ dpa %% ~ xa \"</p><p>Som et resultat blir filene i katalogen "Nedlastinger" sortert i mapper, hvis navn tilsvarer utvidelsen deres. Det er så enkelt. Dette batchskriptet fungerer med alle typer data, det være seg dokument, video eller lyd. Selv om PC-en ikke støtter dem, vil skriptet fortsatt lage en mappe med riktig etikett. Hvis det allerede er en JPG- eller PNG-katalog, vil programmet ganske enkelt flytte filene med denne utvidelsen dit.</p><p>Dette er en enkel demonstrasjon av hva batch-skript er i stand til. Enten det er å organisere filer, åpne flere nettsider, gi flere navn eller lage kopier av viktige dokumenter for en enkel oppgave, kan et batch-skript hjelpe deg å få den kjedelige jobben gjort med et par klikk.</p> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy loading=lazy>");</script> </div> <div class="clear"></div> </div> </article> <div class='yarpp-related'> <section id="related_posts"> <div class="block-head"> <span>Mer informasjon om emnet</span> <div class="stripe-line"></div> </div> <div class="post-listing"> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/6d530784f99ff60ef54e6ea282b18c93.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Sporing av pakker etter sporingsnummer" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/no/sweden-post---nacionalnaya-pochta-shvecii-otslezhivanie-posylok-po/">Sporing av pakker etter sporingsnummer</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/6e93681d4b4c58554ca85e500973548e.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Foreldrekontroll-apper for Android" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/no/roditelskii-kontrol-na-android-s-zashchitoi-udaleniya-prilozheniya-dlya/">Foreldrekontroll-apper for Android</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/0229028f98d687355052b922043805c5.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Hvilket fotoredigeringsprogram for Android er best og hvilket kan lastes ned gratis og lovlig?" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/no/luchshie-fotoredaktory-makiyazh-na-android-kakoi-fotoredaktor-dlya-android-luchshe/">Hvilket fotoredigeringsprogram for Android er best og hvilket kan lastes ned gratis og lovlig?</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/07a965cde5d8c692b50aa680350a3457.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Beste gratis bilderedigerere for datamaskin" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/no/skachat-prilozhenie-dlya-fotografii-luchshie-besplatnye-fotoredaktory-dlya-kompyutera/">Beste gratis bilderedigerere for datamaskin</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/f44aa07171ae4480896e118e30c44254.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Grafiske programmer for Android Vårt Android Market er ditt riktige valg" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/no/luchshie-fotoredaktory-dlya-android-graficheskie-programmy-dlya-android-nash-android/">Grafiske programmer for Android Vårt Android Market er ditt riktige valg</a></div> <div class="related-item"> <div class="post-thumbnail tie-appear replacemy" data="post_7839"> <img width="195" height="110" src="/uploads/d5a002118d59b07a11ab8355dde6f904.jpg" class="attachment-tie-related size-tie-related wp-post-image" alt="Dataassistert tjeneste" / loading=lazy loading=lazy></div> <a class="post_7839" href="https://qzoreteam.ru/no/programma-sony-xperia-z3-svyaz-s-kompyuterom-obsluzhivanie-s-pomoshchyu/">Dataassistert tjeneste</a></div> </div> </section> </div> <div id="comments"> <ol class="commentlist"> <div class='rreekk' rel='15'> <div id="smartrotator_ad_4" onclick="yaCounter40492595.reachGoal ('tizercommentbefore1'); return true;"></div> </div> </ol> <div class="clear"></div> <div id="respond" class="comment-respond"> </div> </div> </div> <aside id="sidebar"> <div class="theiaStickySidebar"> <div class="execphpwidget"> <div id="text-4" class="widget widget_text"> <div class="widget-top"> <span>Nyttig</span> <div class="stripe-line"></div> </div> <div class="widget-container"> <div class="textwidget"> <style> .wpp-list li img { -webkit-border-radius: 65px; -moz-border-radius: 65px; border-radius: 65px; } .wpp-list li .post-views { display: block; margin-left: 70px; color: #828283; font-size: 12px; } .wpp-list li .post-views i { font-size: 13px; } .wpp-list li { line-height: 22px !important; } .replacemy { cursor: pointer; } } </style> <ul class="wpp-list"> <li> <div class="replacemy"><img src="/uploads/af72807776c7ef644bcaf87f6872025a.jpg" width="65" height="65" title="Vårblomster levende bakgrunnsbilde for Android" alt="Vårblomster levende bakgrunnsbilde for Android" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/no/oboi-na-telefon-android-vesna-vertikalnye-vesennie-cvety/" class=""><br>Vårblomster levende bakgrunnsbilde for Android</a></li> <li> <div class="replacemy"><img src="/uploads/577c7b81c2712c7e92533d8fc2ddb5c0.jpg" width="65" height="65" title=""Barnemodus" i Xiaomi: hvordan komme ut av det For de minste - blokkering i applikasjonen" alt=""Barnemodus" i Xiaomi: hvordan komme ut av det For de minste - blokkering i applikasjonen" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/no/poleznyi-rezhim-dlya-detei-i-ih-roditelei-detskii-rezhim-v-syaomi-kak-iz-nego-vyiti/" class=""><br>"Barnemodus" i Xiaomi: hvordan komme ut av det For de minste - blokkering i applikasjonen</a></li> <li> <div class="replacemy"><img src="/uploads/e1a8b83e4f57cc5e203a15d1f576e3ed.jpg" width="65" height="65" title="Vårblomster levende bakgrunnsbilde for Android Last ned friske blomster på smarttelefonen din" alt="Vårblomster levende bakgrunnsbilde for Android Last ned friske blomster på smarttelefonen din" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/no/cvety-zhivye-oboi-vesennie-cvety-zhivye-oboi-dlya-android-skachat-na/" class=""><br>Vårblomster levende bakgrunnsbilde for Android Last ned friske blomster på smarttelefonen din</a></li> <li> <div class="replacemy"><img src="/uploads/1b31258831bd9344ce328a337a2da316.jpg" width="65" height="65" title="Last ned nyttår og jul levende bakgrunnsbilde for Android Animert bakgrunnsbilde for telefonen vinter" alt="Last ned nyttår og jul levende bakgrunnsbilde for Android Animert bakgrunnsbilde for telefonen vinter" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/no/skachat-novogodnie-zhivye-oboi-na-android-skachat-novogodnie-i-rozhdestvenskie-zhivye-oboi-dlya-android/" class=""><br>Last ned nyttår og jul levende bakgrunnsbilde for Android Animert bakgrunnsbilde for telefonen vinter</a></li> <li> <div class="replacemy"><img src="/uploads/874007be3148f9d1311c0172a91b2e77.jpg" width="65" height="65" title="Mint - nyheter fra vkontakte" alt="Mint - nyheter fra vkontakte" class="wpp-thumbnail wpp_cached_thumb wpp_featured" / loading=lazy loading=lazy></div><a href="https://qzoreteam.ru/no/kak-otkryt-izbrannoe-myata-na-drugom-ustroistve-myata---novosti-iz/" class=""><br>Mint - nyheter fra vkontakte</a></li> </ul> </div> </div> </div> </div> </div> <div> </div> </aside> <div class="clear"></div> </div> <footer id="theme-footer"> <div id="footer-widget-area" class="wide-narrow-2c"><div id="footer-first" class="footer-widgets-box"><div id="text-2" class="footer-widget widget_text"><div class="footer-widget-top"></div><div class="footer-widget-container"><div class="textwidget"> <p>Alt om moderne teknologi. Feil. Spill. Sammenbrudd. Teknikk. Internett <p></p> </div></div></div></div><div id="footer-second" class="footer-widgets-box"><div id="text-3" class="footer-widget widget_text"> <div class="footer-widget-top"></div> <div class="footer-widget-container"> <div class="textwidget"><a href="https://qzoreteam.ru/no/sitemap.xml">kart over nettstedet</a></div> </div> </div><div id="text-7" class="footer-widget widget_text"><div class="footer-widget-top"></div><div class="footer-widget-container"><div class="textwidget"><br> <a href="">Tilbakemelding</a> </div></div></div></div></div><div class="clear"></div> </footer> <div class="clear"></div> <div class="footer-bottom"> <div class="container"> <div class="alignright"></div> <div class="alignleft">© Copyright 2017, https://qzoreteam.ru</div> <div class="clear"></div> </div> </div> </div> </div> </div> <div id="topcontrol" class="fa fa-angle-up" title="Gå til toppen av siden"></div> <div id="fb-root"></div> <script type="text/javascript"> jQuery(function($) { $(document).on("click", ".pseudo-link", function() { window.open($(this).data("uri")); }); }); </script> <script type='text/javascript'> /* */ var tocplus = { "smooth_scroll": "1", "visibility_show": "\u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c", "visibility_hide": "\u0441\u043a\u0440\u044b\u0442\u044c", "width": "310px" }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/table-of-contents-plus/front.min.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/wp-polls/polls-js.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/wp-postratings/js/postratings-js.js'></script> <script type='text/javascript'> /* */ var tie = { "mobile_menu_active": "true", "mobile_menu_top": "", "lightbox_all": "", "lightbox_gallery": "", "woocommerce_lightbox": "", "lightbox_skin": "dark", "lightbox_thumb": "vertical", "lightbox_arrows": "true", "sticky_sidebar": "", "is_singular": "1", "SmothScroll": "true", "reading_indicator": "", "lang_no_results": "\u041d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c", "lang_results_found": "\u041d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b" }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/themes/pochk/js/tie-scripts.js'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/themes/pochk/js/ilightbox.packed.js'></script> <script type='text/javascript' src='/wp-includes/js/comment-reply.min.js'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js'></script> <script type='text/javascript'> /* */ var gglcptch_pre = { "messages": { "in_progress": "\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u043e\u0436\u0434\u0438\u0442\u0435\u0441\u044c \u043e\u043a\u043e\u043d\u0447\u0430\u043d\u0438\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 Google reCAPTCHA.", "timeout": "\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c Google reCAPTCHA. \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0412\u0430\u0448\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0441\u0435\u0442\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443." } }; /* */ </script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/google-captcha/js/pre-api-script.js'></script> <script type='text/javascript' data-cfasync="false" async="async" defer="defer" src='https://www.google.com/recaptcha/api.js?onload=gglcptch_onload_callback&render=explicit'></script> <script type='text/javascript' src='https://qzoreteam.ru/wp-content/plugins/google-captcha/js/script.js'></script> <script type="text/javascript" src="https://qzoreteam.ru/wp-content/themes/pochk/my/my.js"></script> <script type="text/javascript" src="https://qzoreteam.ru/wp-content/themes/pochk/my/etimer.js"></script> <script type="text/javascript"> <!-- var _acic={dataProvider:10};(function(){var e=document.createElement("script");e.type="text/javascript";e.async=true;e.src="https://www.acint.net/aci.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})() //--> </script><br> <br> </body> </html>