Turinys:

Paketiniai failai: kai kurie pagrindai ..: 8 žingsniai
Paketiniai failai: kai kurie pagrindai ..: 8 žingsniai

Video: Paketiniai failai: kai kurie pagrindai ..: 8 žingsniai

Video: Paketiniai failai: kai kurie pagrindai ..: 8 žingsniai
Video: High Density 2022 2024, Lapkritis
Anonim
Paketiniai failai: kai kurie pagrindai …
Paketiniai failai: kai kurie pagrindai …

Ši instrukcija išmokys jus kai kurių paketinių failų rašymo pagrindų ir parodys, kaip sukurti skaičių atspėjimo žaidimą su keliais posūkiais, kad viskas būtų įdomu …

Daugumą savo komandinės eilutės įgūdžių ir viso partijos rašymo išmokau iš interneto, o ypač - nepastatomų daiktų. Norėčiau padėkoti „Instructables“vartotojui Neodudemanui už puikias instrukcijas apie paketų rašymą. Dėkoju!

1 žingsnis: Kas yra paketinis failas?

Kas yra paketinis failas?
Kas yra paketinis failas?

Na, dauguma mano skaitytojų tikriausiai jau žino, kas yra paketinis failas, bet tik tuo atveju….

Paketinis failas yra tiesiog MSDOS komandų rinkinys (paketas), kurios paleidžiamos nuosekliai paleidžiant paketinį failą. Paketiniai failai užrašų knygelėje prasideda kaip.txt failai ir tampa vykdomaisiais failais, kai juos išsaugote kaip failą su plėtiniu.bat. Taigi iš esmės viskas, ką jūs darote, yra parašyti failą „Notepad“ir tada išsaugoti jį, pavyzdžiui, „instructable.bat“. Kai.bat bus padėtas failo pavadinimo pabaigoje, pasirodys gražus naujas failas, pavadintas bet kokiu pavadinimu, kurį pavadinote, ir graži, krumpliaračio išvaizdos piktograma. Gerai, dabar, kai žinome, kas yra šie paketiniai failai, pradėkime rašyti!

2 žingsnis: pagrindinės komandos

Pagrindinės komandos
Pagrindinės komandos
Pagrindinės komandos
Pagrindinės komandos
Pagrindinės komandos
Pagrindinės komandos
Pagrindinės komandos
Pagrindinės komandos

Gerai, jums reikės išmokti keletą komandų. Taigi pirmiausia atidarykite MSDOS komandų eilutę. Atidarykite pradžios langą, spustelėkite „Vykdyti“, įveskite „cmd.exe“ir spustelėkite „Vykdyti“. Gerai. Pirma, mes pažvelgsime į kintamuosius. Kintamieji yra skaičiai, žodžiai ar kiti dalykai, kurie (šiek tiek akivaizdžiai) skiriasi. Komandinė eilutė turi kintamą funkciją. Jame yra keletas kintamųjų, kurie jau nustatyti, pvz., TIME, DATE ir keletas kitų. Tačiau daugumą kintamųjų galite nustatyti patys. Spustelėkite komandų eilutės langą ir įveskite: SET kintamasis = atsitiktinis Tikrai nesvarbu, ar rašote didžiąsias raides „SET“, ar ne, bet man patinka rašyti visas savo komandas, ypač rašant paketinius failus. Tai tik leidžia lengviau pasakyti, ką darote. Dabar paspauskite „Enter“. Tau gerai! Jūs nustatėte savo pirmąjį kintamąjį! Bet ką mes galime su juo padaryti? kam tai rūpi, jei viskas, ką galime padaryti, yra teisingai nustatyti kintamąjį? Na, kaip paaiškėja, mes galime padaryti daug daugiau nei tai, bet pirmiausia pabandykime priversti kompiuterį mums pasakyti, koks kintamasis yra nustatytas. Gerai, norėdami, kad kompiuteris nuskaitytų kintamojo vertę, įvedame kintamojo pavadinimą, šiuo atveju „kintamąjį“, ir įdedame pavadinimą į %ženklų, kaip šis: %kintamasis %. Pirmyn ir įveskite tai, ir paspauskite „Enter“:%kintamasis%Keista klaida? Kompiuteris sakė, kad „„ kintamasis “nėra atpažįstamas kaip vidinė ar išorinė komanda, veikianti programa ar paketinis failas“. Tai kodėl davė tokią klaidą? Na, iš esmės ji davė tą klaidą, nes komandinė eilutė to kintamojo vertę traktuoja taip, tarsi ją įvestumėte patys. Taigi, kai įvedėte %variable %, kompiuteris manė, kad liepiate vykdyti komandą „atsitiktinis“. Akivaizdu, kad mums reikia kažko kito, kad pamatytume savo kintamojo vertę. Čia atsiranda ECHO komanda. ECHO komanda tiesiog liepia komandų eilutei pakartoti ar pasakyti viską, ką įvedėte po ECHO. Taigi, jei prieš kintamąjį įvedame komandą ECHO, turėtume gauti tai, ko norime: ECHO %kintamasis %Ten! Dabar mes turime tai, ko norime! Kompiuteris spausdina „atsitiktinai“. Akivaizdu, kad tokią vertę įvedėme savo kintamajam, todėl norime tokio rezultato. Kitame žingsnyje sužinosime daugiau apie kintamuosius ir kaip juos naudoti.

3 žingsnis: SET komandos ir kintamųjų naudojimas

Naudojant komandą SET ir kintamuosius
Naudojant komandą SET ir kintamuosius
Naudojant komandą SET ir kintamuosius
Naudojant komandą SET ir kintamuosius

Gerai, dabar žinodami, kas yra kintamieji, ką dar galime su jais padaryti? Na, mes galime daryti matematiką, galime jas naudoti kaip sąlygas programoms ir paketiniams failams rašyti, galime atlikti pagrindinę aritmetiką, galime vykdyti komandas ir dar daugiau. Mes nenagrinėsime visko, ką galite padaryti su kintamaisiais, tačiau aptarsime kai kuriuos svarbius kintamojo funkcijos aspektus. Pirma, komanda SET pati sukuria tik eilutės kintamuosius. Tai reiškia, kad jis nepridės ir neatliks jokios kitos matematikos. Jei nurodytumėte kompiuteriui pridėti 1 prie kintamojo, kurio vertė yra 1, tai reikštų 1+1. Jei norime, kad jis iš tikrųjų pridėtų du skaičius, po komandos SET turime įdėti „/a“. Todėl mes įvedame: SET /a varible = (vertė) Dabar tarkime, kad norime į savo paketinį failą įtraukti kintamąjį, kurį vartotojas pateiks. Galbūt norėtume tai padaryti, jei skaičiuotume vertes pagal formulę arba, mūsų atveju, jei norėtume, kad vartotojas atspėtų skaičių, kurį kompiuteris sugalvojo. Norėdami sugeneruoti vartotojo nurodytą kintamąjį, po komandos SET pridedame a /p ir paliekame sritį po = tuščia: SET /p kintamasis = Štai! Vartotojo nurodytas kintamasis! Jei šią eilutę įtrauktume į paketinį failą, partija veiktų tol, kol pasieks šią eilutę, ir tada prieš tęsdama lauktų vartotojo įvesties. Kitas šaunus dalykas apie /p yra tai, kad jis visiškai paneigia /a. Įtraukę a /p galime tiesiog praleisti /a. Kitas dalykas, kurį sužinosime, sukuriant atsitiktinius kintamuosius. Jei norime, kad kompiuteris pasirinktų atsitiktinį kintamojo skaičių, mes tiesiog įvedame komandą SET, po to - kintamąjį ir nustatome kintamąjį lygią %RANDOM %. Dar kartą, tai nebūtinai turi būti kapitalas, bet man vistiek patinka tai daryti. Taigi, mes įvedame: SET /a variable =%RANDOM%Akivaizdu, kad tai nėra vartotojo nurodytas kintamasis, todėl įtraukiame /a. Saunus! Taigi dabar mes žinome, kaip sukurti atsitiktinį skaičių! Bet kaip tai atsitiktinai? Na, paaiškėja, kad kompiuteris renka skaičių nuo 0 iki kažkur apie 37 000. Nesu tikras, koks yra tikslus skaičius. Bet ką daryti, jei norime mažesnio skaičiaus? Tarkime, kaip ir šioje „Instructable“programoje, norime valdyti numerį, pavyzdžiui, spėlionių žaidimui? Na, čia atsiranda IF komanda….

4 žingsnis: IF ir GOTO komandos. Galia partijos rašytojo rankose

IF ir GOTO komandos. Galia partijos rašytojo rankose
IF ir GOTO komandos. Galia partijos rašytojo rankose

Taigi, mes norime pagaminti valdomą skaičių. Tarkime, mes norime gauti atsitiktinį skaičių nuo 1 iki 20. Gerai, tai lengva pasakyti, tačiau RANDOM reikšmė pasirenka skaičių nuo 1 iki 37 000. Tam mes ir naudosime IF. „IF“komanda iš esmės sako, kad jei kažkas atsitiks, arba jei kažkas prilygs tam tikrai vertei arba jai nelygu, tada padarykite tai. Taigi, IF nustato sąlygines komandas. Mes norime sukurti skaičių, kuris yra mažesnis nei dvidešimt, bet didesnis nei vienas, aišku, pradėsime liepdami kompiuteriui pasirinkti atsitiktinį skaičių, bet tada turėsime pasakyti, kad jis išsirinktų naują numerį, jei jo pasirinktas skaičius neatitinka mūsų reikalavimų. Būtent čia atsiranda komanda GOTO. GOTO paprasčiausiai nurodo kompiuteriui pereiti prie tam tikros kodo etiketės. Etiketės atrodo taip:: pick Bet koks žodis, esantis po dvitaškio, tampa etikete, kurią galime pasiekti naudodami komandą GOTO. Taigi, jei norime pereiti prie kodo skilties su etikete „pick“virš jos, mes tiesiog įvedame: GOTO pickAlright, taigi tęskime kodavimą. Mes jau liepėme kompiuteriui pasirinkti atsitiktinį skaičių, todėl įvedėme: SET /a answer =%RANDOM%Dabar norime sumažinti šį skaičių iki mažesnio diapazono. Taigi mes iškviesime komandą IF. Kažkas panašaus turėtų būti apgaulingas: jei % atsakymas % GTR 20 GOTO pasirinkimas Tai nurodo kompiuteriui pasirinkti GOTO, jei atsakymas yra GReaTer nei 20. Mes taip pat galime į šią IF komandą įtraukti bet kurią iš šių sąlygų: EQU - EqualNEQ - Not EqualLSS - Mažiau nei GTR - didesnis neiLEQ - mažesnis arba lygus ToGEQ - didesnis arba lygus ToTaigi, naudodami IF, GOTO, etiketes ir šias santrumpas, mes galime bet kokiu būdu manipuliuoti savo paketiniu failu. Gerai, taigi mūsų atsitiktinis skaičius yra mažesnis nei dvidešimt, o štai ką mes turime iki šiol:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, įsitikinkime, kad kompiuteris ne t atsakymui pasirinkite 0.:pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickIF $ answer%EQU 0 GOTO pickOkay! Dabar turime naudingą skaičių nuo 1 iki 20. Pereikime prie partijos mėsos.

5 žingsnis: mūsų žaidimo mėsa

Mūsų žaidimo mėsa
Mūsų žaidimo mėsa

Gerai, mes turime atsitiktinį skaičių. Taip pat norime suskaičiuoti, kiek spėja mūsų žaidėjas, todėl nustatysime kitą kintamąjį: SET /a guessnum = 0 Tai nustato geussnum kintamąjį į nulį, ir mes jam suteikėme parametrą /a, todėl galėsime pridėti į jį kiekvieną kartą, kai naudotojas atspėja. Gerai. Mes turime atsitiktinį skaičių ir nustatėme spėjimų skaičių. Dabar mums reikia tam tikrų nurodymų ir reikia, kad vartotojas įvestų spėlionių skaičių. Jūs jau dabar turėtumėte tai suprasti, todėl aš jums parodysiu kodą nustato spėjimų skaičių į 0): pickASET /a Atsakymas =%RANDOM%IF IF%Atsakymas%GTR 20 GOTO pickAIF%Atsakymas%EQU 0 GOTO pickAECHO Galvoju apie skaičių nuo 1 iki 20ECHO Atspėk, kokį skaičių galvoju iš. (Šis skyrius tęsiasi tol, kol nenustato mūsų atsitiktinio skaičiaus, o tada ECHO nurodo mūsų grotuvą): RetrySET /p Atspėk = IF %Atspėk %LSS %Atsakymas %ECHO Mano skaičius yra didesnis. IF %Guess %GTR %Atsakymas % ECHO mano numeris yra mažesnis. IF%Guess%==%Atsakymas%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Bandymas iš naujo (šiame skyriuje nurodoma, kad kompiuteris paprašytų vartotojo įvesties, o tada nuolat kartojasi, kol vartotojas pasirinks Tada jis eina prie etiketės PABAIGA): ENDECHO Jūs teisus! Atsakymas buvo %Atsakymas %ECHO Prireikė %GuessNum %Guesses. ECHO. PAUSECLSECHO Ar norėtumėte žaisti dar kartą? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % žaisti% GTR ir GOTO žaisti vėlIF% žaisti% LSS y GOTO žaisti dar kartą% žaisti% GTR n GOTO žaisti dar kartą% žaisti% LSS n GOTO žaisti dar kartą (čia yra mūsų pabaigos skyrius. Tai nurodo vartotojui, kiek spėjo ir tada klausia, ar jie norėtų Atkreipkite dėmesį, kad mes taip pat galime naudoti EQU, GTR ir LSS su raidėmis.) Gerai! Jei tiesiog nukopijuotumėte šį kodą, turėtumėte teisėtų spėlionių žaidimą. Ne išgalvotas, bet ei, tai geriau nei dauguma žmonių. Bet mes pridėsime šiek tiek posūkio, kad viskas būtų įdomu …

6 žingsnis: posūkis

„Tvistas“
„Tvistas“
„Tvistas“
„Tvistas“
„Tvistas“
„Tvistas“

Dabar mes turime veikiantį žaidimą, tačiau norime jį padaryti šiek tiek įdomesnį. Kaip pridėti paskatinimą mūsų žaidėjui atspėti tinkamą skaičių? O kaip mes padarytume kažką panašaus.. išjungtume kompiuterį, jei jie neatspėtų skaičiaus? Tai būtų gana šaunu! Gerai, dabar pridėsime nedidelį kodą šiems pakeitimams atlikti. Pirma, mes pridėsime eilutę prie kodo skilties, kurią pavadinome „bandyti iš naujo“. Taigi eikite į tą skyrių. Atrodo taip:: RetrySET /p Atspėk = IF%Atspėk%LSS%Atsakymas%ECHO Mano skaičius didesnis. IF%Guess%GTR%Atsakymas%ECHO Mano numeris yra mažesnis. IF%Guess%==%Atsakymas%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Dar kartą, gerai, mes pridėsime šią eilutę iškart po „ECHO“. (Kai dedame tašką po ECHO, paliekama tuščia eilutė.) Štai naujas kodas: IF %GuessNum %EQU 4 GOTO shutdown LSS%Atsakymas%ECHO Mano skaičius didesnis. IF%Guess%GTR%Atsakymas%ECHO Mano numeris yra mažesnis. IF%Guess%==%Atsakymas%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 GOTO išjungimasGGOTO Bandymas Iki šiol turėtų būti gana akivaizdu, ką tai daro Jis nurodo kompiuteriui, kad jei „GuessNum EQUals 4“, jis turėtų pereiti į kodo skyrių, pažymėtą „shutdownG“. Taigi, ką norime pasakyti šiame išjungimo skyriuje? Akivaizdu, kad jis turi būti pažymėtas „shutdownG“. Tada jis turi išjungti kompiuterį. Išjungimo komanda yra „SHUTDOWN -s“. Tai išjungs kompiuterį, tačiau norime šiek tiek pridėti prie komandos. Pridėsime „-f“. Tai privers visas programas uždaryti ir pridėsime „-t 60“. Tai nurodys kompiuteriui parodyti langą ir palaukti šešiasdešimt sekundžių, kol jis bus uždarytas. Čia taip pat pridėsime „-c“pranešimą. kuris išjungimo lange parodys pranešimą. Po mūsų išjungimo komandos mes naudosime tą patį kodą, kurį turime aukščiau, kodą, kuris leidžia mūsų žaidėjui pasirinkti numerius ir pateikia jiems atsiliepimus. Taigi mūsų išjungimo kodas dabar atrodo taip:: shutdownGSHUTDOWN -s -f -60 -c "Toliau spėk! Jei neatspėsi teisingo skaičiaus, kompiuteris išsijungs!": shutdownG1SET /p Atspėk = IF %Atspėk %LSS %Atsakymas %ECHO Mano skaičius didesnis. IF %Atspėk %GTR %Atsakymas %ECHO Mano skaičius yra mažesnis. IF%Guess%==%Atsakymas%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1Dabar mes nustatėme kompiuterį į SHUTDOWN ir parodome pranešimą, bet taip pat turime pasakyti sustabdyti išjungimą, jei jis buvo pradėtas. Taigi, mes pridėsime tai prie kodavimo skyriaus, pažymėto „pabaiga“. Šis skyrius atrodo taip:: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Jūs teisus! Atsakymas buvo %Atsakymas %ECHO Prireikė %GuessNum %Guesses. ECHO. PAUSECLSECHO Ar norėtumėte žaisti dar kartą? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % žaisti% GTR y GOTO playagainIF% play% LSS y GOTO playagaIFIF%%% GTR n GOTO playbackIF% play% LSS n GOTO playagainNorime sustabdyti išjungimą ir tai darome naudodami komandą "SHUTDOWN -a". Taigi, pridėsime tokią eilutę: IF % GuessNum % GTR 4 SHUTDOWN -pridėsime šią komandą iškart po etiketės ir tai nurodys kompiuteriui paleisti komandą SHUTDOWN -a tik tuo atveju, jei grotuvas padarė daugiau nei keturis spėjimus ir pradėjo išjungti. Gerai! dabar turėtum baigti savo žaidimą! Mes pasirūpinsime, kad kitame žingsnyje nebūtų klaidų.

7 žingsnis: paskutiniai veiksmai

Paskutiniai žingsniai
Paskutiniai žingsniai

Gerai, dabar, jei sujungsite visą tą kodavimą, turėsite kažką panašaus į šį:: beginECHO Galvoju apie skaičių, kurį galvoju….. SET /a GuessNum = 0: pickASET / a Atsakymas =%RANDOM%IF IF%Atsakymas%GTR 20 GOTO pickAIF%Atsakymas%EQU 0 GOTO pickAECHO Galvoju apie skaičių nuo 1 iki 20ECHO Atspėk, apie ką galvoju. %LSS%Atsakymas%ECHO Mano skaičius didesnis. IF%Guess%GTR%Atsakymas%ECHO Mano numeris yra mažesnis. IF%Guess%==%Atsakymas%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% EQU 4 GOTO shutdownGGOTO Bandymas iš naujo: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Jūs teisus! Atsakymas buvo %Atsakymas %ECHO Prireikė %GuessNum %Guesses. ECHO. PAUSECLSECHO Ar norėtumėte žaisti dar kartą? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %play %EQU n GOTO closeIF % žaisti% GTR y GOTO playagainIF% play% LSS y GOTO playagainIF% play% GTR n GOTO playagaINIF% play% LSS n GOTO playagain: closeECHO Dėkojame, kad žaidėte! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -60 -c "Toliau spėk ! Jei neatspėsite teisingo skaičiaus, kompiuteris išsijungs! ": ShutdownG1SET /p Atspėk = IF % Atspėk % LSS % Atsakymas % ECHO Mano skaičius yra didesnis. IF % Guess % GTR % Atsakymas % ECHO Mano numeris yra Lower. IF%Guess%==%Atsakymas%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1Tai turėtų būti viskas, ko mums reikia? Taigi, pirmyn ir išsaugokite tą užrašų knygelės.txt failą, kurį turite kaip „GuessGame.bat“. Tiesą sakant, galite jį pavadinti, kaip norite, jei tik.bat įrašysite pabaigoje. Gerai, todėl spustelėkite piktogramą ir paleiskite programą! Ar pavyko? Na taip. Tai daro keistus dalykus, ar ne? Pasirodo, kad kai mes rašome tokią partiją, komandų eilutė ECHO atlieka kiekvieną komandą, kurią mes jai duodame, lyg įvedę juos į komandų eilutę. Taigi žaidimas veikia, tačiau jis yra šiek tiek nepatogus ir neaiškus. Ar galime ką nors padaryti dėl to? Taip! Viskas, ką turime padaryti, tai įvesti šią eilutę pačioje kodo pradžioje: @ECHO OFFTai nurodo kompiuteriui išjungti ECHO OFF. Ir @ ženklas elgetaujant liepia išjungti ECHO kiekvieną komandą. Jei paliksime šį @, tai ECHO išjungs tik vieną komandą.

8 žingsnis: viskas padaryta

Sveikinu! Jūs ką tik parašėte partijos failų žaidimą. Gana paprasta ar ne? Jei galite tai išspręsti, galite išsiaiškinti, kaip padaryti nemažai su paketiniais failais. Tiesiog žaiskite su juo, atlikite keletą eksperimentų. Tik tuo atveju, jei nepavyktų ką nors suveikti arba jei ką nors iš viso to kodavimo palikčiau, pateiksiu failą čia.

Rekomenduojamas: