Съдържание:
- Стъпка 1: Какво представлява пакетният файл?
- Стъпка 2: Основни команди
- Стъпка 3: Използване на командата SET и променливите
- Стъпка 4: Командите IF и GOTO. Сила в ръцете на писателя
- Стъпка 5: Месото на нашата игра
- Стъпка 6: Обратът
- Стъпка 7: Последни стъпки
- Стъпка 8: Всичко е готово
Видео: Пакетни файлове: Някои основи ..: 8 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
Този Instructable ще ви научи на някои основи на писането на пакетни файлове и ще ви покаже как да създадете игра за отгатване на числа с няколко обрата, само за да поддържате нещата интересни …
Научих повечето от уменията си за командния ред и цялото си пакетно писане от интернет като цяло и по -специално от Instuctables. Бих искал да благодаря на потребителя на Instructables Neodudeman за страхотните му инструкции за групово писане. Благодаря!
Стъпка 1: Какво представлява пакетният файл?
Е, повечето от моите читатели вероятно вече знаят какво представлява пакетният файл, но за всеки случай …
Пакетният файл е просто колекция (партида) от MSDOS команди, които се изпълняват последователно, когато стартирате пакетния файл. Пакетните файлове започват като.txt файлове в бележника и стават изпълними файлове, когато ги запишете като нещо с разширение.bat. Така че по принцип всичко, което правите, е да напишете файл в Notepad и след това да го запишете като, да речем, "instructable.bat". След като.bat се постави в края на името на файла, ще се появи хубав, нов файл, наречен както сте го кръстили, с хубава икона, която изглежда. Добре, сега като знаем какви са тези пакетни файлове, нека да започнем да пишем!
Стъпка 2: Основни команди
Добре, ще трябва да научите няколко команди. Така че първо отворете командния ред на MSDOS. Отворете стартовия прозорец, щракнете върху изпълнение, въведете "cmd.exe" и след това щракнете върху изпълнение. Добре. Първо, ще разгледаме променливите. Променливите са числа, думи или други неща, които (донякъде очевидно) варират. Командният ред има променлива функция. Той има някои променливи, които вече са зададени, като TIME, DATE и няколко други. Повечето променливи обаче можете да зададете сами. Щракнете върху прозореца на командния ред и въведете: SET променлива = произволна Наистина няма значение дали пишете с главна буква "SET" или не, но аз обичам да изписвам с главни букви всичките си команди, особено при писане на пакетни файлове. Просто ви улеснява да кажете какво правите. Сега натиснете enter. Добре за теб! Вие сте задали първата си променлива! Но какво можем да направим с него? кой се интересува дали всичко, което можем да направим, е да зададем променливата нали? Е, както се оказа, можем да направим много повече от това, но първо, нека просто се опитаме да накараме компютъра да ни каже каква е променливата. Добре, за да накараме компютъра да прочете стойността на променлива, ние въвеждаме името на променливата, в този случай "променлива" и поставяме името вътре в %марки, по следния начин: %променлива %. Продължете и въведете това и натиснете enter:%variable%Странна грешка, а? Компютърът каза, че „променливата“не се разпознава като вътрешна или външна команда, работеща програма или партиден файл. “И така, защо даде тази грешка? Е, в общи линии той даде тази грешка, защото командният ред третира стойността на тази променлива, сякаш сте я въвели сами. Така че, когато сте въвели %променлива %, компютърът е помислил, че му казвате да изпълни командата "произволен". Очевидно се нуждаем от нещо друго, за да видим стойността на нашата променлива. Тук идва командата ECHO. Командата ECHO просто казва на командния ред да повтори или да каже каквото и да сте въвели след ECHO. Така че, ако въведем командата ECHO преди нашата променлива, трябва да получим това, което искаме: ECHO %променлива %Там! Сега имаме това, което искаме! Компютърът отпечатва "произволно". Очевидно това беше стойността, която въведохме за нашата променлива, така че това е резултатът, който искахме. В следващата стъпка ще научим повече за променливите и как можем да ги използваме.
Стъпка 3: Използване на командата SET и променливите
Добре, сега, когато знаем какви са променливите, какво друго можем да направим с тях? Е, можем да правим математика, можем да ги използваме като условия за писане на програми и пакетни файлове, можем да изпълняваме основна аритметика, можем да изпълняваме команди и много други. Няма да навлизаме във всичко, което можете да направите с променливи, но ще обсъдим някои важни аспекти на функцията на променливата. Първо, командата SET сама по себе си произвежда само променливи от низ. Това означава, че няма да добавя или прави друга математика. Ако трябва да кажете на компютъра да добави 1 към променлива със стойност 1, това ще ви даде стойност 1+1. Ако искаме действително да добави двете числа, трябва да поставим „/a“след командата SET. Затова въвеждаме: SET /a variable = (value) Сега, да предположим, че искаме да поставим променлива в нашия пакетен файл, която потребителят ще предостави. Може да искаме да направим това, ако изчисляваме стойности по формула, или в нашия случай, ако искаме потребителят да познае число, което компютърът е измислил. За да генерираме променлива, посочена от потребителя, добавяме a /p след командата SET и оставяме областта след = празно: SET /p променлива = Ето го! Променлива, посочена от потребителя! Ако трябваше да поставим този ред в партиден файл, тогава партидата ще се изпълнява, докато достигне този ред, и след това ще изчака въвеждането от потребителя, преди да продължи. Другото готино нещо за /p е, че то напълно отрича /a. Когато включим a /p, можем просто да пропуснем /a. Следващото нещо, което ще научим за него, създава случайни променливи. Ако искаме компютърът да избере произволно число за променлива, просто въвеждаме командата SET, последвана от променливата и след това задаваме променливата на равна %RANDOM %. За пореден път не е необходимо да е капитал, но все пак обичам да го правя. И така, въвеждаме: SET /a променлива =%RANDOM%Очевидно това не е потребителска променлива, затова включваме /a. Готино! Така че сега знаем как да създадем произволно число! Но колко е случаен? Е, оказва се, че компютърът избира число между 0 и някъде около 37 000. Не съм сигурен какъв е точния номер. Но какво ще стане, ако искаме по -малък брой? Да предположим, че както в този Instructable, искаме управляем номер за нещо като игра за отгатване? Е, тук идва командата IF …
Стъпка 4: Командите IF и GOTO. Сила в ръцете на писателя
И така, искаме да създадем управляем номер. Да предположим, че искаме да създадем произволно число между 1 и 20. Добре, това е лесно да се каже, но стойността RANDOM избира число между 1 и 37 000. За това ще използваме IF. Командата IF основно казва, ако нещо се случи, или ако нещо е равно или не е равно на определена стойност, ТОГАВА направете това. И така, IF задава условни команди. Искаме да създадем число, което е по -малко от двадесет, но по -голямо от едно, очевидно ще започнем с това да кажем на компютъра да избере произволно число, но след това ще трябва да можем да му кажем, за да избере ново номер, ако избраният от него номер не отговаря на нашите изисквания. Това е мястото, където влиза командата GOTO. GOTO просто казва на компютъра да отиде на определен етикет в кода. Етикетите изглеждат така:: pickAny дума, поставена след двоеточие, става етикет, до който можем да получим достъп с командата GOTO. Така че, ако искаме да отидем в раздела на кода с етикета "pick" над него, просто въвеждаме: GOTO pickAlright, така че нека продължим с кодирането. Вече казахме на компютъра да избере произволно число, затова въведохме: SET /a answer =%RANDOM%Сега искаме да изтеглим това число до по -малък диапазон. Така че ще извикаме командата IF. Нещо подобно би трябвало да свърши работа: IF % answer % GTR 20 GOTO pickThis казва на компютъра да GOTO pick IF отговорът е GReaTer than 20. Можем също да поставим някое от тези условия на тази команда IF: EQU - EqualNEQ - Not EqualLSS - По -малко от GTR - по -голямо от THLEQ - по -малко или равно на ToGEQ - по -голямо или равно на ToThus, с IF, GOTO, етикети и тези абревиатури, можем да манипулираме нашия пакетен файл по какъвто и да е начин. Добре, така че сега имаме случайно число под двадесет и ето какво имаме досега:: pickSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickNow, нека се уверим, че компютърът не t изберете 0 за отговора.: picSET /a answer =%RANDOM%IF%answer%GTR 20 GOTO pickIF $ answer%EQU 0 GOTO pickOkay! Сега имаме използваем номер между 1 и 20. Нека преминем към месото на партидата.
Стъпка 5: Месото на нашата игра
Добре, имаме случайно число. Искаме също да преброим колко предположения прави нашият играч, затова ще зададем друга променлива: SET /a guessnum = 0 Това задава променливата geussnum на нула и ние й дадохме параметъра /a, така че ще можем да добавим към него всеки път, когато потребителят предположи. Добре. Имаме произволно число и сме задали броя на предположенията. Сега имаме нужда от някои инструкции и трябва да имаме малко потребителско въвеждане за броя на предположенията. Вече трябва да разберете по -голямата част от това, така че просто ще ви покажа кода:: beginECHO Ще мисля за номер ECHO Мисля ….. SET /a GuessNum = 0 (Това ECHO са тези два реда и задава броя на предположенията на 0): pickASET /a Answer =%RANDOM%IF%Answer%GTR 20 GOTO pickAIF%Answer%EQU 0 GOTO pickAECHO Мисля за число между 1 и 20ECHO Познайте какъв номер мисля на. (Този раздел се затваря, докато не зададе произволния ни брой, а след това ECHOs инструкциите за нашия плейър): RetrySET /p Предположение = IF %Guess %LSS %Отговор %ECHO Моят номер е по -висок. IF %Предполагам %GTR %Отговор % ECHO Моят номер е по -нисък. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Retry (Този раздел казва на компютъра да поиска въвеждане от потребителя и след това циклично, докато потребителят избере правилен номер. След това отива към етикета END): ENDECHO Вие сте прави! Отговорът беше %Answer %ECHO Беше нужно %GuessNum %Guesses. ECHO. PAUSECLSECHO Бихте ли искали да играете отново? ECHO Y /N? SET /p play = IF %play %EQU y GOTO startIF %play %EQU n GOTO closeIF % възпроизвеждане% GTR y GOTO възпроизвеждане отновоIF% възпроизвеждане% LSS y GOTO възпроизвеждане отновоIF% възпроизвеждане% GTR n GOTO възпроизвеждане отновоIF% възпроизвеждане% LSS n GOTO възпроизвеждане отново (Това е нашата крайна секция. Това казва на потребителя колко предположения са взели и след това пита дали би искал за да играете отново. Забележете, че можем да използваме EQU, GTR и LSS и с букви.) Добре! Ако просто сте копирали този код, ще имате законна игра за отгатване. Не е наистина фантазия, но хей, по -добре е, отколкото повечето хора могат да направят. Но ще добавим малко обрат, само за да направим нещата интересни …
Стъпка 6: Обратът
В момента имаме работеща игра, но искаме да я направим малко по -интересна. Какво ще кажете за добавяне на някакъв стимул за нашия играч да познае правилния номер? Какво ще кажете да направим нещо като.. изключим компютъра им, ако не познаят номера? Това би било доста готино! Добре, сега ще добавим малко код, за да направим тези промени. Първо, ще добавим ред в раздела на кода, който сме означили като „повторен опит“. Така че отидете да намерите този раздел. Изглежда така:: RetrySET /p Guess = IF%Guess%LSS%Answer%ECHO Моят номер е по -висок. IF%Guess%GTR%Answer%ECHO Моят номер е по -нисък. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO Retry Добре, ще добавим този ред веднага след „ECHO“. (Когато поставим точка след ECHO, тя оставя празен ред.) Ето новия код: IF %GuessNum %EQU 4 GOTO изключване G Когато добавим този ред, секцията изглежда така:: RetrySET /p Guess = IF %Guess % LSS%Отговор%ECHO Моят номер е по -висок. IF%Предполагам%GTR%Отговор%ECHO Моят номер е по -нисък. IF%Предполагам%==%Отговор%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum%EQU 4 GOTO изключванеGGOTO Retry Досега трябва да е доста очевидно какво прави това. Той казва на компютъра, че ако GuessNum EQUAL 4, той трябва да отиде в раздела с код, обозначен като "shutdownG". И така, какво искаме да каже този раздел за изключване? Е, очевидно трябва да бъде означен като "shutdownG". След това трябва да изключи компютъра. Командата за изключване е "SHUTDOWN -s". Това ще изключи компютъра, но искаме да добавим някои към командата. Ще добавим "-f". Това ще принуди всички програми да се затворят и ще добавим „-t 60“. Това ще каже на компютъра да покаже прозорец и да изчака шестдесет секунди да се затвори. Тук също ще добавим "-c" съобщение "". което ще покаже съобщение в прозореца за изключване. След нашата команда за изключване, ние ще използваме същия код, който имаме по -горе, кода, който позволява на нашия играч да избира числа и им дава обратна връзка. Така че нашият код за изключване сега изглежда така:: shutdownGSHUTDOWN -s -f -t 60 -c "Продължавайте да гадаете! Ако не познаете правилния номер, компютърът ще се изключи!": shutdownG1SET /p Предполагам = АКО %Предполагам %LSS %Отговор %ECHO Моят номер е по -висок. IF %Предполагам %GTR %Отговор %ECHO Моят номер е по -нисък. IF%Предполагам%==%Отговор%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO изключванеG1 Сега сме настроили компютъра на SHUTDOWN и показваме съобщение, но също така трябва да кажем на компютър, за да спре изключването, ако е било инициирано. Така че, ще добавим това към раздела за кодиране с надпис "край". Този раздел изглежда така:: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Прави сте! Отговорът беше %Answer %ECHO Беше нужно %GuessNum %Guesses. ECHO. PAUSECLSECHO Бихте ли искали да играете отново? 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 Искаме да спрем изключването и правим това с командата "SHUTDOWN -a". И така, ще добавим ред, който изглежда така: IF % GuessNum % GTR 4 SHUTDOWN -aЩе добавим тази команда веднага след етикета и това ще каже на компютъра да изпълни командата SHUTDOWN -a само ако играчът има направи повече от четири предположения и започна изключване. Добре! трябва да завършите играта си сега! Ние ще се уверим, че няма грешки в следващата стъпка.
Стъпка 7: Последни стъпки
Добре, сега ако сте нанизали цялото това кодиране, тогава ще имате нещо, което изглежда така::: beginECHO Ще мисля за номерECHO Мисля ….. SET /a GuessNum = 0: pickASET / a Answer =%RANDOM%IF%Answer%GTR 20 GOTO pickAIF%Answer%EQU 0 GOTO pickAECHO Мисля за число между 1 и 20ECHO Познайте за кое число мисля. %LSS%Отговор%ECHO Моят номер е по -висок. IF%Предполагам%GTR%Отговор%ECHO Моят номер е по -нисък. IF%Предполагам%==%Отговор%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1IF%GuessNum% EQU 4 GOTO изключванеGGOTO Повторен опит: ENDIF % GuessNum % GTR 4 SHUTDOWN -aECHO Прави сте! Отговорът беше %Answer %ECHO Беше нужно %GuessNum %Guesses. ECHO. PAUSECLSECHO Бихте ли искали да играете отново? ECHO Y /N? SET /p play = IF %play %EQU y GOTO startIF %play %EQU n GOTO closeIF % възпроизвеждане% GTR y GOTO възпроизвеждане отновоIF% възпроизвеждане% LSS y GOTO възпроизвеждане отновоIF% възпроизвеждане% GTR n ОТГРАНЕ възпроизвеждане отновоIF% възпроизвеждане% LSS n GOTO възпроизвеждане отново: closeECHO Благодаря ви за играта! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Продължете да гадаете ! Ако не познаете правилния номер, компютърът ще се изключи! ": ShutdownG1SET /p Guess = IF % Guess % LSS % Answer % ECHO Моят номер е по -висок. IF % Guess % GTR % Answer % ECHO Моят номер е Lower. IF%Guess%==%Answer%GOTO ENDECHO. SET /a GuessNum =%GuessNum%+1GOTO shutdownG1Това трябва да е всичко, от което се нуждаем, нали? Така че, продължете напред и запазете този.txt файл на бележника, който имате като GuessGame.bat. Всъщност можете да го наречете както искате, стига да поставите.bat в края. Добре, така че кликнете върху иконата и стартирайте програмата! Проработи ли? Ами така или иначе. Прави някакви странни неща, нали? Оказва се, че когато пишем партида по този начин, командният ред ECHO изпълнява всяка команда, която му даваме, точно сякаш ги въвеждаме в командния ред. Така че играта работи, но е малко объркана и неясна. Можем ли да направим нещо по въпроса? Да! Всичко, което трябва да направим, е да напишем този ред в самото начало на нашия код: @ECHO OFF Това казва на компютъра да изключи ECHO. И знакът @ при просенето му казва да изключи ECHO за всяка команда. Ако оставим този @ out, тогава той ще изключи ECHO само за една команда.
Стъпка 8: Всичко е готово
Честито! Току -що сте написали игра с партиден файл. Доста просто нали? Ако можете да се справите с това, тогава можете да разберете как да се справите доста с пакетните файлове. Просто играйте с него, направете някои експерименти. Само в случай, че не можете да накарате нещо да работи, или в случай, че съм пропуснал нещо в цялото това кодиране, ще ви дам файла тук.
Препоръчано:
Проста система за влизане в пакетни файлове с лента за зареждане: 5 стъпки
Проста система за влизане в партиден файл с лента за зареждане: Тук споделяме пакетния файл за система за вход с лента за зареждане. Ще ви покажем код и също така ще ви покажем как да използвате. Можете също да посетите нашия блог за повече кодове на пакетни файлове. FFLocker 1.0: http://errorcode401.blogspot.in/2013/06/FFlocker-1.0.html Rar
Спестяващи време пакетни файлове: 5 стъпки
Спестяващи време пакетни файлове: Това са нещата, които научих. Просто представям това на всеки, който има проблеми с създаването на пакетни файлове. Забавлявай се
Някои готини пакетни приложения: 6 стъпки
Някои готини пакетни приложения: Това е първият ми инструктаж, така че няма оплаквания! Бих искал да благодаря на neodudeman за инструкциите му, те помогнаха много. В тази инструкция ще ви покажа някои доста изящни приложения с групови команди. Ако имате някакви проблеми или промени
Пакетни файлове, които отварят множество програми!: 5 стъпки
Пакетни файлове, които отварят множество програми!: Добре, това е доста разбираемо. Това може да бъде особено полезно, ако сте на работа и преминавате през процес, при който трябва да отворите например; Microsoft Word, Microsoft PowerPoint, Microsoft Outlook, Internet Explorer и др
Полезно търсене на пакетни файлове: 6 стъпки
Полезно търсене на групови файлове: Здравейте, Това е първият ми инструктаж. така че, ако направих грешка, моля, побързайте към мен. Бях направил прост търсач на пакетни файлове, за да си помогна сам да намеря необходимите ми файлове в моята HDD джунгла. Тази партида е много по -бърза от стандартното търсене с Windows (windows, но