Sadržaj:

Paketne datoteke: neke osnove ..: 8 koraka
Paketne datoteke: neke osnove ..: 8 koraka

Video: Paketne datoteke: neke osnove ..: 8 koraka

Video: Paketne datoteke: neke osnove ..: 8 koraka
Video: КАК НАСТРОИТЬ L4D2 2024, Lipanj
Anonim
Paketne datoteke: neke osnove …
Paketne datoteke: neke osnove …

Ovaj Instructable naučit će vas neke osnove pisanja paketnih datoteka i pokazat će vam kako stvoriti igru pogađanja brojeva s nekoliko zaokreta, samo da stvari budu zanimljive …

Naučio sam većinu vještina naredbenog retka, i sve svoje serijsko pisanje općenito s interneta, a posebno Instuctablesa. Želio bih se zahvaliti korisniku Instructablesa Neodudemanu na sjajnim Instructables -ima o skupnom pisanju. Hvala!

Korak 1: Što je paketna datoteka?

Što je paketna datoteka?
Što je paketna datoteka?

Pa, većina mojih čitatelja vjerojatno već zna što je paketna datoteka, ali za svaki slučaj …

Batch datoteka jednostavno je zbirka (serija) naredbi MSDOS -a koje se izvršavaju uzastopno pri izvođenju batch datoteke. Skupne datoteke počinju kao.txt datoteke u bilježnici, a postaju izvršne datoteke kada ih spremite kao nešto s nastavkom.bat. Dakle, u osnovi sve što radite je da napišete datoteku u Notepad, a zatim je spremite kao, recimo, "instructable.bat". Nakon što se.bat postavi na kraj naziva datoteke, pojavit će se lijepa, nova datoteka, nazvana kako god ste je nazvali, s lijepom ikonom u obliku zupčanika. U redu, sad kad znamo koje su to skupne datoteke, prijeđimo na pisanje!

Korak 2: Osnovne naredbe

Osnovne naredbe
Osnovne naredbe
Osnovne naredbe
Osnovne naredbe
Osnovne naredbe
Osnovne naredbe
Osnovne naredbe
Osnovne naredbe

U redu, morat ćeš naučiti nekoliko naredbi. Dakle, prvo otvorite MSDOS naredbeni redak. Otvorite prozor za početak, kliknite na run, upišite "cmd.exe", a zatim kliknite run. Okej. Prvo ćemo pogledati varijable. Varijable su brojevi, riječi ili druge stvari koje (donekle očito) variraju. Naredbeni redak ima promjenjivu funkciju. Ima neke varijable koje su već postavljene, poput TIME, DATE i nekoliko drugih. Većinu varijabli možete postaviti sami. Pritisnite prozor naredbenog retka i upišite: SET varijabla = slučajnoZaista nije važno hoćete li napisati "SET" velikim slovima ili ne, ali ja volim napisati velika slova svim svojim naredbama, posebno pri pisanju paketnih datoteka. Olakšava vam reći što radite. Sada pritisnite enter. Dobro za tebe! Postavili ste svoju prvu varijablu! Ali što možemo učiniti s tim? koga briga ako sve što možemo učiniti je postaviti varijablu u redu? Pa, ispostavilo se da možemo učiniti puno više od toga, ali prvo pokušajmo navesti računalo da nam kaže na što je varijabla postavljena. U redu, kako bi računalo pročitalo vrijednost varijable, upisujemo naziv varijable, u ovom slučaju, "varijabla" i stavljamo ime unutar %oznaka, ovako: %varijabla %. Samo unesite to i pritisnite enter:%variable%Čudna greška, ha? Računalo je reklo da '' varijabla 'nije prepoznata kao unutarnja ili vanjska naredba, operativni program ili paketna datoteka.' ' Pa zašto je dao tu grešku? Pa, u osnovi, dala je tu pogrešku jer naredbeni redak tretira vrijednost te varijable kao da ste je sami upisali. Dakle, kad ste upisali %variable %, računalo je mislilo da mu govorite da izvrši naredbu "random". Očito, potrebno nam je još nešto da bismo vidjeli vrijednost naše varijable. Ovdje dolazi naredba ECHO. Naredba ECHO jednostavno govori naredbenom retku da odjekne ili izgovori sve što ste upisali nakon ECHO. Dakle, ako upišemo naredbu ECHO prije naše varijable, trebali bismo dobiti ono što želimo: ECHO %varijabla %Tamo! Sada imamo ono što želimo! Računalo ispisuje "nasumično". Očigledno, ovo je vrijednost koju smo unijeli za našu varijablu, pa je to rezultat koji smo željeli. U sljedećem koraku naučit ćemo više o varijablama i kako ih možemo koristiti.

Korak 3: Korištenje naredbe SET i varijabli

Korištenje naredbe SET i varijabli
Korištenje naredbe SET i varijabli
Korištenje naredbe SET i varijabli
Korištenje naredbe SET i varijabli

U redu, sada kada znamo što su varijable, što još možemo učiniti s njima? Pa, možemo raditi matematiku, možemo ih koristiti kao uvjete za pisanje programa i paketnih datoteka, možemo izvesti osnovnu aritmetiku, možemo izvršavati naredbe i još mnogo toga. Nećemo ulaziti u sve što možete učiniti s varijablama, ali ćemo razgovarati o nekim važnim aspektima funkcije varijable. Prvo, naredba SET sama proizvodi samo niz varijable. To znači da neće dodati niti napraviti bilo koju drugu matematiku. Ako biste rekli računalu da doda 1 varijabli s vrijednošću 1, to bi vam dalo vrijednost 1+1. Ako želimo da zbroji dva broja, moramo postaviti "/a" nakon naredbe SET. Stoga upisujemo: SET /a variable = (value) Sada, pretpostavimo da želimo staviti varijablu u našu paketnu datoteku koju će korisnik dati. Možda bismo to htjeli učiniti ako smo računali vrijednosti prema formuli ili, u našem slučaju, ako želimo da korisnik pogodi broj do kojeg je računalo došlo. Da bismo generirali varijablu koju je odredio korisnik, dodajemo a /p nakon naredbe SET i ostavljamo područje nakon = prazno: SET /p varijabla = Izvolite! Varijabla koju je naveo korisnik! Ako bismo ovaj redak stavili u paketnu datoteku, tada bi se serija izvršavala sve dok ne dosegne ovaj redak, a zatim bi čekala na unos korisnika prije nastavka. Druga super stvar u vezi s /p je ta što potpuno negira /a. Kada uključimo a /p možemo samo izostaviti /a. Sljedeća stvar koju ćemo naučiti o tome je proizvođenje slučajnih varijabli. Ako želimo da računalo odabere slučajan broj za varijablu, jednostavno upišemo naredbu SET, iza koje slijedi varijabla, a zatim varijablu postavimo na jednaku %RANDOM %. Još jednom, ne mora biti kapital, ali svejedno to volim raditi. Dakle, upisujemo: SET /a variable =%RANDOM%Očigledno, ovo nije varijabla koju je naveo korisnik, pa uključujemo /a. Kul! Sada znamo kako proizvesti slučajan broj! Ali koliko je to slučajno? Pa, ispalo je da računalo bira broj između 0 i negdje oko 37 000. Nisam siguran koji je točan broj. Ali što ako želimo manji broj? Pretpostavimo, kao u ovom Instructable -u, da želimo upravljan broj za nešto poput igre pogađanja? Pa, tu dolazi naredba IF …

Korak 4: Naredbe IF i GOTO. Moć u rukama serijskog pisca

Naredbe IF i GOTO. Moć u rukama serijskog pisca
Naredbe IF i GOTO. Moć u rukama serijskog pisca

Dakle, želimo proizvesti upravljiv broj. Pretpostavimo da želimo proizvesti slučajan broj između 1 i 20. U redu, to je lako reći, ali vrijednost RANDOM odabire broj između 1 i 37 000. Za to ćemo koristiti IF. Naredba IF u osnovi kaže AKO se nešto dogodi, ili AKO je nešto jednako ili nije jednako, određenoj vrijednosti, ONDA učinite OVO. Dakle, IF postavlja uvjetne naredbe. Želimo proizvesti broj koji je manji od dvadeset, ali veći od jedan, očito, počet ćemo tako što ćemo reći računalu da odabere slučajan broj, ali onda ćemo mu morati reći da odabere novi broj ako odabrani broj ne odgovara našim zahtjevima. Tu dolazi naredba GOTO. GOTO jednostavno govori računalu da IDE NA određenu oznaku u kodu. Oznake izgledaju ovako:: pickSvaka riječ postavljena nakon dvotočke postaje oznaka kojoj možemo pristupiti naredbom GOTO. Dakle, ako želimo otići na odjeljak koda s oznakom "pick" iznad, jednostavno upisujemo: GOTO pickAlright, pa nastavimo s kodiranjem. Računalu smo već rekli da odabere slučajan broj, pa smo upisali: SET /a answer =%RANDOM%Sada ovaj broj želimo povući na manji raspon. Stoga ćemo pozvati naredbu IF. Ovako nešto bi trebalo napraviti trik: IF % answer % GTR 20 GOTO pickThis govori računalu da GOTO pick AKO je odgovor GREATer više od 20. Mogli bismo staviti bilo koji od ovih uvjeta na tu naredbu IF: EQU - EqualNEQ - Not EqualLSS - Manje ThanGTR - Veće ThanLEQ - Manje od ili Jednako ToGEQ - Veće ili jednako ToThus, s IF, GOTO, oznakama i ovim skraćenicama, možemo manipulirati našom paketnom datotekom na bilo koji način. U redu, sada imamo nasumični broj ispod dvadeset, a evo što imamo do sada:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, pobrinimo se da računalo ne t odaberite 0 za odgovor.:pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickIF $ answer%EQU 0 GOTO pickOkay! Sada imamo upotrebljiv broj između 1 i 20. Prijeđimo na meso serije.

Korak 5: Meso naše igre

Meso naše igre
Meso naše igre

U redu, imamo nasumičan broj. Također želimo izbrojiti koliko pogodaka naš igrač napravi, pa ćemo postaviti drugu varijablu: SET /a guessnum = 0To postavlja varijablu geussnum na nulu, a mi smo joj dali parametar /a, pa ćemo moći dodati na to svaki put kad korisnik pogodi. U redu. Imamo slučajni broj i postavili smo broj nagađanja. Sada nam trebaju neke upute i moramo imati neki korisnički unos za broj pogađanja. Do sada biste trebali shvatiti većinu ovoga, pa ću vam samo pokazati kôd:: beginECHO Smislit ću broj ECHO Mislim ….. SET /a GuessNum = 0 (Ovaj ECHO sadrži ta dva retka i postavlja broj nagađanja na 0): pickASET /a Odgovor =%RANDOM%IF%Odgovor%GTR 20 IDI na pickAIF%Odgovor%EQU 0 GOTO pickAECHO Mislim na broj između 1 i 20ECHO Pogodite koji broj mislim od. (Ovaj odjeljak se ponavlja dok ne postavi naš slučajni broj, a zatim ECHO upućuje upute za naš player): RetrySET /p Pogodi = IF %Pogodi %LSS %Odgovor %ECHO Moj broj je veći. IF %Pogodi %GTR %Odgovor % ECHO Moj broj je niži. IF%Pogodi%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Pokušaj ponovno (ovaj odjeljak govori računalu da traži unos korisnika, a zatim se neprestano ponavlja dok korisnik ne odabere ispravan broj. Zatim ide na oznaku END): ENDECHO U pravu ste! Odgovor je bio %odgovora %ECHO Trebalo je %GuessNum %Guesses. ECHO. PAUSECLSECHO Želite li ponovno igrati? 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 (Ovdje je naš krajnji odjeljak. Ovo govori korisniku koliko pogađanja je uzeo, a zatim ga pita želi li za ponovnu reprodukciju. Uočite da možemo koristiti EQU, GTR i LSS i sa slovima.) U redu! Da ste jednostavno kopirali ovaj kôd, imali biste zakonitu igru pogađanja. Nije baš fantastično, ali hej, bolje je nego što većina ljudi može učiniti. No, mi ćemo dodati mali obrat, samo da stvari učinimo zanimljivima….

Korak 6: Twist

Twist
Twist
Twist
Twist
Twist
Twist

Sada imamo radnu igru, ali želimo je učiniti još zanimljivijom. Što kažete na dodavanje poticaja našem igraču da pogodi pravi broj? Kako bi bilo da učinimo nešto poput.. isključimo njihovo računalo ako ne pogode broj? To bi bilo jako cool! U redu, sada ćemo dodati mali kod za ove promjene. Prvo ćemo dodati redak u odjeljak koda koji smo označili kao "pokušaj ponovno". Pa idi pronađi taj odjeljak. Izgleda ovako:: RetrySET /p Pogodi = AKO%Pogodi%LSS%Odgovor%ECHO Moj broj je veći. IF%Pogodi%GTR%Odgovor%ECHO Moj broj je manji. IF%Pogodi%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Ponovo pokušajU redu, dodati ćemo ovaj redak odmah nakon "ECHO". (Kad stavimo točku nakon ECHO -a, ostavlja prazan redak.) Evo novog koda: IF %GuessNum %EQU 4 GOTO shutdownGKada dodamo ovaj redak, odjeljak izgleda ovako:: RetrySET /p Guess = IF %Guess % LSS%Odgovor%ECHO Moj broj je veći. IF%Pogodi%GTR%Odgovor%ECHO Moj broj je manji. IF%Pogodi%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 GOTO isključivanjeGGOTO Retry Do sada bi trebalo biti prilično očito čemu ovo služi. Računalu govori da bi, ako je GuessNum EQUAL 4, trebalo otići u odjeljak koda s oznakom "shutdownG". Dakle, što želimo da kaže ovaj odjeljak za isključivanje? Pa, očito, mora biti označeno kao "shutdownG". Zatim mora isključiti računalo. Naredba za isključivanje je "SHUTDOWN -s". Ovo će isključiti računalo, ali želimo dodati neke naredbi. Dodati ćemo "-f". To će natjerati sve programe da se zatvore, a mi ćemo dodati "-t 60". To će reći računalu da prikaže prozor i pričeka šezdeset sekundi da se zatvori. Ovdje ćemo također dodati poruku "-c" "". koji će u prozoru za isključivanje prikazati poruku. Nakon naše naredbe za isključivanje, uhvatit ćemo isti kod koji imamo gore, kôd koji našem igraču omogućuje odabir brojeva i daje im povratne informacije. Dakle, naš kôd za isključivanje sada izgleda ovako:: shutdownGSHUTDOWN -s -f -t 60 -c "Nastavite pogađati! Ako ne pogodite pravi broj, računalo će se isključiti!": shutdownG1SET /p Pogodi = AKO %Pogodi %LSS %Odgovor %ECHO Moj broj je veći. IF %Pogodi %GTR %Odgovor %ECHO Moj broj je niži. IF%Pogodi%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO isključivanjeG1Sada smo računalo postavili na SHUTDOWN i prikazali poruku, ali također moramo reći računalo da zaustavi isključivanje, ako je pokrenuto. Pa ćemo to dodati u odjeljak kodiranja s oznakom "kraj". Taj odjeljak izgleda ovako:: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO U pravu ste! Odgovor je bio %odgovora %ECHO Trebalo je %GuessNum %Guesses. ECHO. PAUSECLSECHO Želite li ponovno igrati? 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Želimo zaustaviti gašenje, a to radimo naredbom "SHUTDOWN -a". Pa ćemo dodati redak koji ide ovako: IF % GuessNum % GTR 4 SHUTDOWN -aTu ćemo naredbu dodati odmah nakon oznake, a to će reći računalu da pokrene naredbu SHUTDOWN -a samo ako igrač ima napravio više od četiri nagađanja i započeo gašenje. U redu! trebali biste svoju igru završiti sada! U sljedećem koraku pobrinut ćemo se da nema grešaka.

Korak 7: Završni koraci

Završni koraci
Završni koraci

U redu, ako ste sve to kodiranje nanizali, imat ćete nešto što izgleda otprilike ovako:: beginECHO Smislit ću broj ECHO Mislim ….. SET /a GuessNum = 0: pickASET / a Odgovor =%RANDOM%IF%Odgovor%GTR 20 GOTO pickAIF%Odgovor%EQU 0 GOTO pickAECHO Razmišljam o broju između 1 i 20ECHO Pogodite na koji broj mislim.:RetrySET /p Pogodite = IF%Pogodite %LSS%Odgovor%ECHO Moj broj je veći. IF%Pogodi%GTR%Odgovor%ECHO Moj broj je manji. IF%Pogodi%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% EQU 4 GOTO isključivanjeGGOTO Pokušajte ponovno: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO U pravu ste! Odgovor je bio %odgovora %ECHO Trebalo je %GuessNum %Guesses. ECHO. PAUSECLSECHO Želite li ponovno igrati? 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 Hvala vam što ste igrali! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Nastavite nagađati ! Ako ne pogodite pravi broj, računalo će se isključiti! ": ShutdownG1SET /p Guess = IF % Guess % LSS % Answer % ECHO Moj broj je veći. IF % Guess % GTR % Answer % ECHO Moj broj je Lower. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1To bi trebalo biti sve što nam treba? Dakle, nastavite i spremite datoteku bilježnice.txt koju imate kao GuessGame.bat. Zapravo, možete ga nazvati kako god želite, pod uvjetom da stavite.bat na kraj. U redu, pa kliknite na ikonu i pokrenite program! Je li upalilo? Pa otprilike. Čini neke čudne stvari, zar ne? Ispostavilo se da kad pišemo ovako skupinu, naredbeni redak ECHO izvršava svaku naredbu koju joj damo, baš kao da smo ih upisali u naredbeni redak. Dakle, igra radi, ali je pomalo neuredna i nejasna. Možemo li učiniti nešto po tom pitanju? Da! Sve što moramo učiniti je upisati ovaj redak na samom početku našeg koda: @ECHO OFFOvo računalu govori da isključi ECHO. I znak @ pri prosjačenju govori mu da isključi ECHO za svaku naredbu. Ako izostavimo taj @, onda bi isključio ECHO za jednu naredbu.

Korak 8: Sve je učinjeno

Čestitamo! Upravo ste napisali igru s paketnim datotekama. Prilično jednostavno zar ne? Ako to možete riješiti, možete shvatiti kako se prilično snaći s paketnim datotekama. Samo se poigrajte s tim, napravite neke eksperimente. Za slučaj da ne možete natjerati nešto da radi, ili u slučaju da sam nešto izostavio u cijelom kodiranju, ovdje ću vam dati datoteku.

Preporučeni: