Kazalo:

Paketne datoteke: nekaj osnov ..: 8 korakov
Paketne datoteke: nekaj osnov ..: 8 korakov

Video: Paketne datoteke: nekaj osnov ..: 8 korakov

Video: Paketne datoteke: nekaj osnov ..: 8 korakov
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, November
Anonim
Paketne datoteke: nekaj osnov …
Paketne datoteke: nekaj osnov …

Ta Instructable vas bo naučil nekaj osnov pisanja paketnih datotek in vam pokazal, kako z nekaj zvitki ustvariti igro ugibanja števil, samo da bodo stvari zanimive …

Večino mojih veščin ukaznega poziva in vsega serijskega pisanja sem se naučil iz interneta na splošno in zlasti Instuctables. Rad bi se zahvalil uporabniku Instructables Neodudemanu za njegove odlične Instructables o paketnem pisanju. Hvala!

1. korak: Kaj je paketna datoteka?

Kaj je paketna datoteka?
Kaj je paketna datoteka?

No, večina mojih bralcev verjetno že ve, kaj je paketna datoteka, toda za vsak slučaj …

Paketna datoteka je preprosto zbirka (serija) ukazov MSDOS, ki se zaporedno izvajajo, ko zaženete paketno datoteko. Paketne datoteke se začnejo kot datoteke.txt v beležnici in postanejo izvršljive datoteke, ko jih shranite kot nekaj z razširitvijo.bat. V bistvu vse, kar naredite, je, da datoteko napišete v Beležnico in jo nato shranite kot, recimo, "instructable.bat". Ko se.bat postavi na konec imena datoteke, se pojavi lepa, nova datoteka, poimenovana tako, kot ste jo poimenovali, z lepo ikono zobnika. V redu, zdaj ko vemo, kaj so te paketne datoteke, pojdimo na pisanje!

2. korak: Osnovni ukazi

Osnovni ukazi
Osnovni ukazi
Osnovni ukazi
Osnovni ukazi
Osnovni ukazi
Osnovni ukazi
Osnovni ukazi
Osnovni ukazi

V redu, naučiti se boš moral nekaj ukazov. Zato najprej odprite ukazni poziv MSDOS. Odprite okno za zagon, kliknite Run, vnesite "cmd.exe" in kliknite Run. Najprej bomo pogledali spremenljivke. Spremenljivke so številke, besede ali druge stvari, ki se (nekoliko očitno) razlikujejo. Ukazni poziv ima spremenljivo funkcijo. Ima nekaj spremenljivk, ki so že nastavljene, na primer TIME, DATE in nekaj drugih. Večino spremenljivk pa lahko nastavite sami. Kliknite na okno ukaznega poziva in vnesite: spremenljivka SET = naključno Res ni pomembno, ali je "SET" napisano z veliko začetnico ali ne, vendar rad uglasim vse svoje ukaze, zlasti pri pisanju paketnih datotek. Tako je lažje povedati, kaj počnete. Zdaj pritisnite enter. Dobro zate! Nastavili ste svojo prvo spremenljivko! Toda kaj lahko storimo z njim? koga briga, če lahko le spremenljivko nastavimo? No, kot kaže, lahko naredimo veliko več kot to, najprej pa poskusimo računalnik povedati, za kaj je spremenljivka nastavljena. V redu, da bi računalnik prebral vrednost spremenljivke, vnesemo ime spremenljivke, v tem primeru "spremenljivka" in ime vstavimo v oznako %, na primer: %spremenljivka %. Pojdi naprej in vpiši to ter pritisni enter:%spremenljivka%Čudna napaka, kaj? Računalnik je rekel, da "spremenljivka" ni prepoznana kot notranji ali zunanji ukaz, delujoč program ali paketna datoteka. " Zakaj je torej naredil to napako? No, v bistvu je to povzročilo napako, ker ukazni poziv vrednost te spremenljivke obravnava tako, kot če bi jo vnesli sami. Ko ste torej vnesli %variable %, je računalnik mislil, da mu govorite, naj izvede ukaz "naključno". Očitno potrebujemo nekaj drugega, da vidimo vrednost naše spremenljivke. Tukaj pride ukaz ECHO. Ukaz ECHO preprosto pove ukazni poziv, naj odmeva ali pove, kar ste vnesli za ECHO. Če torej pred našo spremenljivko vnesemo ukaz ECHO, bi morali dobiti tisto, kar želimo: ECHO %spremenljivka %Tam! Zdaj imamo, kar želimo! Računalnik natisne "naključno". Očitno je bila to vrednost, ki smo jo vnesli za našo spremenljivko, zato je rezultat, ki smo ga želeli. V naslednjem koraku bomo izvedeli več o spremenljivkah in kako jih lahko uporabimo.

Korak: Uporaba ukaza SET in spremenljivk

Uporaba ukaza SET in spremenljivk
Uporaba ukaza SET in spremenljivk
Uporaba ukaza SET in spremenljivk
Uporaba ukaza SET in spremenljivk

V redu, zdaj, ko vemo, kaj so spremenljivke, kaj lahko še storimo z njimi? No, lahko naredimo matematiko, lahko jih uporabimo kot pogoje za pisanje programov in paketnih datotek, lahko izvajamo osnovno aritmetiko, lahko izvajamo ukaze in še veliko več. Ne bomo se poglabljali v vse, kar lahko storite s spremenljivkami, vendar bomo razpravljali o nekaterih pomembnih vidikih delovanja spremenljivke. Prvič, ukaz SET sam proizvaja le spremenljivke niza. To pomeni, da ne bo dodajal ali naredil nobene druge matematike. Če bi računalniku rekli, naj spremenljivki z vrednostjo 1 doda 1, bi dobili vrednost 1+1. Če želimo, da dejansko doda dve številki, moramo za ukaz SET postaviti "/a". Zato vtipkamo: SET /a variable = (value) Zdaj pa recimo, da želimo v našo paketno datoteko vnesti spremenljivko, ki jo bo dal uporabnik. Morda bi to želeli narediti, če bi izračunali vrednosti po formuli, ali pa v našem primeru, če želimo, da uporabnik ugiba številko, ki jo je računalnik prišel. Če želimo ustvariti spremenljivko, ki jo določi uporabnik, dodamo a /p po ukazu SET in pustimo območje po = prazno: SET /p spremenljivka = Tako je! Spremenljivka, ki jo določi uporabnik! Če bi to vrstico dali v paketno datoteko, bi se serija izvajala, dokler ne bi dosegla te vrstice, nato pa bi počakala na vnos uporabnika, preden nadaljuje. Druga kul stvar pri /p je, da popolnoma zanika /a. Ko vključimo a /p, lahko preprosto izpustimo /a. Naslednja stvar, ki jo bomo izvedeli o tem, kako proizvaja naključne spremenljivke. Če želimo, da računalnik za spremenljivko izbere naključno število, preprosto vnesemo ukaz SET, ki mu sledi spremenljivka in nato spremenljivko nastavimo na %RANDOM %. Še enkrat, ni nujno, da je kapital, vendar vseeno rad to počnem. Torej vnesemo: SET /a spremenljivka =%RANDOM%Očitno to ni spremenljivka, ki jo določi uporabnik, zato vključimo /a. Kul! Zdaj vemo, kako ustvariti naključno število! Toda kako naključno je? No, izkazalo se je, da računalnik izbere številko med 0 in nekje okoli 37 000. Nisem prepričan, kakšno je točno število. Kaj pa, če želimo manjše število? Recimo, kot v tem Instructableu želimo obvladljivo številko za nekaj podobnega ugibanju? No, tu pride ukaz IF …

4. korak: Ukazi IF in GOTO. Moč v rokah pisca serije

Ukazi IF in GOTO. Moč v rokah pisca serije
Ukazi IF in GOTO. Moč v rokah pisca serije

Zato želimo ustvariti obvladljivo število. Recimo, da želimo ustvariti naključno število med 1 in 20. V redu, to je enostavno reči, vendar vrednost RANDOM izbere številko med 1 in 37 000. Za to bomo uporabili IF. Ukaz IF v bistvu pravi, ČE se kaj zgodi, ali ČE je nekaj enako ali pa ni enako določeni vrednosti, potem naredite TO. Torej, IF nastavi pogojne ukaze. Želimo ustvariti število, ki je manjše od dvajset, vendar večje od enega, očitno bomo začeli z računalnikom, da izbere naključno število, potem pa mu bomo morali povedati, da izbere novo številka, če izbrana številka ne ustreza našim zahtevam. Tam pride ukaz GOTO. GOTO preprosto pove računalniku, naj GRE NA določeno oznako v kodi. Oznake izgledajo tako:: pickAny beseda, postavljena za dvopičje, postane oznaka, do katere lahko dostopamo z ukazom GOTO. Torej, če želimo iti v razdelek kode z oznako "pick" nad njim, preprosto vtipkamo: GOTO pickAlright, zato nadaljujmo s kodiranjem. Računalniku smo že povedali, naj izbere naključno število, zato smo vnesli: SET /a answer =%RANDOM%Zdaj želimo to številko potegniti navzdol na manjši razpon. Zato bomo priklicali ukaz IF. Nekaj takega bi moralo narediti trik: IF % answer % GTR 20 GOTO pickTo pove računalniku, da GOTO pick, če je odgovor GREATer than 20. Na ta ukaz IF bi lahko postavili tudi katerega koli od teh pogojev: EQU - EqualNEQ - Not EqualLSS - Manj kot GTR - Večji kotLELEQ - Manj ali enak ToGEQ - Večji ali enak ToThus, z IF, GOTO, oznakami in temi okrajšavami lahko z našo paketno datoteko upravljamo na kakršen koli način. V redu, zdaj imamo naključno število manj kot dvajset in tukaj imamo do sedaj:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, poskrbimo, da računalnik ne t za odgovor izberite 0.:pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickIF $ answer%EQU 0 GOTO pickOkej! Zdaj imamo uporabno število med 1 in 20. Preidimo na meso serije.

5. korak: Meso naše igre

Meso naše igre
Meso naše igre

V redu, imamo naključno številko. Prav tako želimo šteti, koliko ugibanj naredi naš igralec, zato bomo nastavili drugo spremenljivko: SET /a guessnum = 0 S tem spremenljivko geussnum nastavimo na nič in smo ji dali parameter /a, zato bomo lahko dodali na to vsakič, ko uporabnik ugiba. Imamo naključno število in nastavili smo število ugibanj. Zdaj potrebujemo nekaj navodil in moramo imeti nekaj uporabniškega vnosa za ugibanje. Doslej bi morali razumeti večino tega, zato vam bom pokazal samo kodo:: beginECHO Pomislil bom na številko ECHO Mislim ….. SET /a GuessNum = 0 (Ta ECHO sta ti dve vrstici in nastavi število ugank na 0): pickASET /a Odgovor =%RANDOM%IF%Odgovor%GTR 20 GOTO pickAIF%Odgovor%EQU 0 GOTO pickAECHO Mislim na številko med 1 in 20ECHO Ugani, katero številko mislim (Ta razdelek se zvija, dokler ne nastavi NAŠEGA naključnega števila, nato pa ECHO sledi navodilom za našega predvajalnika): RetrySET /p Ugani = IF %Ugani %LSS %Odgovor %ECHO Moja številka je višja. IF %Ugani %GTR %Odgovor % ECHO Moja številka je nižja. IF%Ugani%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Poskusi znova (ta razdelek računalniku pove, naj zahteva vnos uporabnika, nato pa se neprekinjeno ponavlja, dokler uporabnik ne izbere pravilna številka. Nato gre na oznako END): ENDECHO Prav ste! Odgovor je bil %Answer %ECHO To je trajalo %GuessNum %Guesses. ECHO. PAUSECLSECHO Bi radi igrali znova? ECHO Y /N? SET /p play = IF %play %EQU y GOTO startIF %play %EQU n GOTO closeIF % play% GTR y GOTO playagainIFIF play% LSS y GOTO playagainIF% play% GTR n GOTO playagainIF% play% LSS n GOTO playagain (Tukaj je naš zadnji del. To pove uporabniku, koliko ugibov je vzel, nato pa vpraša, če bi rad Za ponovno predvajanje. Upoštevajte, da lahko uporabimo tudi EQU, GTR in LSS s črkami.) V redu! Če bi preprosto kopirali to kodo, bi imeli zakonito igro ugibanja. Ni res modno, ampak hej, bolje je, kot večina ljudi zmore. Dodali pa bomo malo zasuka, samo da bodo stvari zanimive …

6. korak: Twist

Twist
Twist
Twist
Twist
Twist
Twist

Zdaj imamo trenutno delujočo igro, vendar bi jo radi naredili nekoliko bolj zanimivo. Kako bi dodali spodbudo, da bi naš igralec uganil pravo številko? Kaj pa, če bi naredili nekaj takega, kot bi.. izklopili njihov računalnik, če ne uganijo številke? To bi bilo zelo kul! V redu, zdaj bomo za te spremembe dodali malo kode. Najprej bomo v vrstico kode, ki smo jo poimenovali »poskusi znova«, dodali vrstico. Torej poiščite ta razdelek. Izgleda tako:: RetrySET /p Ugani = IF%Ugani%LSS%Odgovor%ECHO Moja številka je višja. IF%Ugani%GTR%Odgovor%ECHO Moja številka je nižja. IF%Ugani%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Ponovi V redu, to vrstico bomo dodali takoj za "ECHO." (Ko postavimo piko po ECHO, pušča prazno vrstico.) Tu je nova koda: IF %GuessNum %EQU 4 GOTO zaustavitevG Ko dodamo to vrstico, je odsek videti takole: RetrySET /p Ugani = IF %Guess % LSS%Odgovor%ECHO Moja številka je višja. IF%Ugani%GTR%Odgovor%ECHO Moja številka je nižja. IF%Ugani%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 GOTO zaustavitevGGOTO RetryZdaj bi moralo biti precej očitno, kaj to počne. Računalniku sporoča, da mora GuessNum EQUals 4 iti v razdelek kode z oznako "shutdownG". Torej, kaj želimo povedati v tem odseku za zaustavitev? No, očitno mora biti označeno z "shutdownG". Nato mora računalnik izklopiti. Ukaz za zaustavitev je "SHUTDOWN -s". S tem bomo izklopili računalnik, vendar želimo ukazu dodati nekaj. Dodali bomo "-f". To bo prisililo vse programe, da se zaprejo, in dodali bomo "-t 60". To bo računalniku povedalo, da prikaže okno in počaka šestdeset sekund, da se zapre. Tukaj bomo dodali tudi sporočilo "-c" "". ki bo v oknu za zaustavitev prikazalo sporočilo. Po našem ukazu za zaustavitev se bomo lotili iste kode, ki jo imamo zgoraj, kode, ki igralcu omogoča, da izbere številke in jim posreduje povratne informacije. Tako je naša koda za zaustavitev zdaj videti takole: shutdownGSHUTDOWN -s -f -t 60 -c "Nadaljujte z ugibanjem! Če ne uganite prave številke, se bo računalnik ustavil!": shutdownG1SET /p Ugani = ČE %Ugani %LSS %Odgovor %ECHO Moja številka je višja. IF %Ugani %GTR %Odgovor %ECHO Moja številka je nižja. IF%Ugani%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO zaustavitev G1 Zdaj smo računalnik nastavili na SHUTDOWN in prikazali sporočilo, vendar moramo tudi povedati računalnik ustaviti izklop, če je bil sprožen. Tako bomo to dodali v razdelek kodiranja z oznako "konec". Ta razdelek izgleda takole: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Prav ste! Odgovor je bil %Answer %ECHO To je trajalo %GuessNum %Guesses. ECHO. PAUSECLSECHO Bi radi igrali spet? ECHO Y /N? SET /p play = IF %play %EQU y GOTO startIF %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Želimo ustaviti zaustavitev in to storimo z ukazom "SHUTDOWN -a". Dodali bomo tako vrstico: IF % GuessNum % GTR 4 SHUTDOWN -a Ta ukaz bomo dodali takoj za oznako, kar bo računalniku povedalo, naj zažene ukaz SHUTDOWN -a le, če ima predvajalnik naredil več kot štiri ugibanja in začel z zaustavitvijo. V redu! igro bi morali končati zdaj! V naslednjem koraku bomo poskrbeli, da ne bo hroščev.

