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, Novembar
Anonim
Paketni fajlovi: neke osnove …
Paketni fajlovi: 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 okreta, samo da stvari budu zanimljive …

Naučio sam većinu vještina komandnog retka, i sve svoje serijsko pisanje općenito s interneta, a posebno Instuctablesa. Želeo bih da se zahvalim korisniku Instructables -a Neodudemanu na sjajnim Instructables -ima o grupnom pisanju. Hvala!

Korak 1: Šta je paketna datoteka?

Šta je paketna datoteka?
Šta je paketna datoteka?

Pa, većina mojih čitalaca vjerovatno već zna šta je paketna datoteka, ali za svaki slučaj …

Batch datoteka je jednostavno zbirka (serija) naredbi MSDOS -a koje se izvršavaju uzastopno kada pokrenete batch datoteku. Paketne datoteke počinju kao.txt datoteke u bilježnici, a postaju izvršne datoteke kada ih spremite kao nešto s.bat ekstenzijom. 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 paketne datoteke, prijeđimo na pisanje!

Korak 2: Osnovne naredbe

Osnovne komande
Osnovne komande
Osnovne komande
Osnovne komande
Osnovne komande
Osnovne komande
Osnovne komande
Osnovne komande

U redu, morat ćete 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 na run. Okej. Prvo ćemo pogledati varijable. Varijable su brojevi, riječi ili druge stvari koje se (donekle očito) razlikuju. 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. Kliknite na 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 sve svoje naredbe velikim slovima, posebno pri pisanju paketnih datoteka. Olakšava vam reći šta radite. Sada pritisnite enter. Dobro za tebe! Postavili ste svoju prvu varijablu! Ali šta 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 mnogo više od toga, ali prvo pokušajmo navesti računar da nam kaže na šta je postavljena varijabla. U redu, da bi računar pročitao vrijednost varijable, upisujemo naziv varijable, u ovom slučaju, "varijabla" i stavljamo ime unutar %marks, ovako: %varijabla %. Samo unesite to i pritisnite enter:%varijabla%Čudna greška, ha? Računalo je reklo da '' varijabla 'nije prepoznata kao interna ili eksterna naredba, operativni program ili batch datoteka.' ' Pa zašto je dao tu grešku? Pa, u osnovi, dala je tu grešku jer naredbeni redak tretira vrijednost te varijable kao da ste je sami unijeli. Dakle, kada ste upisali %variable %, računar je pomislio da mu govorite da izvrši naredbu "random". Očigledno, potrebno nam je još nešto da bismo vidjeli vrijednost naše varijable. Ovdje dolazi naredba ECHO. Naredba ECHO jednostavno govori naredbenoj liniji da odzvanja 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 šta želimo! Računar štampa „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 ćemo naučiti više o varijablama i kako ih možemo koristiti.

Korak 3: Upotreba 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 šta su varijable, šta 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 izvoditi 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 string varijable. To znači da neće dodati niti napraviti bilo koju drugu matematiku. Ako biste rekli računaru da doda 1 promenljivoj sa vrednošću 1, to bi vam dalo vrednost 1+1. Ako želimo da zapravo sabere 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 korisnički specificiranu varijablu, dodajemo a /p nakon naredbe SET, a područje ostavljamo nakon = prazno: SET /p varijabla = Izvolite! Korisnički specificirana varijabla! Ako bismo ovaj redak stavili u paketnu datoteku, tada bi se serija izvršavala sve dok ne stigne do ove linije, a zatim bi čekala na unos korisnika prije nastavka. Druga dobra stvar u vezi /p -a 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čunar odabere slučajan broj za varijablu, jednostavno upišemo naredbu SET, iza koje slijedi varijabla, a zatim postavimo varijablu na jednako %RANDOM %. Još jednom, ne mora biti kapital, ali ja to ipak volim učiniti. Dakle, upisujemo: SET /a variable =%RANDOM%Očigledno, ovo nije varijabla koju je naveo korisnik, pa uključujemo /a. Cool! Sada znamo kako proizvesti slučajan broj! Ali koliko je to nasumično? Pa, ispostavlja se da računar bira broj između 0 i negdje oko 37 000. Nisam siguran koji je točan broj. Ali šta ako želimo manji broj? Pretpostavimo, kao u ovom Instructable -u, da želimo upravljiv 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čunaru da odabere slučajan broj, ali onda ćemo morati biti u mogućnosti da mu kažemo da odabere novi broj ako odabrani broj ne odgovara našim zahtjevima. Tu dolazi naredba GOTO. GOTO jednostavno govori računaru da IDE NA određenu oznaku u kodu. Oznake izgledaju ovako:: pickAny riječ postavljena nakon dvotočke postaje oznaka kojoj možemo pristupiti naredbom GOTO. Dakle, ako želimo prijeći na odjeljak koda s oznakom "pick" iznad, jednostavno upisujemo: GOTO pickAlright, pa nastavimo s kodiranjem. Već smo rekli računaru da odabere slučajan broj, pa smo upisali: SET /a answer =%RANDOM%Sada želimo da taj broj povučemo u manji raspon. Stoga ćemo pozvati naredbu IF. Ovako nešto bi trebalo da posluži: IF % answer % GTR 20 GOTO pickOvo govori računaru da IDE NA AKO JE odgovor GREATer više od 20. Mogli bismo postaviti bilo koji od ovih uslova na ovu IF naredbu: EQU - EqualNEQ - Not EqualLSS - Manje ThanGTR - Veće ThanLEQ - Manje od ili Jednako ToGEQ - Više ili jednako ToThus, s IF, GOTO, oznakama i ovim skraćenicama, možemo manipulirati našom paketnom datotekom na bilo koji način koji odaberemo. U redu, sada imamo nasumični broj ispod dvadeset, a evo šta imamo do sada:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, provjerimo da računar ne radi ' 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 brojati 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 kada korisnik pogodi. U redu. Imamo slučajan 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 razumjeti većinu ovoga, pa ću vam samo pokazati kôd:: beginECHO Smislit ću broj ECHO Mislim ….. SET /a GuessNum = 0 (Ovo ECHO predstavlja 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 ponovo (ovaj odjeljak govori računaru da traži unos od korisnika, a zatim se neprekidno 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 ponovo 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 dio. Ovo govori korisniku koliko pogađanja je uzeo, a zatim ga pita želi li Imajte na umu da možemo koristiti EQU, GTR i LSS sa slovima.) U redu! Da ste jednostavno kopirali ovaj kôd, imali biste zakonitu igru pogađanja. Nije baš simpatično, ali hej, bolje je nego što većina ljudi može učiniti. No, mi ćemo dodati mali zaokret, samo da stvari učinimo zanimljivima….

Korak 6: Twist

The Twist
The Twist
The Twist
The Twist
The Twist
The 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 im računar ako ne pogode broj? To bi bilo super! U redu, sada ćemo dodati mali kod za ove promjene. Prvo ćemo dodati red u odjeljak koda koji smo označili kao "pokušaj ponovo". 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 RetryOkej, dodaćemo ovaj red odmah nakon "ECHO". (Kad stavimo točku nakon ECHO -a, ona ostavlja prazan red.) Evo novog koda: IF %GuessNum %EQU 4 GOTO isključivanjeGKada dodamo ovu liniju, 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 RetryBi do sada bi trebalo biti prilično očito čemu ovo služi. Računaru govori da, ako GuessNum EQUAL 4, treba da ide u odeljak koda sa oznakom "shutdownG". Dakle, šta želimo da kaže ovaj odjeljak za gašenje? Pa, očigledno, mora biti označeno kao "shutdownG". Zatim mora isključiti računar. Naredba za isključivanje je "SHUTDOWN -s". Ovo će isključiti računar, ali želimo dodati neke komande. Dodaćemo "-f". To će natjerati sve programe da se zatvore, a mi ćemo dodati "-t 60". To će reći računaru da prikaže prozor i sačeka šezdeset sekundi da se zatvori. Ovdje ćemo dodati i poruku "-c" "". koji će prikazati poruku u prozoru za isključivanje. Nakon naše naredbe za isključivanje, mi ćemo se pozabaviti istim kodom koji imamo gore, kod koji omogućava našem igraču da bira brojeve i daje im povratne informacije. Dakle, naš kod za isključivanje sada izgleda ovako:: shutdownGSHUTDOWN -s -f -t 60 -c "Nastavite pogađati! Ako ne pogodite pravi broj, računar ć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 manji. IF%Pogodi%==%Odgovor%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO isključivanjeG1Sada smo računar postavili na SHUTDOWN i prikazali poruku, ali također moramo reći računaru da zaustavi isključivanje, ako je pokrenuto. Pa ćemo to dodati u odjeljak kodiranja označen kao "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 ponovo igrati? ECHO Y /N? SET /p play = IF %play %EQU y GOTO beginIF %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Želimo zaustaviti gašenje, a to radimo naredbom "SHUTDOWN -a". Pa ćemo dodati redak koji ide ovako: IF % GuessNum % GTR 4 SHUTDOWN -aDodaćemo tu komandu odmah iza oznake, a to će reći računaru da pokrene SHUTDOWN -a komandu 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 ćemo se pobrinuti da nema grešaka.

Korak 7: Završni koraci

Završni koraci
Završni koraci

U redu, sada ako ste sve to kodiranje nanizali, imat ćete nešto što izgleda otprilike ovako::: 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 ponovo: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO U pravu ste! Odgovor je bio %odgovora %ECHO Trebalo je %GuessNum %Guesses. ECHO. PAUSECLSECHO Želite li ponovo 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 što ste igrali! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Nastavite pogađati ! Ako ne pogodite pravi broj, računar ć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 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, sve dok na kraju stavite.bat. U redu, pa kliknite na ikonu i pokrenite program! Je li uspjelo? Pa otprilike. Radi neke čudne stvari, zar ne? Ispostavilo se da kada pišemo ovakvu grupu, 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 trebamo učiniti je otkucati ovu liniju na samom početku koda: @ECHO OFFOvo govori računaru da isključi ECHO. I znak @ pri prosjačenju mu govori da isključi ECHO za svaku naredbu. Ako izostavimo taj @, onda bi isključio ECHO za jednu naredbu.

Korak 8: Sve je gotovo

Čestitamo! Upravo ste napisali igru paketnih datoteka. 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 igrajte s tim, napravite neke eksperimente. U slučaju da ne možete uspjeti, ili u slučaju da sam nešto izostavio u kodiranju, dat ću vam datoteku ovdje.

Preporučuje se: