Ved hjelp av Batch Files, del 3: IF Command

March 9  by Eliza

Dette tipset fortsetter serien om bruk av batch-filer. Det er antydet at du (re) besøke de tidligere tips slik at vi kan fortsette der vi slapp. Så langt vi har dekket følgende kommandoer: DIR, REM, ECHO, FINN, tid og TIMEOUT. Vi har også brukt følgende operatører: utgang til fil (>), merknad (: :), uten ekko (@), pipe (|), og sette sammen (&). Til slutt, vet vi at vi bruker parametere som sendes til en batch-fil via kombinasjonene% 1,% 2,% 3, etc.

Dette tipset vil fokusere på kommandoer som er relatert til å utføre betinget behandling i en batch-fil. Disse inkluderer IF, VALG, GOTO, og den spesielle syntaksen ": label".

Jeg har en veldig hendig batch fil som heter Do.bat. Det er litt mer enn en "wrapper" som kjører programmer uavhengig av hvor disse programmene bor. Så, for eksempel, hvis jeg ønsker å kjøre programmet som heter Prog1.exe Jeg ville bare skrive

C: \ Bat> DO PROG1

Hvis jeg ønsket å kjøre Prog2.exe jeg ville skrive

C: \ Bat> DO PROG2

Det fine med Do.bat er at når jeg laget det, gikk jeg ned i plasseringen av alle programmene som jeg vil den skal arbeide med. Så jeg ikke trenger å huske, for eksempel at Prog1.exe bor på "C: \ Programmer \ My programmer \ Prog1.exe" og at Prog2.exe bor på "D: \ Utilities \ Barry \ Prog2.exe" . Pluss, jeg aldri trenger å skrive de lange banenavn igjen.

Min Do.bat fil ser slik ut:

ECHO OFF
GOTO% 1
: PROG1
"C: \ Programmer \ My programmer \ Prog1.exe"
GOTO Ferdig

: PROG2
"D: \ Utilities \ Barry \ Prog2.exe"
GOTO Ferdig
: Ferdig

Den første linjen i filen sikrer at de andre linjene vil ikke bli vist. Dette etterfølges av GOTO linje, som tar som en parameter navnet på den etikett som styrer skal overføres til. Og det så skjer at denne etiketten er også den parameteren som ble sendt til Do.bat til å begynne med. Så når du påberope Do.bat og passere "PROG1" som parameter, gjør .bat fil en GOTO til en etikett som heter ": PROG1" (disse er ikke store og små bokstaver). Utførelse følger sekvensielt fra topp til bunn, så den neste kommandoen som skal utføres er den som påkaller Prog1.exe. Etter dette programmet er ferdig, fortsetter bat fil ved å kjøre "GOTO Done" kommandoen. Den ": Ferdig" etiketten er den siste linje av filen, så når den når dette punktet, de bat fil utganger. (Det er en EXIT kommando, men hvis vi skulle gjennomføre det, ville det opphøre ikke bare den .bat fil, men også hele CMD sesjon, som sannsynligvis ikke er det du ønsker å gjøre.)

Du kan alternativt bruke CHOICE kommando og kanskje lage en enkel meny å velge hva programmet til å kjøre. I dette tilfellet kan jeg lage en fil som heter Choice.bat som ville se slik ut:

ECHO OFF
ECHO Velg en å kjøre PROG1
ECHO Velg 2 for å kjøre PROG2
ECHO Velg Q for å avslutte
VALG / C 12Q / T 10 / DQ
GOTO% ERRORLEVEL%
: 3
ECHO Avslutte
GOTO Ferdig
2
"D: \ Utilities \ Barry \ Prog2.exe"
GOTO Ferdig
1
"C: \ Programmer \ My programmer \ Prog1.exe"
GOTO Ferdig
: Ferdig

Valget kommandoen gir brukeren med en melding om å angi en 1, 2 eller Q (som standard, det er ikke store og små bokstaver). Andre tegn blir ignorert. Den / T-bryteren sier til timeout i 10 sekunder, til hvilken tid prosedyren vil oppføre seg som om Q-alternativet ble valgt (/ D Q sier Standard alternativet er Q). Etter CHOICE kommandoen utfører, variabelen% ERRORLEVEL% satt til ordens verdi av alternativet som er valgt. Så hvis brukeren har valgt en,% ERRORLEVEL% er satt til 1; dersom den brukervalgte 2,% ERRORLEVEL% settes til 2; og hvis brukeren har valgt Q, blir% ERRORLEVEL% satt til 3. Vi deretter GOTO etiketten indikert av% ERRORLEVEL% og utføre den forespurte handlingen.

Dette tipset (13185) gjelder for Windows 7 og 8.