7. korak: Zadnji koraki

Zadnji koraki
Zadnji koraki

V redu, zdaj, če združite vse to kodiranje, boste imeli nekaj, kar izgleda nekako tako: a Answer =%RANDOM%IF%Answer%GTR 20 GOTO pickAIF%Answer%EQU 0 GOTO pickAECHO Mislim na številko med 1 in 20ECHO Ugani, na katero številko mislim.: RetrySET /p Ugani = IF%Ugani %LSS%Odgovor%ECHO Moja številka je višja. IF%Ugani%GTR%Odgovor%ECHO Moja številka je nižja. IF%Ugani%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% EQU 4 GOTO zaustavitevGGOTO Poskusite znova: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Prav ste! Odgovor je bil %Answer %ECHO To je trajalo %GuessNum %Guesses. ECHO. PAUSECLSECHO Bi radi igrali spet? ECHO Y /N? SET /p play = IF %play %EQU y GOTO startIF %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 Hvala, ker ste igrali! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Ugibajte ! Če ne uganite prave številke, se bo računalnik ustavil! ": ShutdownG1SET /p Ugani = IF % Ugani % LSS % Odgovor % ECHO Moja številka je višja. IF % Ugani % GTR % Odgovor % ECHO Moja številka je Lower. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1To bi moralo biti vse, kar potrebujemo, kajne? Torej, shranite tisto datoteko beležnice.txt, ki jo imate kot GuessGame.bat. Pravzaprav ga lahko poimenujete, kot želite, če na koncu postavite.bat. V redu, zato kliknite ikono in zaženite program! Ali je delovalo? No nekako tako. Dela čudne stvari, kajne? Izkazalo se je, da ko zapišemo takšno serijo, ukazni poziv ECHO izvede vsak ukaz, ki ga podamo, tako kot če bi jih vnesli v ukazni poziv. Igra torej deluje, vendar je nekoliko neurejena in nejasna. Ali lahko glede tega kaj storimo? Ja! Vse, kar moramo storiti, je, da na začetku kode vtipkamo to vrstico: @ECHO OFFTo pove računalniku, naj izklopi ECHO. In znak @ pri prosjačenju mu pove, naj izklopi ECHO za vsak ukaz. Če bi izpustili to @, bi ECHO izklopili le za en ukaz.

8. korak: Vse končano

Čestitamo! Pravkar ste napisali paketno igro. Precej preprosto, kajne? Če lahko to obvladate, lahko ugotovite, kako precej storite s paketnimi datotekami. Samo igrajte se z njim, naredite nekaj poskusov. V primeru, da ne bi mogli kaj narediti, ali če bi pri vsem tem kodiranju kaj izpustil, vam bom dal datoteko tukaj.

Priporočena: