Obsah:

Dávkové soubory: Některé základy ..: 8 kroků
Dávkové soubory: Některé základy ..: 8 kroků

Video: Dávkové soubory: Některé základy ..: 8 kroků

Video: Dávkové soubory: Některé základy ..: 8 kroků
Video: Apple macOS: TIPY & TRIKY (nejen) PRO ZAČÁTEČNÍKY (1. díl) 2024, Září
Anonim
Dávkové soubory: Některé základy…
Dávkové soubory: Některé základy…

Tento Instructable vás naučí základy psaní dávkových souborů a ukáže vám, jak vytvořit hru s hádáním čísel pomocí několika zvratů, aby byly věci zajímavé …

Naučil jsem se většinu svých dovedností příkazového řádku a všechny své dávkové psaní z internetu obecně, a zejména z Instuctables. Chtěl bych poděkovat uživateli Instructables Neodudemanovi za jeho skvělé Instructables o dávkovém psaní. Dík!

Krok 1: Co je dávkový soubor?

Co je dávkový soubor?
Co je dávkový soubor?

Většina mých čtenářů pravděpodobně již ví, co je dávkový soubor, ale jen pro případ ….

Dávkový soubor je prostě kolekce (dávková) příkazů MSDOS, které se provádějí postupně při spuštění dávkového souboru. Dávkové soubory začínají jako soubory.txt v poznámkovém bloku a stanou se spustitelnými soubory, když je uložíte jako něco s příponou.bat. V podstatě tedy stačí, když napíšete soubor do programu Poznámkový blok a poté jej uložíte jako řekněme „instructable.bat“. Jakmile je.bat umístěn na konec názvu souboru, objeví se pěkný, nový soubor, pojmenovaný jakkoli jste jej pojmenovali, s pěknou ikonou, která vypadá jako ozubené kolo. Dobře, teď, když víme, jaké jsou tyto dávkové soubory, můžeme začít psát!

Krok 2: Základní příkazy

Základní příkazy
Základní příkazy
Základní příkazy
Základní příkazy
Základní příkazy
Základní příkazy
Základní příkazy
Základní příkazy

Dobře, budete se muset naučit pár příkazů. Nejprve tedy otevřete příkazový řádek MSDOS. Otevřete úvodní okno, klikněte na Spustit, zadejte „cmd.exe“a poté klikněte na Spustit. Dobře. Nejprve se podíváme na proměnné. Proměnné jsou čísla, slova nebo jiné věci, které se (poněkud zjevně) liší. Příkazový řádek má proměnnou funkci. Má některé proměnné, které jsou již nastaveny, například TIME, DATE a několik dalších. Většinu proměnných si však můžete nastavit sami. Klikněte na okno Příkazový řádek a zadejte: SET variable = randomIt it not matter matter if you capitalize the "SET" or not, but I like to capitalize all of my commands, obzvlášť při psaní dávkových souborů. Jednodušší je říct, co děláte. Nyní stiskněte Enter. Dobré pro tebe! Nastavili jste první proměnnou! Ale co s tím můžeme dělat? koho zajímá, jestli vše, co můžeme udělat, je nastavit proměnnou správně? Ukázalo se, že toho můžeme udělat mnohem více, ale nejprve se pokusme přimět počítač, aby nám řekl, jak je proměnná nastavena. Dobře, aby počítač získal hodnotu proměnné, zadáme název proměnné, v tomto případě „proměnná“a vložíme název do značek %, například takto: %proměnná %. Pokračujte a zadejte to a stiskněte Enter:%variable%Divná chyba, co? Počítač řekl, že „„ proměnná “není rozpoznána jako interní nebo externí příkaz, spustitelný program nebo dávkový soubor. Tak proč to dalo tu chybu? V zásadě to způsobilo tuto chybu, protože příkazový řádek zachází s hodnotou této proměnné, jako byste ji zadali sami. Když jste tedy zadali %variable %, počítač si myslel, že mu říkáte, aby provedl příkaz „random“. Očividně potřebujeme něco jiného, abychom viděli hodnotu naší proměnné. Zde přichází na řadu příkaz ECHO. Příkaz ECHO jednoduše řekne příkazovému řádku, aby zopakoval nebo řekl, co jste zadali po ECHO. Pokud tedy před naši proměnnou napíšeme příkaz ECHO, měli bychom dostat to, co chceme: ECHO %proměnná %There! Nyní máme, co chceme! Počítač vytiskne „náhodně“. Očividně to byla hodnota, kterou jsme zadali pro naši proměnnou, takže je to výsledek, který jsme chtěli. V dalším kroku se naučíme více o proměnných a jak je můžeme použít.

Krok 3: Použití příkazu SET a proměnných

Pomocí příkazu SET a proměnných
Pomocí příkazu SET a proměnných
Pomocí příkazu SET a proměnných
Pomocí příkazu SET a proměnných

Dobře, teď, když víme, co jsou to proměnné, co jiného s nimi můžeme dělat? Můžeme dělat matematiku, můžeme je použít jako podmínky pro psaní programů a dávkových souborů, můžeme provádět základní aritmetiku, můžeme spouštět příkazy a mnoho dalšího. Nebudeme se zabývat vším, co můžete s proměnnými dělat, ale probereme některé důležité aspekty funkce proměnných. Za prvé, samotný příkaz SET vytváří pouze řetězcové proměnné. To znamená, že to nebude přidávat ani dělat jinou matematiku. Pokud byste počítači řekli, aby přidal 1 k proměnné s hodnotou 1, dalo by vám to hodnotu 1+1. Pokud chceme, aby tato dvě čísla skutečně sečetl, musíme za příkaz SET umístit „/a“. Proto zadáme: SET /a varible = (hodnota) Nyní předpokládejme, že chceme do našeho dávkového souboru vložit proměnnou, kterou uživatel poskytne. Možná bychom to chtěli udělat, kdybychom počítali hodnoty podle vzorce, nebo v našem případě, pokud chceme, aby uživatel uhádl číslo, se kterým přišel počítač. Abychom vygenerovali uživatelem specifikovanou proměnnou, přidáme a /p za příkaz SET a ponecháme oblast po = prázdné: proměnná SET /p = tady to máš! Uživatelem specifikovaná proměnná! Pokud bychom tento řádek vložili do dávkového souboru, dávka by se spustila, dokud by nedosáhla tohoto řádku, a pak by počkala na vstup uživatele, než bude pokračovat. Další skvělá věc na /p je, že úplně neguje /a. Když zahrneme a /p, můžeme jednoduše vynechat /a. Další věc, kterou se o tom dozvíme, je vytváření náhodných proměnných. Pokud chceme, aby počítač vybral pro proměnnou náhodné číslo, jednoduše napíšeme příkaz SET, za ním proměnnou a pak proměnnou nastavíme na hodnotu %RANDOM %. Opět to nemusí být kapitál, ale stejně to rád dělám. Takže zadáme: SET /a variable =%RANDOM%Očividně to není uživatelem specifikovaná proměnná, takže zahrneme /a. Chladný! Takže teď víme, jak vyrobit náhodné číslo! Ale jak je to náhodné? Ukázalo se, že počítač vybere číslo mezi 0 a někde kolem 37 000. Nejsem si jistý, jaké je přesné číslo. Ale co když chceme menší číslo? Předpokládáme, že stejně jako v tomto Instructable chceme zvládnutelné číslo pro něco jako hádací hru? No a tady přichází příkaz IF….

Krok 4: Příkazy IF a GOTO. Moc v rukou dávkového spisovatele

Příkazy IF a GOTO. Moc v rukou dávkového spisovatele
Příkazy IF a GOTO. Moc v rukou dávkového spisovatele

Chceme tedy vytvořit zvládnutelné číslo. Předpokládejme, že chceme vytvořit náhodné číslo mezi 1 a 20. Dobře, to se snadno řekne, ale hodnota RANDOM zvolí číslo mezi 1 a 37 000. K tomu použijeme IF. Příkaz IF v zásadě říká, KDYŽ se něco stane, nebo KDYŽ se něco rovná nebo nerovná určité hodnotě, PAK Udělejte TO. IF tedy nastavuje podmíněné příkazy. Chceme vytvořit číslo, které je menší než dvacet, ale větší než jedna, samozřejmě začneme tím, že řekneme počítači, aby vybral náhodné číslo, ale pak mu musíme umět říct, aby vybral nové číslo, pokud zvolené číslo nevyhovuje našim požadavkům. To je místo, kde přijde příkaz GOTO. GOTO jednoduše řekne počítači, aby PŘEŠEL na určitý štítek v kódu. Štítky vypadají takto:: pick Z libovolného slova umístěného za dvojtečkou se stane štítek, ke kterému můžeme přistupovat pomocí příkazu GOTO. Pokud tedy chceme přejít do části kódu s označením „pick“nad ním, jednoduše napíšeme: GOTO pickAlright, takže pokračujeme v našem kódování. Už jsme počítači řekli, aby vybral náhodné číslo, a tak jsme zadali: SET /a answer =%RANDOM%Nyní chceme toto číslo stáhnout do menšího rozsahu. Vyvoláme tedy příkaz IF. Něco takového by mělo stačit: IF % answer % GTR 20 GOTO pick To říká počítači, aby GOTO vybral IF odpověď je GReaTer než 20. Do příkazu IF bychom mohli také vložit kteroukoli z těchto podmínek: EQU - EqualNEQ - Not EqualLSS - Less ThanGTR - Greater ThanLEQ - Less Than or Equal ToGEQ - Greater Than or Equal ToThus, with IF, GOTO, labels, and these abrevitions, we can manipulate our batch file any way we choose. Dobře, takže teď máme své náhodné číslo pod dvacet a tady je to, co zatím máme:: pickSET /a odpověď =%RANDOM%IF%answer%GTR 20 GOTO pickNow, teď se ujistěte, že počítač ne t pro odpověď vyberte 0.:pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickIF $ answer%EQU 0 GOTO pickOkay! Nyní máme použitelné číslo mezi 1 a 20. Přejdeme k masu Dávky.

Krok 5: Maso naší hry

Maso naší hry
Maso naší hry

Dobře, máme své náhodné číslo. Chceme také spočítat, kolik odhadů náš hráč provede, takže nastavíme další proměnnou: SET /a guessnum = 0 Tím se proměnná geussnum nastaví na nulu a my jsme jí dali parametr /a, takže budeme moci přidat pokaždé, když uživatel uhodne. Dobře. Máme náhodné číslo a nastavili jsme počet odhadů. Nyní potřebujeme nějaké pokyny a potřebujeme nějaký uživatelský vstup pro odhadované číslo. Většinu z toho byste už měli pochopit, a tak vám ukážu kód:: beginECHO Budu přemýšlet o čísle ECHO, o kterém přemýšlím ….. SET /a GuessNum = 0 (Toto ECHO má tyto dva řádky a nastaví počet odhadů na 0): pickASET /a Odpověď =%RANDOM%IF%Odpověď%GTR 20 GOTO pickAIF%Odpověď%EQU 0 GOTO pickAECHO Myslím na číslo mezi 1 a 20ECHO Hádej, jaké číslo myslím (Tato sekce se opakuje, dokud nenastaví naše náhodné číslo a poté pokyny ECHO pro našeho hráče): RetrySET /p Hádej = IF %Hádej %LSS %Odpověď %ECHO Moje číslo je vyšší. IF %Hádej %GTR %Odpověď % Moje číslo ECHO je nižší. IF%Hádej%==%Odpověď%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Opakovat (Tato část říká počítači, aby požádal o vstup uživatele, a pak se bude nepřetržitě opakovat, dokud uživatel nevybere správné číslo. Poté přejde na štítek KONEC): ENDECHO Máte pravdu! Odpověď byla %Odpověď %ECHO Trvalo %GuessNum %Guesses. ECHO. PAUSECLSECHO Chtěli byste si znovu zahrát? 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 (Zde je naše koncová část. To uživateli sdělí, kolik odhadů vzal, a poté se zeptá, zda by chtěl hrát znovu. Všimněte si, že můžeme používat EQU, GTR a LSS také s písmeny.) Dobře! Pokud byste tento kód jednoduše zkopírovali, měli byste legitimní hádací hru. Není to skutečné fantazie, ale hej, je to lepší, než většina lidí dokáže. Ale přidáme trochu zvratu, jen aby byly věci zajímavé….

Krok 6: Twist

Twist
Twist
Twist
Twist
Twist
Twist

Nyní máme funkční hru, ale chceme, aby byla trochu zajímavější. Co takhle přidat nějakou pobídku pro našeho hráče, aby uhádl správné číslo? Co kdybychom udělali něco jako … vypnuli jim počítač, pokud neuhodnou číslo? To by bylo docela cool! Dobře, nyní přidáme malý kód k provedení těchto změn. Nejprve přidáme řádek do části kódu, kterou jsme označili „opakovat“. Tak najděte tu sekci. Vypadá to takto:: RetrySET /p Hádej = IF%Hádej%LSS%Odpověď%ECHO Moje číslo je vyšší. IF%Hádej%GTR%Odpověď%ECHO Moje číslo je nižší. IF%Hádej%==%Odpověď%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Opakujte Dobře, tento řádek přidáme hned za „ECHO“. (Když za ECHO vložíme tečku, ponechá prázdný řádek.) Zde je nový kód: IF %GuessNum %EQU 4 GOTO shutdownG Když přidáme tento řádek, sekce vypadá takto:: RetrySET /p Hádej = IF %Hádej % LSS%Odpověď%ECHO Moje číslo je vyšší. IF%Hádej%GTR%Odpověď%ECHO Moje číslo je nižší. IF%Hádej%==%Odpověď%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 Vypnutí GOTO GGOTO Retry Už by mělo být celkem zřejmé, co to dělá. Říká počítači, že pokud GuessNum EQUals 4, měl by přejít do části kódu označené „shutdownG“. Co tedy chceme, aby tato sekce vypnutí řekla? Zjevně to musí být označeno jako "shutdownG". Dále musí vypnout počítač. Příkaz k vypnutí je „SHUTDOWN -s“. Tím se počítač vypne, ale chceme do příkazu nějaké přidat. Přidáme „-f“. To způsobí ukončení všech programů a přidáme „-t 60“. To počítači řekne, aby zobrazil okno, a počkejte šedesát sekund, než se zavře. Také sem přidáme zprávu „-c“„“. které zobrazí zprávu v okně vypnutí. Po našem příkazu k vypnutí použijeme stejný kód, který máme výše, kód, který umožňuje našemu hráči vybrat čísla a poskytnout jim zpětnou vazbu. Takže náš kód pro vypnutí nyní vypadá takto:: shutdownGSHUTDOWN -s -f -t 60 -c "Pokračujte v hádání! Pokud neuhodnete správné číslo, počítač se vypne!": shutdownG1SET /p Hádej = IF %Hádej %LSS %Odpověď %ECHO Moje číslo je vyšší. IF %Hádej %GTR %Odpověď %ECHO Moje číslo je nižší. IF%Hádej%==%Odpověď%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1Nyní jsme nastavili počítač na VYPNUTÍ a zobrazení zprávy, ale musíme také sdělit počítač, aby zastavil vypnutí, pokud bylo zahájeno. Přidáme to tedy do sekce kódování označené „konec“. Tato sekce vypadá takto:: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Máte pravdu! Odpověď byla %Odpověď %ECHO Trvalo %GuessNum %Guesses. ECHO. PAUSECLSECHO Chtěli byste si znovu zahrát? 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 playagainChceme zastavit vypínání a děláme to příkazem „SHUTDOWN -a“. Přidáme tedy řádek, který vypadá takto: IF % GuessNum % GTR 4 SHUTDOWN -aPřidáme tento příkaz hned za štítek a počítač tak bude moci spustit příkaz SHUTDOWN -a pouze v případě, že hráč má provedl více než čtyři hádání a zahájil vypínání. Dobře! teď byste měli mít hru hotovou! V dalším kroku zajistíme, aby nebyly žádné chyby.

Krok 7: Poslední kroky

Závěrečné kroky
Závěrečné kroky

Dobře, teď, když jste spojili všechny ty kódování, pak budete mít něco, co vypadá nějak takto:: beginECHO Budu přemýšlet o čísle ECHO, o kterém přemýšlím ….. SET /a GuessNum = 0: pickASET / a Odpověď =%RANDOM%IF%Odpověď%GTR 20 GOTO pickAIF%Odpověď%EQU 0 GOTO pickAECHO Myslím na číslo mezi 1 a 20ECHO Hádej, jaké číslo myslím.: RetrySET /p Hádej = IF%Hádej %LSS%Odpověď%ECHO Moje číslo je vyšší. IF%Hádej%GTR%Odpověď%ECHO Moje číslo je nižší. IF%Hádej%==%Odpověď%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% Vypnutí EQU 4 GOTOGGOTO Opakujte: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Máte pravdu! Odpověď byla %Odpověď %ECHO Trvalo %GuessNum %Guesses. ECHO. PAUSECLSECHO Chtěli byste si znovu zahrát? 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 Děkujeme za hraní! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Pokračujte v hádání ! Pokud neuhodnete správné číslo, počítač se vypne! ": ShutdownG1SET /p Hádej = IF % Hádej % LSS % Odpověď % ECHO Moje číslo je vyšší. IF % Hádej % GTR % Odpověď % ECHO Moje číslo je Lower. IF%Guess%==%Odpověď%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO vypnutí G1 To by mělo být vše, co potřebujeme, že? Pokračujte tedy a uložte soubor.txt poznámkového bloku, který máte, jako GuessGame.bat. Ve skutečnosti to můžete pojmenovat, jak chcete, pokud na konec umístíte.bat. Dobře, klikněte na ikonu a spusťte program! Fungovalo to? Tak nějak. Dělá to divné věci, že? Ukázalo se, že když napíšeme Dávku takto, příkazový řádek ECHO zadá každý příkaz, který mu zadáme, stejně jako bychom je zadali do příkazového řádku. Hra tedy funguje, ale je trochu nepořádná a nejasná. Můžeme s tím něco udělat? Ano! Jediné, co musíme udělat, je zadat tento řádek na samém začátku našeho kódu: @ECHO OFF Toto říká počítači, aby vypnul ECHO. A znak @ při žebrání mu říká, aby vypnul ECHO pro každý příkaz. Pokud bychom vynechali @, pak by to vypnulo pouze ECHO pro jeden příkaz.

Krok 8: Hotovo

Gratulujeme! Právě jste napsali hru Batch file. Docela jednoduché, že? Pokud to zvládnete, pak můžete přijít na to, jak si s dávkovými soubory udělat celkem dost práce. Jen si s tím zahrajte, udělejte nějaké experimenty. Jen pro případ, že byste nemohli sehnat něco do práce, nebo pro případ, že bych ve všem tom kódování něco vynechal, dám vám soubor sem.

Doporučuje: