Оглавление:

Пакетные файлы: некоторые основы ..: 8 шагов
Пакетные файлы: некоторые основы ..: 8 шагов

Видео: Пакетные файлы: некоторые основы ..: 8 шагов

Видео: Пакетные файлы: некоторые основы ..: 8 шагов
Видео: КАК УСТРОЕН EXE ФАЙЛ? 2024, Июнь
Anonim
Пакетные файлы: некоторые основы…
Пакетные файлы: некоторые основы…

Это руководство научит вас некоторым основам написания командных файлов и покажет, как создать игру по угадыванию чисел с парой поворотов, просто чтобы было интересно …

Я выучил большую часть своих навыков командной строки и все свои операции по написанию пакетов из Интернета в целом и из Instuctables в частности. Я хотел бы поблагодарить пользователя Instructables Neodudeman за его замечательные инструкции по пакетной записи. Спасибо!

Шаг 1. Что такое пакетный файл?

Что такое командный файл?
Что такое командный файл?

Что ж, большинство моих читателей, наверное, уже знают, что такое командный файл, но на всякий случай….

Пакетный файл - это просто набор (пакет) команд MSDOS, которые выполняются последовательно, когда вы запускаете пакетный файл. Пакетные файлы начинаются как файлы.txt в блокноте и становятся исполняемыми, когда вы сохраняете их как что-то с расширением.bat. В общем, все, что вы делаете, это записываете файл в Блокнот, а затем сохраняете его, скажем, как «Instructable.bat». Как только.bat будет помещен в конец имени файла, появится красивый новый файл, названный так, как вы его назвали, с красивым значком в виде шестеренки. Хорошо, теперь, когда мы знаем, что это за командные файлы, приступим к написанию!

Шаг 2: основные команды

Основные команды
Основные команды
Основные команды
Основные команды
Основные команды
Основные команды
Основные команды
Основные команды

Хорошо, вам нужно выучить несколько команд. Итак, сначала откройте командную строку MSDOS. Откройте стартовое окно, нажмите «Выполнить», введите «cmd.exe» и нажмите «Выполнить». Хорошо. Сначала мы рассмотрим переменные. Переменные - это числа, слова или другие вещи, которые (что очевидно) меняются. Командная строка имеет функцию переменной. В нем есть уже установленные переменные, такие как TIME, DATE и некоторые другие. Однако большинство переменных вы можете установить самостоятельно. Щелкните окно командной строки и введите: SET variable = random. На самом деле не имеет значения, пишете ли вы «SET» с заглавной буквы или нет, но я предпочитаю использовать все мои команды с заглавной буквы, особенно при написании командных файлов. Это просто упрощает понимание того, что вы делаете. Теперь нажмите Enter. Повезло тебе! Вы установили свою первую переменную! Но что с этим делать? Кого волнует, что все, что мы можем сделать, это правильно установить переменную? Что ж, как оказалось, мы можем сделать гораздо больше, но сначала давайте просто попробуем заставить компьютер сказать нам, как установлена переменная. Хорошо, чтобы компьютер прочитал значение переменной, мы вводим имя переменной, в данном случае «переменная», и помещаем имя внутри меток%, например:% variable%. Вперед, введите это и нажмите Enter:% variable% Странная ошибка, да? Компьютер сказал, что «переменная не распознается как внутренняя или внешняя команда, работающая программа или командный файл». Так почему же возникла эта ошибка? Ну, по сути, это вызвало эту ошибку, потому что командная строка обрабатывает значение этой переменной так, как если бы вы ввели ее сами. Итак, когда вы набрали% variable%, компьютер подумал, что вы говорите ему выполнить команду "random". Очевидно, нам нужно что-то еще, чтобы увидеть значение нашей переменной. Здесь на помощь приходит команда ECHO. Команда ECHO просто сообщает командной строке эхо или произнесение всего, что вы набрали после ECHO. Итак, если мы введем команду ECHO перед нашей переменной, мы должны получить то, что хотим: ECHO% variable% Вот! Теперь у нас есть то, что мы хотим! Компьютер печатает «случайным образом». Очевидно, это было то значение, которое мы ввели для нашей переменной, так что это именно тот результат, который нам нужен. На следующем шаге мы узнаем больше о переменных и о том, как их использовать.

Шаг 3. Использование команды SET и переменных

Использование команды SET и переменных
Использование команды SET и переменных
Использование команды SET и переменных
Использование команды SET и переменных

Хорошо, теперь, когда мы знаем, что такое переменные, что еще мы можем с ними сделать? Что ж, мы можем заниматься математикой, мы можем использовать их в качестве условий для написания программ и командных файлов, мы можем выполнять основную арифметику, мы можем выполнять команды и многое другое. Мы не будем вдаваться в подробности того, что вы можете делать с переменными, но обсудим некоторые важные аспекты функции переменных. Во-первых, команда SET сама по себе создает только строковые переменные. Это означает, что он не будет добавлять или выполнять какие-либо другие вычисления. Если бы вы сказали компьютеру добавить 1 к переменной со значением 1, он дал бы вам значение 1 + 1. Если мы хотим, чтобы он действительно сложил два числа, нам нужно поставить «/ a» после команды SET. Для этого мы набираем: SET / a varible = (value). Теперь предположим, что мы хотим поместить переменную в наш пакетный файл, который предоставит пользователь. Мы могли бы захотеть сделать это, если бы вычисляли значения в соответствии с формулой или, в нашем случае, если мы хотим, чтобы пользователь угадал число, которое придумал компьютер. Чтобы сгенерировать указанную пользователем переменную, мы добавляем / p после команды SET и оставляем область после = blank: SET / p variable = Вот и все! Переменная, указанная пользователем! Если бы мы поместили эту строку в пакетный файл, пакет работал бы до тех пор, пока не достигнет этой строки, а затем он будет ждать ввода данных пользователем, прежде чем продолжить. Еще одна интересная особенность / p заключается в том, что он полностью игнорирует / a. Когда мы включаем / p, мы можем просто опустить / a. Следующее, что мы узнаем о том, как он производит случайные величины. Если мы хотим, чтобы компьютер выбрал случайное число для переменной, мы просто набираем команду SET, за которой следует переменная, а затем устанавливаем для переменной значение% RANDOM%. Еще раз, это не обязательно должно быть капиталом, но мне все равно нравится это делать. Итак, мы вводим: SET / a variable =% RANDOM% Очевидно, что это не указанная пользователем переменная, поэтому мы включаем / a. Прохладный! Итак, теперь мы знаем, как получить случайное число! Но насколько это случайно? Что ж, оказывается, что компьютер выбирает число от 0 до примерно 37 000. Я не уверен, какое именно число. Но что, если нам нужно меньшее число? Предположим, как в этой инструкции, нам нужно управляемое число для чего-то вроде игры в угадайку? Ну вот тут и появляется команда IF….

Шаг 4: Команды IF и GOTO. Сила в руках пакетного писателя

Команды IF и GOTO. Сила в руках пакетного писателя
Команды IF и GOTO. Сила в руках пакетного писателя

Итак, мы хотим получить управляемое число. Предположим, мы хотим создать случайное число от 1 до 20. Хорошо, это легко сказать, но значение RANDOM выбирает число от 1 до 37 000. Это то, для чего мы собираемся использовать IF. Команда ЕСЛИ в основном говорит ЕСЛИ что-то происходит, или ЕСЛИ что-то равно или не равно определенному значению, ТО сделайте ЭТО. Итак, IF устанавливает условные команды. Мы хотим получить число меньше двадцати, но больше единицы, очевидно, мы начнем с того, что скажем компьютеру выбрать случайное число, но затем нам нужно будет указать ему выбрать новое. номер, если выбранный номер не соответствует нашим требованиям. Именно здесь на помощь приходит команда GOTO. GOTO просто указывает компьютеру перейти к определенной метке в коде. Ярлыки выглядят так::: pick Любое слово, помещенное после двоеточия, становится ярлыком, к которому мы можем получить доступ с помощью команды GOTO. Итак, если мы хотим перейти к разделу кода с меткой «выбрать» над ним, мы просто набираем: GOTO pickAlright, так что давайте продолжим наше кодирование. Мы уже сказали компьютеру выбрать случайное число, поэтому набрали: SET / a answer =% RANDOM% Теперь мы хотим уменьшить это число до меньшего диапазона. Итак, мы вызовем команду IF. Что-то вроде этого должно помочь: IF% answer% GTR 20 GOTO pick Это говорит компьютеру, что нужно GOTO выбрать, ЕСЛИ ответ GReaTer, чем 20. Мы также можем поставить любое из этих условий для этой команды IF: EQU - EqualNEQ - Not EqualLSS - Меньше, чем GTR - Больше, чем LEQ - Меньше или равно ToGEQ - Больше или равно ToThus, с IF, GOTO, метками и этими сокращениями, мы можем манипулировать нашим командным файлом любым способом. Хорошо, теперь у нас есть случайное число меньше двадцати, и вот что у нас есть на данный момент: pickSET / a answer =% RANDOM% IF% answer% GTR 20 GOTO pick Теперь давайте убедимся, что компьютер не t выберите 0 для ответа.:pickSET / 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 Угадай, какой номер я думаю of. (Этот раздел повторяется до тех пор, пока не будет установлено наше случайное число, а затем ECHO выполнит инструкции для нашего игрока): RetrySET / p Guess = IF% Guess% LSS% Answer% ECHO My Number is Higher. IF% Guess% GTR% Answer% ECHO Мое число меньше. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO Retry (В этом разделе компьютер запрашивает ввод пользователя, а затем повторяется непрерывно, пока пользователь не выберет правильный номер. Затем он переходит к этикетке КОНЕЦ): ENDECHO Вы правы! Ответ был% Answer% ECHO. Потребовалось% GuessNum% Guesses. ECHO. PAUSECLSECHO. Хотели бы вы снова сыграть? ECHO Y / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% воспроизвести% GTR y GOTO воспроизвести снова IF% play% LSS y GOTO воспроизвести снова IF% play% GTR n GOTO воспроизвести снова IF% play% LSS n GOTO воспроизвести снова чтобы сыграть снова. Обратите внимание, что мы можем использовать EQU, GTR и LSS с буквами.) Хорошо! Если вы просто скопируете этот код, у вас будет настоящая игра в угадывание. Ничего особенного, но, эй, это лучше, чем может сделать большинство людей. Но мы собираемся добавить небольшую изюминку, просто чтобы было интересно….

Шаг 6: поворот

Твист
Твист
Твист
Твист
Твист
Твист

Сейчас у нас есть рабочая игра, но мы хотим сделать ее более интересной. Как насчет того, чтобы побудить нашего игрока угадывать правильное число? Как насчет того, чтобы сделать что-нибудь вроде … выключить их компьютер, если они не угадают номер? Было бы здорово! Хорошо, теперь мы добавим небольшой код, чтобы внести эти изменения. Во-первых, мы собираемся добавить строку в раздел кода, который мы пометили как «повторить попытку». Так что найдите этот раздел. Выглядит это так:: RetrySET / p Guess = IF% Guess% LSS% Answer% ECHO Мое число выше. IF% Guess% GTR% Answer% ECHO My Number меньше. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO Retry Хорошо, мы собираемся добавить эту строку сразу после «ECHO». (Когда мы ставим точку после ECHO, остается пустая строка.) Вот новый код: IF% GuessNum% EQU 4 GOTO shutdownG Когда мы добавляем эту строку, раздел выглядит следующим образом: RetrySET / p Guess = IF% Guess% LSS% Ответ% ECHO Мое число выше. IF% Guess% GTR% Answer% ECHO My Number ниже. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdown GGOTO Retry К настоящему моменту должно быть довольно очевидно, что это делает. Он сообщает компьютеру, что если GuessNum EQUAL 4, он должен перейти в раздел кода, помеченный "shutdownG". Итак, что мы хотим сказать в этом разделе о завершении работы? Ну, очевидно, он должен быть помечен как «shutdownG». Затем он должен выключить компьютер. Команда выключения - «SHUTDOWN -s». Это выключит компьютер, но мы хотим добавить что-то в команду. Мы добавим "-f". Это принудительно закроет все программы, и мы добавим "-t 60". Это скажет компьютеру отобразить окно и подождать шестьдесят секунд, чтобы закрыть его. Мы также добавим сюда сообщение "-c". который отобразит сообщение в окне выключения. После нашей команды выключения мы добавим тот же код, что и выше, код, который позволяет нашему игроку выбирать числа и дает им обратную связь. Итак, наш код выключения теперь выглядит так: shutdownGSHUTDOWN -s -f -t 60 -c «Продолжайте угадывать! Если вы не угадаете правильное число, компьютер выключится!»: shutdownG1SET / p Guess = IF% Guess% LSS% Answer% ECHO My Number is Higher. IF% Guess% GTR% Answer % ECHO My Number ниже. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1Теперь мы настроили компьютер на ВЫКЛЮЧЕНИЕ и отображаем сообщение, но мы также должны сообщить компьютер, чтобы остановить выключение, если оно было инициировано. Итак, мы добавим это в раздел кодирования с пометкой «конец». Этот раздел выглядит так: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO Вы правы! Ответ был% Answer% ECHO. Потребовалось% GuessNum% Guesses. ECHO. PAUSECLSECHO. Хотели бы вы снова сыграть? 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 playagain IF% play% LSS n GOTO playagain Мы хотим остановить выключение, и мы делаем это с помощью команды «SHUTDOWN -a». Итак, мы добавим строку, которая выглядит так: IF% GuessNum% GTR 4 SHUTDOWN -a Мы добавим эту команду сразу после метки, и это скажет компьютеру запустить команду SHUTDOWN -a, только если игрок сделал более четырех предположений и начал отключение. Хорошо! Вы должны закончить свою игру сейчас! МЫ позаботимся о том, чтобы на следующем этапе не было ошибок.

Шаг 7: Заключительные шаги

Заключительные шаги
Заключительные шаги

Хорошо, теперь, если вы соединили все это кодирование, у вас будет что-то похожее на это: beginECHO Я собираюсь придумать числоECHO, я думаю ….. SET / a GuessNum = 0: pickASET / a Ответ =% RANDOM% IF% Answer% GTR 20 GOTO pickAIF% Answer% EQU 0 GOTO pickAECHO Я думаю о числе от 1 до 20ECHO Угадай, о каком номере я думаю.:RetrySET / p Guess = IF% Guess % LSS% Ответ% ECHO Мое число выше. IF% Guess% GTR% Answer% ECHO My Number ниже. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1IF% GuessNum% EQU 4 GOTO shutdownGGOTO Retry: ENDIF% GuessNum% GTR 4 SHUTDOWN -aECHO Вы правы! Ответ был% Answer% ECHO. Потребовалось% GuessNum% Guesses. ECHO. PAUSECLSECHO. Хотели бы вы снова сыграть? ECHO Y / N? SET / p play = IF% play% EQU y GOTO beginIF% play% EQU n GOTO closeIF% играть% GTR y GOTO play снова IF% play% LSS y GOTO play снова IF% play% GTR n GOTO play снова IF% play% LSS n GOTO playagain: closeECHO Спасибо за игру! PAUSEEXIT cmd: shutdownGSHUTDOWN -s -f -t 60 -c "Продолжайте угадывать ! Если вы не угадаете правильный номер, компьютер выключится! ": ShutdownG1SET / p Guess = IF% Guess% LSS% Answer% ECHO My Number is Higher. IF% Guess% GTR% Answer% ECHO My Number is Lower. IF% Guess% ==% Answer% GOTO ENDECHO. SET / a GuessNum =% GuessNum% + 1GOTO shutdownG1 Это должно быть все, что нам нужно, верно? Итак, продолжайте и сохраните этот файл блокнота.txt, который у вас есть, как GuessGame.bat. На самом деле, вы можете называть его как хотите, если в конце поставите.bat. Итак, нажмите на значок и запустите программу! Это сработало? Ну вроде. Он делает какие-то странные вещи, не так ли? Оказывается, когда мы пишем пакет, подобный этому, командная строка ECHO выполняет каждую команду, которую мы ей даем, точно так же, как если бы мы ввели их в командную строку. Итак, игра работает, но немного запутана и непонятна. Можем ли мы что-нибудь с этим поделать? Ага! Все, что нам нужно сделать, это ввести эту строку в самом начале нашего кода: @ECHO OFF Это говорит компьютеру выключить ECHO. А знак @ в начале сообщения говорит ему выключить ECHO для каждой команды. Если мы оставим этот @, то он выключит ECHO только для одной команды.

Шаг 8: Готово

Поздравляю! Вы только что написали игру с пакетным файлом. Довольно просто, не правда ли? Если вы можете справиться с этим, вы можете понять, как это сделать с пакетными файлами. Просто поиграйте с ним, проведите несколько экспериментов. На всякий случай, если вы не смогли заставить что-то работать, или если я что-то упустил во всей этой кодировке, я дам вам файл здесь.

Рекомендуемые: