Indholdsfortegnelse:

Batchfiler: Nogle grundlæggende ..: 8 trin
Batchfiler: Nogle grundlæggende ..: 8 trin

Video: Batchfiler: Nogle grundlæggende ..: 8 trin

Video: Batchfiler: Nogle grundlæggende ..: 8 trin
Video: Batchfilstruktur og indstillingsmetode 2024, Juni
Anonim
Batchfiler: Nogle grundlæggende…
Batchfiler: Nogle grundlæggende…

Denne instruktør lærer dig nogle grundlæggende principper for at skrive batchfiler og viser dig, hvordan du opretter et gættespil med et par vendinger, bare for at holde tingene interessante …

Jeg har lært de fleste af mine kommandoprompt -færdigheder og al min batchskrivning fra internettet generelt og især Instuctables. Jeg vil gerne takke Instructables -bruger Neodudeman for hans flotte instruktioner om batchskrivning. Tak!

Trin 1: Hvad er en batchfil?

Hvad er en batchfil?
Hvad er en batchfil?

Nå, de fleste af mine læsere ved sikkert allerede, hvad en batchfil er, men bare i tilfælde….

En batchfil er simpelthen en samling (batch) af MSDOS -kommandoer, der udføres sekventielt, når du kører batchfilen. Batchfiler starter som.txt -filer i notesblok og bliver eksekverbare filer, når du gemmer dem som noget med en.bat -udvidelse. Så dybest set er alt hvad du gør, at skrive en fil i Notesblok og derefter gemme den som f.eks. "Instructable.bat". Når.bat er placeret i slutningen af filnavnet, vil en dejlig, ny fil dukke op, navngivet hvad du end har navngivet den, med et flot ikon, der ser ud på gearet. Okay, nu hvor vi ved, hvad disse batchfiler er, lad os komme til at skrive!

Trin 2: Grundlæggende kommandoer

Grundlæggende kommandoer
Grundlæggende kommandoer
Grundlæggende kommandoer
Grundlæggende kommandoer
Grundlæggende kommandoer
Grundlæggende kommandoer
Grundlæggende kommandoer
Grundlæggende kommandoer

Okay, du bliver nødt til at lære et par kommandoer. Så åbn først kommandoprompten MSDOS. Åbn startvinduet, klik på kør, skriv "cmd.exe", og klik derefter på run. Okay. Først skal vi se på variabler. Variabler er tal, ord eller andre ting, der (lidt åbenlyst) varierer. Kommandoprompten har en variabel funktion. Det har nogle variabler, der allerede er indstillet, f.eks. TID, DATO og et par andre. De fleste variabler kan du dog selv indstille. Klik på vinduet Kommandoprompt, og skriv: SET variable = randomIt spiller egentlig ingen rolle om du sætter store "SET" eller ej, men jeg kan godt lide at kapitalisere alle mine kommandoer, især når du skriver batchfiler. Det gør det bare lettere at fortælle, hvad du laver. Tryk nu på enter. Godt for dig! Du har angivet din første variabel! Men hvad kan vi gøre ved det? hvem bekymrer sig om alt vi kan gøre er at indstille variablen rigtigt? Nå, som det viser sig, kan vi gøre meget mere end det, men lad os først prøve at få computeren til at fortælle os, hvad variablen er indstillet til. Okay, for at få computeren til at læse værdien af en variabel, skriver vi navnet på variablen, i dette tilfælde "variabel" og sætter navnet inde i %mærker, sådan: %variable %. Skriv den, og tryk på enter:%variable%Underlig fejl, hva '? Computeren sagde "" variabel "genkendes ikke som en intern eller ekstern kommando, et operativt program eller en batchfil." Så hvorfor gav den den fejl? Godt, grundlæggende gav det den fejl, fordi kommandoprompten behandler værdien af denne variabel, som om du skrev den i dig selv. Så da du skrev %variable %, troede computeren, at du sagde, at den skulle udføre kommandoen "tilfældig". Det er klart, at vi har brug for noget andet for at se værdien af vores variabel. Det er her ECHO -kommandoen kommer ind. ECHO -kommandoen fortæller simpelthen kommandoprompten om at ekko eller sige, hvad du end skrev efter ECHO. Så hvis vi skriver ECHO -kommandoen før vores variabel, bør vi få det, vi ønsker: ECHO %variable %Der! Nu har vi fået, hvad vi vil! Computeren udskriver "tilfældigt". Det var naturligvis den værdi, vi skrev for vores variabel, så det er det resultat, vi ønskede. I det næste trin lærer vi mere om variabler, og hvordan vi kan bruge dem.

Trin 3: Brug af SET -kommandoen og variablerne

Brug af SET -kommandoen og variablerne
Brug af SET -kommandoen og variablerne
Brug af SET -kommandoen og variablerne
Brug af SET -kommandoen og variablerne

Okay, nu hvor vi ved, hvad variabler er, hvad kan vi ellers gøre med dem? Nå, vi kan lave matematik, vi kan bruge dem som betingelser for at skrive programmer og batchfiler, vi kan udføre grundlæggende regning, vi kan udføre kommandoer og meget mere. Vi vil ikke gå ind på alt, hvad du kan gøre med variabler, men vi vil diskutere nogle vigtige aspekter af variabelfunktionen. For det første producerer SET -kommandoen i sig selv kun strengvariabler. Det betyder, at det ikke tilføjer eller laver anden matematik. Hvis du skulle fortælle computeren at tilføje 1 til en variabel med værdien 1, ville det give dig værdien 1+1. Hvis vi vil have det til faktisk at tilføje de to tal, skal vi placere et "/a" efter SET -kommandoen. Derfor skriver vi: SET /a varible = (værdi) Antag nu, at vi vil sætte en variabel i vores batchfil, som brugeren vil levere. Vi vil måske gøre dette, hvis vi beregner værdier efter en formel, eller i vores tilfælde, hvis vi vil have brugeren til at gætte et tal, som computeren har fundet på. For at generere en bruger specificeret variabel tilføjer vi a /p efter SET -kommandoen, og vi forlader området efter = blank: SET /p variabel = Der går du! En bruger specificeret variabel! Hvis vi skulle lægge denne linje i en batchfil, kørte batchen, indtil den nåede denne linje, og derefter ville den vente på brugerinput, før den fortsatte. Den anden fede ting ved /p er, at den fuldstændig negerer /a. Når vi inkluderer a /p, kan vi bare udelade /a. Den næste ting, vi lærer om det, producerer tilfældige variabler. Hvis vi vil have computeren til at vælge et tilfældigt tal for en variabel, skriver vi simpelthen kommandoen SET efterfulgt af variablen og sætter derefter variablen til %RANDOM %. Igen behøver det ikke at være kapital, men jeg kan godt lide at gøre det alligevel. Så vi skriver: SET /a variabel =%RANDOM%Det er naturligvis ikke en bruger specificeret variabel, så vi inkluderer /a. Fedt nok! Så nu ved vi, hvordan man producerer et tilfældigt tal! Men hvor tilfældigt er det? Nå, det viser sig, at computeren vælger et tal mellem 0 og et sted omkring 37.000. Jeg er ikke sikker på, hvad det nøjagtige tal er. Men hvad nu hvis vi vil have et mindre antal? Antag, som i denne Instructable, vi vil have et håndterbart tal for noget som et gætspil? Nå, det er her IF -kommandoen kommer ind….

Trin 4: IF- og GOTO -kommandoerne. Magt i Batchforfatterens hænder

IF- og GOTO -kommandoerne. Magt i hænderne på batchforfatteren
IF- og GOTO -kommandoerne. Magt i hænderne på batchforfatteren

Så vi vil producere et håndterbart antal. Lad os antage, at vi vil producere et tilfældigt tal mellem 1 og 20. Okay, det er let at sige, men RANDOM -værdien vælger et tal mellem 1 og 37.000. Det er det, vi skal bruge IF til. IF -kommandoen siger dybest set HVIS der sker noget, eller HVIS noget er lig med eller ikke er lig med en bestemt værdi, SÅ gør DETTE. Så hvis IF sætter betingede kommandoer. Vi vil producere et tal, der er mindre end tyve, men større end ét, vi starter naturligvis med at fortælle computeren at vælge et tilfældigt tal, men så skal vi kunne fortælle det at vælge et nyt nummer, hvis det nummer, det vælger, ikke passer til vores krav. Det er her GOTO -kommandoen kommer ind. GOTO fortæller simpelthen computeren at GÅ TIL en bestemt etiket i koden. Etiketter ser sådan ud:: pickAlle ord, der placeres efter et kolon, bliver en etiket, som vi kan få adgang til med GOTO -kommandoen. Så hvis vi vil gå til sektionen med kode med "pick" -mærket over det, skriver vi ganske enkelt: GOTO pickAlright, så lad os fortsætte med vores kodning. Vi har allerede fortalt computeren at vælge et tilfældigt tal, så vi har skrevet: SET /a answer =%RANDOM%Nu vil vi trække dette tal ned til et mindre område. Så vi påberåber IF -kommandoen. Sådan noget burde gøre tricket: IF % answer % GTR 20 GOTO pickThis fortæller computeren at GOTO pick HVIS svaret er større end 20. Vi kunne også sætte enhver af disse betingelser på den IF -kommando: EQU - EqualNEQ - Not EqualLSS - Less ThanGTR - Greater ThanLEQ - Less Than or Equal ToGEQ - Greater Than or Equal ToThus, med IF, GOTO, labels og disse forkortelser, kan vi manipulere vores batchfil, uanset hvilken måde vi vælger. Okay, så vi har vores tilfældige tal under tyve nu, og her er hvad vi har indtil videre:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, lad os sikre os, at computeren ikke gør det t vælg 0 for svaret.:pickSET /et svar =%RANDOM%IF%svar%GTR 20 GOTO pickIF $ svar%EQU 0 GOTO pickOkay! Nu har vi et brugbart nummer mellem 1 og 20. Lad os gå videre til kødet i Batch.

Trin 5: Kødet i vores spil

Kødet i vores spil
Kødet i vores spil

Okay, vi har vores tilfældige nummer. Vi vil også tælle, hvor mange gæt vores spiller gør, så vi sætter en anden variabel: SET /a guessnum = 0Det sætter geussnum -variablen til nul, og vi gav den parameteren /a, så vi kan tilføje til det hver gang brugeren gætter. Okay. Vi har et tilfældigt tal, og vi har sat antallet af gæt. Nu har vi brug for nogle instruktioner, og vi skal have nogle brugerinput til gætnummeret. Du burde forstå det meste nu, så jeg vil bare vise dig koden:: beginECHO Jeg tænker på et nummerECHO jeg tænker ….. SET /a GuessNum = 0 (Denne ECHOs disse to linjer og sætter antallet af gæt til 0): pickASET /a Svar =%RANDOM%IF%Svar%GTR 20 GOTO pickAIF%Svar%EQU 0 GOTO pickAECHO Jeg tænker på et tal mellem 1 og 20ECHO Gæt hvilket nummer jeg tænker af. (Dette afsnit sløjfer, indtil det SÆTTER vores tilfældige tal, og derefter ECHOs instruktionerne for vores spiller): Prøv igen /p Gæt = HVIS %Gæt %LSS %Svar %ECHO Mit nummer er højere. IF %Gæt %GTR %Svar % ECHO Mit nummer er lavere. IF%Gæt%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Prøv igen (Dette afsnit fortæller computeren at bede om brugerinput, og sløjfer derefter kontinuerligt, indtil brugeren vælger derefter går det til etiketten END): ENDECHO Du har ret! Svaret var %Svar %ECHO Det tog %GuessNum %Guesses. ECHO. PAUSECLSECHO Vil du spille igen? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain (Her er vores slutafsnit. Dette fortæller brugeren, hvor mange gæt de tog, og spørger derefter om de vil at spille igen. Bemærk, at vi også kan bruge EQU, GTR og LSS med bogstaver.) Okay! Hvis du simpelthen kopierede denne kode, ville du have et legitimt gættspil. Ikke rigtig fancy, men hey, det er bedre end de fleste mennesker kan gøre. Men vi vil tilføje et lille twist, bare for at gøre tingene interessante….

Trin 6: Twist

Twist
Twist
Twist
Twist
Twist
Twist

Nu har vi et fungerende spil lige nu, men vi vil gøre det lidt mere interessant. Hvad med at tilføje et incitament for vores spiller til at gætte det rigtige nummer? Hvad med at vi kan lide noget.. lukke computeren ned, hvis de ikke gætter på antallet? Det ville være ret fedt! Okay, nu tilføjer vi en lille kode for at foretage disse ændringer. Først vil vi tilføje en linje til den sektion af kode, vi mærket "prøv igen". Så find den sektion. Det ser sådan ud: RetrySET /p Gæt = HVIS%Gæt%LSS%Svar%ECHO Mit nummer er højere. IF%Gæt%GTR%Svar%ECHO Mit nummer er lavere. IF%Gæt%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO RetryOkay, vi kommer til at tilføje denne linje lige efter "ECHO". (Når vi sætter en periode efter ECHO, efterlader den en tom linje.) Her er den nye kode: IF %GuessNum %EQU 4 GOTO shutdownG Når vi tilføjer denne linje, ser afsnittet sådan ud:: Prøv igen /p Gæt = IF %gætte % LSS%Svar%ECHO Mit nummer er højere. IF%Gæt%GTR%Svar%ECHO Mit nummer er lavere. IF%Gæt%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 GOTO -lukningGGOTO Prøv igen Nu skulle det være ret indlysende, hvad dette gør. Den fortæller computeren, at hvis GuessNum EQUals 4, skal den gå til den sektion med koden mærket "shutdownG". Så hvad vil vi have, at denne lukningsafdeling skal sige? Nå, selvfølgelig skal det mærkes "shutdownG". Dernæst skal den lukke computeren ned. Kommandoen til lukning er "SHUTDOWN -s". Dette lukker computeren ned, men vi vil tilføje nogle til kommandoen. Vi tilføjer en "-f". Det vil tvinge alle programmer til at lukke, og vi tilføjer en "-t 60". Det vil fortælle computeren at vise et vindue og vente tres sekunder med at lukke. Vi tilføjer også "-c" besked her "". som viser en meddelelse i vinduet Lukning. Efter vores nedlukningskommando tager vi fat på den samme kode, som vi har ovenfor, den kode, der gør det muligt for vores spiller at vælge numre, og giver dem feedback. Så vores lukningskode ser nu sådan ud:: shutdownGSHUTDOWN -s -f -t 60 -c "Bliv ved med at gætte! Hvis du ikke gætter det rigtige nummer, lukker computeren ned!": shutdownG1SET /p Gæt = HVIS %Gæt %LSS %Svar %ECHO Mit nummer er højere. IF %Gæt %GTR %Svar %ECHO Mit nummer er lavere. IF%Gæt%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO nedlukningG1 Nu har vi indstillet computeren til SHUTDOWN, og viser en meddelelse, men vi skal også fortælle computer for at stoppe nedlukningen, hvis den er blevet startet. Så vi tilføjer det til afsnittet med kodning mærket "slut". Afsnittet ser sådan ud:: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Du har ret! Svaret var %Svar %ECHO Det tog %GuessNum %Guesses. ECHO. PAUSECLSECHO Vil du spille igen? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagainVi vil stoppe lukningen, og vi gør det med kommandoen "SHUTDOWN -a". Så vi tilføjer en linje, der går sådan her: IF % GuessNum % GTR 4 SHUTDOWN -aVi tilføjer denne kommando lige efter etiketten, og det fortæller computeren kun at køre SHUTDOWN -a -kommandoen, hvis spilleren har lavede mere end fire gæt, og startede en nedlukning. Okay! du skal have dit spil færdigt nu! VI sørger for, at der ikke er fejl i det næste trin.

Trin 7: Sidste trin

Sidste trin
Sidste trin

Okay, nu hvis du slog al den kodning sammen, så har du noget, der ligner sådan:: beginECHO Jeg kommer til at tænke på et nummerECHO, jeg tænker….. SET /a GuessNum = 0: pickASET / a Svar =%RANDOM%IF%Svar%GTR 20 GOTO pickAIF%Svar%EQU 0 GOTO pickAECHO Jeg tænker på et tal mellem 1 og 20ECHO Gæt hvilket nummer jeg tænker på.: Prøv igen /p Gæt = IF%gæt %LSS%Svar%ECHO Mit nummer er højere. IF%Gæt%GTR%Svar%ECHO Mit nummer er lavere. IF%Gæt%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% EQU 4 GOTO shutdownGGOTO Prøv igen: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Du har ret! Svaret var %Svar %ECHO Det tog %GuessNum %Guesses. ECHO. PAUSECLSECHO Vil du spille igen? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain: closeECHO Tak fordi du spillede! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Bliv ved med at gætte ! Hvis du ikke gætter det rigtige nummer, lukker computeren ned! ": ShutdownG1SET /p Gæt = HVIS % Gæt % LSS % Svar % ECHO Mit nummer er højere. IF % Gæt % GTR % Svar % ECHO Mit nummer er Lower. IF%Guess%==%Svar%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1Det burde være alt, hvad vi har brug for? Så fortsæt og gem den notesblok.txt -fil, du har som GuessGame.bat. Faktisk kan du navngive det, hvad du vil, så længe du sætter.bat for enden. Okay, så klik på ikonet og kør programmet! Virkede det? Godt sorta. Det gør nogle mærkelige ting, ikke? Det viser sig, at når vi skriver en batch som denne, ECHO kommandoprompten hver kommando, vi giver den, ligesom hvis vi skrev dem i kommandoprompten. Så spillet fungerer, men det er lidt rodet og uklart. Kan vi gøre noget ved dette? Jep! Alt vi skal gøre er at skrive denne linje helt i begyndelsen af vores kode: @ECHO OFFT Dette fortæller computeren at slukke for ECHO. Og @ -tegnet ved tiggeriet fortæller det at slukke for ECHO for hver kommando. Hvis vi forlod det @ ude, ville det kun slukke for ECHO for en kommando.

Trin 8: Alt færdigt

Tillykke! Du har lige skrevet et Batch -filspil. Ret simpelt er det ikke? Hvis du kan klare dette, kan du finde ud af, hvordan du gør en hel del med Batch -filer. Bare leg med det, lav nogle eksperimenter. Bare hvis du ikke kunne få noget til at fungere, eller hvis jeg udelod noget i al den kodning, giver jeg dig filen her.

Anbefalede: