- Командные или пакетные файлы (command/batch files)
- Вывод сообщений
- Обработка аргументов
- Комментарии
- Некоторые полезные примеры
- Пример архивации WinRar
- Пример копирования
- Имена файлов и путь
- Переменные
- Ветвление (If)
- Метки
- Цикл For
- Дополнительный функционал
- Задание для разработки
- Некоторые полезные ссылки
- Командныe файлы Windows
Командные или пакетные файлы (command/batch files)
Предостережение! Данная тема должна осваиваться пользователем(!) именно в том объеме, который приведен здесь, то есть — в единицах процентов. Максимум — еще пару «уровней» вглубь, если возникнет такая потребность. Углубление знаний до уровня, близкого к полному, заведет в тупик. Подобные задачи следует решать с помощью языков программирования высокого уровня, что упростит решения и значительно увеличит скорость, но относится к сфере профессионального выполнения.
По-прежнему, как 10, 20 и 30 лет назад, у пользователя сохраняется возможность индивидуально оптимизировать свою работу, переложив часть интеллектуального труда на плечи компьютера.
Для этого можно использовать так называемые командные или пакетные файлы, без преувеличений, в десятки и сотни раз облегчающие работу с файловой системой. Никакой разработчик никогда не сделает этого за вас, так как у всех свои индивидуальные потребности.
Без какого-либо сомнения, следует говорить, что сегодня в мире ежедневно запускаются миллиарды таких файлов. В том числе разработанные десятилетия назад. И никто ничего менять не собирается!
Эти файлы являются текстовыми, имеют расширение bat или cmd и содержат простейшие команды, понимаемые операционной системой, которые могут быть выполнены в командной строке.
Основные области применения.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Для меня будет крайне радостно, если вы воспользуетесь хотя бы вариантами 2—4. От вариантов 7 и 8 вам, скорее всего, не уйти.
Какое из двух приведенных расширений использовать? Расширение bat использовалось для DOS (16-разрядный интерпретатор command.com), а cmd возникло для интерпретатора командной строки cmd.exe. Поэтому ряд действий может не производиться из bat-файла, либо исполняться медленнее, хотя большинство пользователей этого никогда не заметит. А bat-файлы рассматриваются Windows в качестве командных.
Некоторые символы в командных файлах нельзя использовать в строках, не заключенных в кавычки, так как они имеют специальное назначение. Например: ( ) ^ & |.
Внимание! Русский текст для корректного исполнения/отображения должен быть набран в кодировке DOS (ASCII), то есть CP866. В FAR вы должны видеть ANSI (Win) на месте подсказки к клавише F8 . Последняя является переключателем кодировки. Либо переопределить ее вызовом списка кодировок клавишей Shift+F8 . Поскольку Блокнот такой возможности не поддерживает, выводы можете сделать сами.
Важный момент связан с запуском неправильно работающей и/или зависшей программой.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Пример (очень глупый, зато и очень наглядный):
Разберем программу построчно.
@echo off (отключить вывод сообщений)
cls (очистить экран, от CLear Screen)
title Тестирование пакетного файла (Заголовок окна, о котором большинство в спешке и рутине забывает. Естественно, для сиюминутных задач это будет излишеством.)
echo Интересно. (Просто бла-бла на экране)
echo. (Точка означает вывод пустой строки, то есть зрительное отделение)
echo Запуск Блокнота (Информация для пользователя)
start notepad (Запуск программы)
Wordpad (Запуск программы. Cлово start опущено. Расширение (exe) не указано, как и для Блокнота, так как программы находятся в папках, описанных системной переменной PATH.)
pause (выведет фразу «Press any key to continue. » и будет ожидать нажатия, чтобы вы все смогли прочитать.)
exit (закроет окно, иначе придется печатать эту команду руками, либо жать крестик, что для DOS-сессии категорически НЕДОПУСТИМО). Обратите внимание, что в бухгалтерском деле до сих пор используются DOS-приложения. Если вы их закроете крестиком, то почти неизбежна потеря информации или даже разрушение базы данных.
Вывод сообщений
Возможно, что вам нравится, когда компьютер говорит сам с собой, а потом сообщает это же и вам. Мне — нет.
Поэтому первой строкой командного файла следует указывать команду @echo off. Символ @ сообщает интерпретатору, что и о факте отключения эха не надо сообщать пользователю.
Обработка аргументов
Сделав несколько командных файлов для конкретных случаев, многие пользователи обнаруживают, что можно было бы сделать их программы более универсальными, если бы они могли обрабатывать предлагаемые им данные.
Такая возможность предусмотрена:
- %0 — имя запущенного пакетного файла с путем.
- %1 — первый переданный аргумент.
- %2 — второй переданный аргумент.
- %* — все переданные аргументы одной строкой.
Комментарии
Для включения комментариев в текст вашей программы необходимо начать строку с :: (удвоенное двоеточие) или со слова rem.
При этом сами комментарии могут отражаться на экране, давая вам необходимые пояснения, либо не отображаться совсем (зависит от настройки echo).
Указание после команды знака амперсанда (&) позволяет использовать комментарий после него, то есть для данной строки. Важно, что двоеточия могут блокировать некоторые строки. В этих случаях лучше воспользоваться rem.
Далее, комментарии, внесенные в текст программ для пояснения, будут окрашены .
Некоторые полезные примеры
Не надо пробовать сделать это ручками — замучаетесь. Зачастую проще скопировать строку из готового файла и отредактировать её.
Пример архивации WinRar
Конечно, это можно: 1) каждый раз набирать руками, 2) выполнить настройки в графическом интерфейсе. Но, кажется, глупость подобных действий должна быть очевидной.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Пример копирования
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Имена файлов и путь
Имена, содержащие пробелы, могут интерпретироваться правильно, но это происходит далеко не всегда. Во избежание проблем, следует всегда заключать их в кавычки:
«C:\Documents and Settings\»
Переменные
Единственное уточнение коснется того, что переменные используются с окружением их знаками процента (%), как это сделано в приведенных ниже примерах.
Задание значений переменной осуществляется командой set, например, команда
создаст переменную var, содержащую строку «корова».
Использование ключа /P позволяет осуществить ввод пользователем.
SET /P variable=[строка_подсказки]
Ключ /A позволяет провести вычисления с использованием более двух десятков операторов.
Полная справка о работе команды может быть получена вызовом в командной строке
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Ветвление (If)
Оператор условного выполнения команд IF позволяет производить те или иные действия в зависимости от имеющихся обстоятельств. Последние могут существовать (то есть анализироваться командным файлом), либо задаваться действиями пользователя.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Метки
Поскольку язык достаточно примитивный и разрабатывался давно, он поддерживает так называемые безусловные переходы (переход к метке) для упрощения решений линейного программирования. Ряд ситуаций за счет этого решается на порядок быстрее и проще, чем в современных языках. Не надо следовать за безголовыми критиками данного подхода, это — данность, которой надо пользоваться.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Цикл For
По существу, данную конструкцию можно использовать в качестве рубежа необходимых знаний. Особенно учитывая принципиальное отличие от применения в других языках программирования.
Полная справка о работе команды может быть получена вызовом в командной строке
В целом, назначение можно охарактеризовать, как разделение сложных объектов на составляющие путем последовательного перебора.
Для ясности, приведем основные направления использования команды FOR.
- Обработка массива переменных памяти.
- Обработка совокупности файлов в папке и/или подпапках.
- Обработка файла, как совокупность строк.
- Формирование числовой последовательности (близко к стандартному программному использованию).
Я очень долго обдумывал необходимость включения этой темы в курс обучения в связи с ее противоречивостью. С одной стороны, это, как минимум, на порядок повышает сложность. С другой — на несколько порядков расширяет возможности и «интеллектуальность» создаваемых программ. Перелом произошел при очередной личной необходимости создания диалоговых возможностей для пользователей. Восстановление знаний и попытки разобраться с «записками сумасшедшего», равномерно рассеянными на просторах Интернета, перевесили. Описание будет, но не войдет в очный курс.
Некоторые теоретические предпосылки.
- Программа может выполняться очень долго, вплоть до нескольких часов. Пользователь не должен запустить эту процедуру случайно, требуется подтверждение.
- Для запуска может потребоваться выбор варианта, например, долгий (архивируем все) или краткий (только файлы *.doc). Суть: тонкая настройка процесса действиями, понятными для рядового пользователя.
- Программирование выбора фиксированных существующих мест, то есть, какую из 5 папок обработать типовой процедурой.
- Один из моих случаев: создать архив чего (то есть быстро/медленно) и где (локально, в сети или и в обоих расположениях, что также скажется на времени)?
- .
Суть меню сводится к формированию поясняющего текста и ожидания от пользователя нажатия на клавишу, результат которого считывается в переменную.
В приведенном ниже примере создано примитивнейшее (но реальное) меню из двух пунктов, контролирующее факт запуска.
Доступ к этим материалам предоставляется только зарегистрированным пользователям!
Дополнительный функционал
Сюда будет уходить всякая «экзотика», которая может пригодиться для реализации мелких идей. Это — почти готовые решения и в зачет заданий в чистом виде (без внедрения) они не пойдут.
P.S.! Большинство идей приходят из студенческих работ.
Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
- Студент I/II курса ВХК РАН
Задание для разработки
Доступ к размещенным в этом месте материалам ограничен и предоставляется следующим категориям:
- Студент I/II курса ВХК РАН
Некоторые полезные ссылки
К сожалению, часть ссылок на очень качественный материал отсюда убрана, так как ресурсы исчезли. Делайте выводы.
- CMD/BAT — Форум программистов и сисадминов
- Описание основных возможностей сценариев командной строки
- Командная строка. Сайт посвящен именно этой теме. Не для рядовых пользователей, но есть много полезных советов.
- Командные файлы Windows. Страница значительно расширяет материал и содержит важную информацию.
Командныe файлы Windows
Командные файлы (иначе — скрипты, сценарии) — это текстовые файлы, которые обычно имеют расширение .bat или .cmd. В таком файле можно записать команды (FOR, ECHO, REM и т.п.) или имена файлов на исполнение (net.exe, regedit.exe, sc.exe). Для обработки этих команд существует специальная программа — командный процессор, который также называют интерпретатором команд. Для таких операционных систем, как DOS, Windows 95, Windows 98 и Windows Me интерпретатором команд является command.com, начиная с Windows NT — cmd.exe. Чтобы осуществить запуск командного процессора, откройте меню Пуск, затем Выполнить — cmd.exe.
Появится окно, где можно ввести ту или иную команду. Если вы неопытный пользователь, начните работу со следующих команд:
HELP — появится список возможных консольных команд.
HELP Имя команды — появится справочная информация о конкретной команде.
Если у вас стоит русская версия операционной системы Windows, учтите, что символы русского алфавита вводятся в DOS-кодировке. Чтобы осуществить переключение между кодовыми страницами Windows и DOS, используйте команду » CHCP номер страницы».
CHCP 866 — использовать кодовую страницу 866 (DOS)
CHCP 1251— использовать кодовую страницу 1251 (WINDOWS).
Для редактирования командных файлов, в которых имеются символы русского алфавита, используйте редакторы с поддержкой DOS-кодировки. Самым популярным редактором подобных файлов является «Блокнот» (notepad.exe). Для корректного отображения символов русского алфавита в «Блокноте» выберите шрифт Terminal.
Внешний вид окна консоли консоли Windows
Можно изменить цвет консоли CMD.EXE с помощью команды «COLOR».
HELP COLOR — в окне появится подсказка.
Аргументы команды — две шестнадцатеричные цифры, с помощью которых можно задать цвет фона и цвет символа. Например:
COLOR F0— черные символы на белом фоне.
Полный список аргументов:
0 = Черный
1 = Синий
2 = Зеленый
3 = Голубой
4 = Красный
5 = Лиловый
6 = Желтый
7 = Белый
8 = Серый
9 = Светло-синий
А = Светло-зеленый
B = Светло-голубой
С = Светло-красный
D = Светло-лиловый
E = Светло-желтый
F = Ярко-белый
Символы перенаправления
Для работы с командным процессором необоримо устройство ввода и устройство вывода. По умолчанию это клавиатура и дисплей соответственно. Однако с помощью специальных команд (символов перенаправления) можно заменить стандартные устройства ввода-вывода на другие. Например, вы желаете вывести справку не на экран, а в виде текстового файла с именем help.txt.
> — перенаправление вывода
help.txt
В текущем каталоге появляется текстовый файл, внутри которого содержатся результаты вывода команды HELP. Если файл help.txt уже существует, его заменит новый файл. Если вы хотите не перезаписать содержимое файла, а добавить новые данные к уже существующим, вместо «>» используем «>>». Например:
HELP CALL> help.txt — в файл help.txt будут помещены сведения об использовании команды CALL.
HELP COLOR >help.txt— cправка о команде CALL будет удалена из файла help.txt и заменена на справку о команде COLOR.
HELP COLOR >> help.txt — справка о команде COLOR будет дописана к сведениям по использованию команды CALL.
Другие варианты использования перенаправления:
cmd.exe nul» && Echo HELP Executed || Echo HELP Not Executed
Выполнить команду «HELP IF»; если результат будет успешным, выполнить команду Echo HELP Executed; если результат не будет успешным, выполнить команду Echo HELP Not Executed. Если аргументы заданы верно, вы увидите сообщение: «HELP Executed».
Если команда по какой-либо причине не может быть выполнена, например, неверно задан аргумент («uIF» вместо «IF»), появится сообщение «HELP Not Executed».
Пакетный файл – это неформатированный текстовый файл ASCII, содержащий одну или несколько команд ОС.
Имена пакетных файлов имеют расширения .cmd или .bat. ОС при работе с пакетным файлом последовательно обрабатывает его команды после ввода его имени в строке командной оболочки или запуска из другой программы.
Сценарий – это программа, состоящая из набора инструкций для работы приложения или служебной утилиты. Сценарий – разновидность пакетного файла. Инструкции в сценариях обычно выражаются с использованием правил и синтаксиса соответствующего приложения или служебной утилиты в сочетании с простыми управляющими операторами, такими как операторы циклов и условные операторы.
Пакетные файлы и сценарии часто называют командными файлами, содержащими любые команды. Некоторые команды, такие как For, GotoиIf, позволяют выполнять обработку условий в пакетных файлах. Другие команды позволяют управлять вводом и выводом, а также запускать другие пакетные файлы.
При организации пакетных файлов и сценариев применяют переменные, задающие поведение командной оболочки или ОС и пакетные параметры командного интерпретатора, которые используются в пакетном файле для получения информации о настройках среды.
Поведение среды командной оболочки или всей ОС задают с помощью двух типов переменных среды: системных и локальных.
- Системные переменныеопределяют поведение глобальной среды ОС.
- Локальные переменныеопределяют поведение среды в конкретном экземпляре командного интерпретатора Cmd.exe.
Системные переменные среды задаются заранее в ОС Windows XP и доступны для всех ее процессов. Только пользователи с привилегиями администратора могут изменять эти переменные.
Локальные переменные среды доступны в случае, когда пользователь, для которого они были созданы, входит в систему. В частности, локальные переменные реестра HKEY_CURRENT_USER подходят только для текущего пользователя, но определяют поведение глобальной среды ОС.
В следующем списке представлены различные типы переменных в порядке убывания их приоритета:
- встроенные системные переменные,
- системные переменные реестра HKEY_LOCAL_MACHINE,
- локальные переменные реестра HKEY_CURRENT_USER,
- все переменные среды и пути, указанные файле Autoexec.bat,
- все переменные среды и пути, указанные в сценарии входа в систему, если он имеется,
- переменные, используемые интерактивно в пакетном файле или сценарии.
Чтобы иметь возможность подставить значение в переменную среды из командной строки или в пакетном файле (сценарии), следует заключить имя соответствующей переменной (Приложени. 1) в символы процентов (%), например SetMyPath=%CD%. Символы процентов указывают на то, что командный интерпретатор должен обратиться к значению переменной без посимвольного ее разложения и сравнения.
Командный интерпретатор Cmd.exe может оперировать переменными с %0 по %9. При использовании пакетных параметров переменная %0 заменяется именем пакетного файла, а переменные с %1 по %9 — на соответствующие аргументы командной строки. Для доступа к переменным больше %9 еобходимо воспользоваться командой Shift. Параметр %* ссылается на все аргументы, которые передаются пакетному файлу, за исключением %0.
В качестве примера, рассмотрим копирование содержимого из каталога 1 (Folder1) в каталог 2 (Folder2), где параметр %1 заменяется значением Folder1, а параметр %2 соответственно значением Folder2. В пакетном файле Mybatch.bat следует ввести следующую строку:
Xcopy %1\*.* %2
Используйте пакетный файл Mybatch.bat следующим образом:
Mybatch.bat C:\folder1 D:\folder2
Результат будет таким же, как и при записи в пакетный файл строки:
Xcopy C:\folder1\*.* D:\folder2\
С пакетными параметрами можно также использовать модификаторы. Модификаторы используют информацию о текущем диске и каталоге как часть или полное имя файла (каталога).
Синтаксис модификатора: %
xy, где x — символьное сокращение действия, определяемое модификатором, y — идентификатор переменной (в диапазоне от 1до 9).
Структура HTML-страницы: описание заголовка текст документа |
. — границы HTML-программы
Любой HTML-документ должен начинаться (и заканчиваться) тегом . . Этот тег указывает на то, что данный документ содержит в себе HTML-текст.
Web-документ разбивается на две логические части: заголовок и содержание.
. — заголовок HTML-программы
Заголовок также называют головной частью программы, он содержит справочную информацию о странице, которая не отображается браузером, а также название документа.
. — содержание HTML-программы
Основное содержание страницы помещается в тег . . Его также называют телом программы.
«Гиперссылки в HTML» – пятый урок учебника HTML. В этом уроке речь пойдет об использовании гипертекстовых ссылок. На гипертекстовых связях основан любой web документ, поэтому уметь работать со ссылками обязан каждый веб мастер.