Dos: .BAT : ассемблер и бейсик в комплекте.
При написании использовались принятые в DOS обозначения:
— параметр, который должен быть обязательно при описанных условиях.
[параметр] — необязательный параметер, который может быть опущен.
| — оператор «или.». То есть — один из вариантов.
Все команды и операторы языка являются регистронезависимыми, то есть, команды echo off , ECHO OFF и EcHo oFf являются абсолютно идентичными. Однако, хорошим тоном считается писать все .bat-файлы в верхнем регистре.
Основные команды и операторы пакетных файлов.
/*Примеры пакетных файлов — см. ниже*/
REM [текст]
Команда REM служит для придания программе осмысленности и структкурированности путем ввода комментариев. Любой текст, расположенный в строке после нее, будет считаться комментарием и не выполняется. Это бывает полезно при отладке программы или временном «выключении» некоторых строк файла. Иногда эта команда (можно считать REM и оператором) используется для вывода текста на экран при выключенном эхо (echo off). Однако, это уже побочный эффект.
Бат файлы: основные команды, примеры
Перенаправление потоков ввода/вывода
Перенаправление потоков в операционной системе позволяет, например, вывести результат работы программы не на экран, а в файл или на принтер, а также использовать результаты работы одной программы в другой.
Для перенаправления потоков используются символы «>», «>>», «Приведем пример. Команда
DIR *.* >abc.txt
выведет результаты не на экран, а в файл abc.txt, предварительно создав или перезаписав его. В дальнейшем можно использовать его для более удобной обработки полученной информации (например, если список слишком большой).
DIR *.* >>abc.txt
данная команда также запишет результат не на экран, а в файл abc.txt, но она не удалит его содержимое, а добавляет результат в конец файла. Если файл все-таки не существует, он будет создан.
DIR *.* | MORE
Это пример использования результатов выполнения команды (piping) DIR фильтром MORE, который делает паузу после каждого экрана листинга. Еще один полезный пример:
ECHO Y | DEL *.*
Сама команда DEL *.* должна удалить все файлы в каталоге. Однако, она предусмотрительно запрашивает подтверждение на подобное действие. Для того, чтобы автоматически (например, из пакетного файла) удалять все файлы, мы используем передачу результатов выполнения команды ECHO Y, которая должна вывести символ Y, в команду DEL *.*, которой требуется один символ: Y или N. Похожее действие выполнит команда
program.exe передаст программе program.exe данные из файла file.in таким образом, как будто они были введены с клавиатуры. Однако, нужно быть осторожным с таким способом передачи, так как программа может в какой-нибудь момент времени запросить совсем другой ввод.
Также перенаправить вывод можно и в порт, например, в COM1, COM2, LPT и т.д. (см. пример у команды ECHO).
Использование возвращаемых значений
Создание bat файла для запуска нескольких программ.
Иногда бывает необходимо запускать систему в разных конфигурациях, в зависимости от выбора пользователя. В таком случае, необходимо выдать на экран меню, в котором пользователь может сам выбрать тот способ загрузки, который больше всего ему подходит. Для того, чтобы организовать это на достаточно ранней стадии загрузки системы, то есть, до запуска основной части драйверов, необходимо сделать это на уровне еще одного системного файла — файла config.sys.
Вообще, рассмотрение этого файла — довольно большой объем материала, так что ограничимся только основными понятиями.
Итак, файл config.sys содержит объявления тех драйверов системы, которые должны быть загружены при запуске системы. Отличие его от файла autoexec.bat в том, что autoexec.bat содержит вызов программ, а config.sys — драйверов, которые должны загружаться раньше программ. Находиться он должен тоже в корневом каталоге загрузочного диска.
Приведем пример стандартного файла config.sys пока без загрузочного меню. Комментарии здесь также ставятся оператором REM.
REM Файл config.sys без использования меню
REM Загрузка драйверов верхней памяти
DEVICE=C:DOSHIMEM.SYS
DEVICE=C:DOSEMM386.EXE RAM
REM Настройка параметров DOS
BUFFERS=20,0
FILES=30
DOS=UMB
LASTDRIVE=Z
FCBS=4,0
DOS=HIGH
А теперь, для сравнения, пример файла с использованием загрузочного меню. Всего будет три пункта меню, второй пункт меню — будет по умолчанию ждать реакции пользователя 15 секунд, а затем загружаться автоматически.
REM Файл config.sys с использованием меню
REM Загрузка драйверов верхней памяти
DEVICE=C:DOSHIMEM.SYS
DEVICE=C:DOSEMM386.EXE RAM
REM Настройка параметров DOS
BUFFERS=20,0
FILES=30
DOS=UMB
LASTDRIVE=Z
FCBS=4,0
DOS=HIGH
REM А теперь — меню
[MENU]
MENUITEM=FULL_DRIVERS_DOS
MENUITEM=STANDARD_DOS
MENUITEM=TINY_DOS
MENUDEFAULT=STANDARD_DOS, 15
REM Это была декларация, а теперь — описание:
[FULL_DRIVERS_DOS]
REM Полная загрузка DOS со всеми драйверами
DEVICE=C:DOSSETVER.EXE
DEVICE=C:DRVSTSYCDROM.SYS /D:TSYCD1
DEVICE=C:ESSUTILES1868.COM /A:0 /I:0
DEVICE=C:RAMDRIVE.SYS 3000/E
[STANDARD_DOS]
REM Стандартная загрузка DOS
DEVICE=C:DRVSTSYCDROM.SYS /D:TSYCD1
DEVICE=C:ESSUTILES1868.COM /A:0 /I:0
[TINY_DOS]
REM Загрузка в режиме без драйверов
:FULL_DRIVERS_DOS
REM Полная загрузка DOS со всеми драйверами
SET BLASTER=A220 I5 D1 P330
C:ESSUTILESSCFG.EXE /A:220 /I:5 /D:1 /B:330 /J:D
C:ESSUTILSETVOL /XV:FF /XL:99 /XW:FF /XM:00 /XC:EE /XS:FF /XA:CC
LH C:DOSMSCDEX.EXE /D:TSYCD1
LH KEYRUS.COM
LH MOUSE.EXE
C:NCNC.EXE
GOTO EXITER
:STANDARD_DOS
REM Стандартная загрузка DOS
LH C:DOSMSCDEX.EXE /D:TSYCD1
LH KEYRUS.COM
LH MOUSE.EXE
C:NCNC.EXE
GOTO EXITER
:TINY_DOS
REM Загрузка в режиме без драйверов
GOTO EXITER
:EXITER
Здесь, кажется, все понятно. В переменной %CONFIG% на момент запуска autoexec.bat содержится имя выбранного варианта, а затем передается управление на эту метку.
Создание текстового файла без помощи текстового редактора.
Часто бывает необходимо не имея ни одного текстового редактора набрать какой-нибудь текстовый файл, например, создать тот же autoexec.bat. Здесь на помощь придет следующая возможность DOS. Наберите:
copy con autoexec.bat
и далее построчно набирайте текст файла. В конце нажмите . Все! Файл готов. Это объясняется тем, что мы использовали стандартный файл ввода-вывода con. А если набрать
copy autoexec.bat con
на экран выведется содержимое нашего файла. Правда, выводить на экран лучше с помощью команды TYPE. Однако, это уже материал следующей статьи.
Вы можете перенаправлять потоки, используя фильтры. Фильтры пропускают только часть получаемой информации, соответствующей запросу. В DOS самые используемые фильтры — это FIND, MORE и SORT.
Замечание: Учтите, что все фильтры, а также перенаправление потоков может работать только в том случае, если программа, вывод которой фильтруется, выводит текст на экран через стандартные средства DOS. Если же используются другие способы (например, прямое отображение в видеопамять), то все эти возможности не смогут перехватить вывод.
FIND [/V] [/C] [/N] [/I] «строка» [[диск:][путь]имя_файла[ . ]]
Поиск текстовой строки в одном или нескольких файлах.
Параметры:
/V — Вывод всех строк, НЕ содержащих заданную строку.
/C — Вывод только общего числа строк, содержащих заданную строку.
/N — Снабжение отображаемых строк номерами.
/I — Поиск без учета регистра символов.
«строка» — Искомая текстовая строка.
[диск:][путь]имя_файла — Файл либо файлы, в которых производится поиск.
Если путь не задан, FIND производит поиск в тексте, введенном с клавиатуры, либо переданном по конвейеру другой командой. Пример:
DIR A: | FIND /V «компьютер»
Выведет имена всех файлов, не содержащих слово «компьютер».
Замечание: Вы можете использовать параметр /V вместе с /C ИЛИ /N, но /N не будет работать с /C.
MORE [диск:][путь]имя_файла MORE < [диск:][путь]имя_файла имя_команды | MORE [диск:][путь][имя_файла]
Последовательный вывод данных по частям размером в один экран.
Параметры:
[диск:][путь]имя_файла — Задает файлы, отображаемые по фрагментам
имя_команды — Команда, вывод которой отображается на экране.
Пример:
DIR | MORE
Выведет список файлов постранично.
Примечание: Для выхода из режима просмотра используйте сочетание клавиш , а для просмотра — любую клавишу.
SORT [/R] [/+n] [[диск1:][путь1]имя_файла1] [> [диск2:][путь2]имя_файла2] [команда |] SORT [/R] [/+n] [> [диск2:][путь2]имя_файла2]
Сортировка ввода с выводом результатов в файл, на экран или другое устройство
Параметры:
/R — Изменение порядка сортировки на обратный, от Z к A и затем от 9 до 0.
/+n — Сортировка файла по символам в столбце n.
[диск1:][путь1]имя_файла1 — Сортируемые файлы
[диск2:][путь2]имя_файла2 — Файл, в который направляется сортированный ввод.
команда — Команда, вывод которой следует отсортировать.
Пример:
SORT /R < BOOK1 >REV
Сортирует файл BOOK1 в обратном порядке и записывает результат в файл REV. Примечание: Буквы нижнего регистра соответствуют буквам верхнего (a=A, z=Z).
Если Вы внимательно дочитали до этого места, то можете смело прибавлять к тем языкам программирования, которые Вы уже знаете, язык программирования .bat-файлов. И пускай многие считают, что ничего серьезного из этого сделать нельзя, Вы должны помнить, что известная в свое время вирмейкерская группа Stealth (выпускавшая электронный журнал о вирусах Infected Voice) опубликовала исходный текст полиморфного вируса, написанного целиком на .bat-языке. Теперь и Вы, немного попрактиковавшись, сможете писать довольно интересные и полезные макроконструкции. В дальнейшем коллекция исходных текстов на этой страничке может пополниться. Присылайте и свои исходники.
Приложение A: простейший номеронабиратель
Наверное, каждый продвинутый пользователь сталкивался с «проблемой второго винчестера», когда подсоединенный второй (третий. ) жесткий диск нарушал Вашу гармонию в расположении дисков, нагло вторгаясь между логическими дисками C: и D:. Мне это в конце концов надоело и я написал программку с использованием .bat-файла и ассемблерной программки. .bat-файл вызывает ассемблерную программу, которая анализирует диск, имя которого передано ей в командной строке, на соответствие заданной метке диска. Возвращает 0, 1, 2 или 3 (у меня три основных логических диска). Соответственно, устанавливаются переменные окружения.
Для дальнейшего использования (например, в Dos Navigator) можно задать в настройках, например, такой путь в Запуск по расширению:
cpp
И так далее. Однако, такие пути подходят только для работы с командной строкой, то есть там, где их может понять КОМАНДНЫЙ ПРОЦЕССОР. То есть, если Вы укажете, например, в Turbo Pascal такой путь, то он Вас не поймет. Такие пути интерпретируются самой операционной системой, да и то не везде.
Здесь сама программа. Кто знает — разберется.
Источник: www.rebooting.ru
Пример bat файла запуска программы
Главная / Программирование / Написание BAT файлов
Написание BAT файлов
В этой статье я приведу несколько примеров написания BAT-файлов. Рассмотрим команды для того, чтобы изменить системную дату, запустить и отключить службу windows, запустить программу, вывести сообщение для пользователя.
Пакетный файл (batch file) — это текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла программа-интерпретатор (как правило, COMMAND.COM или cmd.exe) читает его строка за строкой и последовательно исполняет команды. Пакетный файл — аналог скриптовых файлов командной строки (shell script) в Unix-подобных операционных системах.
Пакетные файлы в DOS имеют расширение .BAT; для других операционных систем они могут иметь другие расширения — например, .CMD в Windows NT и OS/2 или .BTM в 4DOS (англ.) или подобных оболочках.
Чтобы создать исполнительный файл в операционной системе windows достаточно всего двух действий:
- Выбираем папку расположение будущего bat-файла
- Щелкаем правой кнопкой мыши и выбираем: создать > текстовый документ
- Задаем название файлу и меняем расширение .txt на .bat, например должно получиться «file.bat». Соглашаемся на изменение расширения, нажимаем «Да»
Всё! Исполнительный файл готов. Осталось только добавить в него команды. Для этого нажимаем по нему правой кнопкой мыши и выбираем «изменить». В открывшемся окне текстового редактора и вводятся команды.
Вывод текстовых сообщений
Для вывода текста на экран существует команда ECHO. После команды пишем текст для вывода. Например, в bat файле записываем строки:
Команду PAUSE даём для того, чтобы окно не закрывалось автоматически после выполнения ECHO, а ожидало нажатия любой клавиши для выхода.
Как видно из рисунка текст выводится, но есть проблемы с кодировкой. Для отображения русских символов добавим в самое начало команду Chcp . Приведу пример кодировок:
- 1251 – Windows (кириллица);
- 866 – DOC-кодировка;
- 65001 – UTF-8;
Изменим код нашего исполнительного файла на такой:
Ввод данных пользователем
Часто для решения каких-либо задач требуется вручную задать значения переменных. Рассмотрим такой пример, исполнительный файл спрашивает имя пользователя, далее выводит текст «привет ».
Командой SET мы создаем переменную input и присваиваем ей значение введенное пользователем. Для вывода значения переменной заключаем её имя в знак %.
Включения и выключение служб windows
Иногда встречаются ситуации, когда службы программ конфликтуют между собой. Например такая ситуация наблюдается с программами TecDoc и ETK BMW (это каталоги автомобильных запчастей, ошибка службы Transbase). Пока запущена служба одной программы — не запустится служба второй, а следовательно и сама программа. Ситуация решается несколькими строчками в исполнительном файле:
Команды net stop и net start выключают и включают службы windows. Команда start «» запускает программу. Таким образом если включена мешающая программе служба, то она выключится и запустится нужная, и только после этого произойдёт запуск программы. Создаем второй исполнительный файл, меняем службы местами и прописываем пусть к второй программе. Готово!
У вас два bat файла, ими и нужно запускать программы. Единственный минус такого решения — это невозможность одновременного использования обоих программ.
Источник: what-what.ru
Как создать bat файл в Windows 7, 8
Bat файлы представляют собой текстовые документы, которые содержат в себе список последовательно выполняющихся команд (инструкций). Они могут быть очень простыми, что обычный пользователь может воспользоваться ими. В сегодняшней теме разберем, что такое батник, как создать bat файл в Windows 7, 8, а также рассмотрим пример пакетного файла.
Сисадмины (продвинутые пользователи) хорошо осведомлены о полезности бат файлов, но обычные пользователи не знакомы с ними, их пугает структура кода и запуск этого сценария. Это печально, поскольку многие отказываются от использования мощного инструмента для выполнения рутинных и повторяющихся задач. Bat файлы могут быть сложными, требуя профессиональных навыков программирования, и простыми.
Батник содержит одну или несколько строк команд, которые выполняются последовательно. Бат файлы имеют расширение (bat или cmd) и выполняются через интерфейс командного интерпретатора. Все команды можно вводить в cmd, но каждый раз вызывать командную строку Виндовс 7, 8 и прописывать код, является рутинной работой, поэтому проще создать bat файл.
Создание bat файла
Для создания батника потребуется текстовый редактор (блокнот, notepad ++) и список bat команд. Примерный алгоритм смотрите ниже.
1. Создайте текстовый документ, расширение которого txt. Нажмите правой кнопкой на пустой области проводника или другого места. Наведите на «создать» курсор мыши, затем из подменю выберите «текстовый документ». Задайте ему имя, к примеру, batnik.
2. Скачайте notepad ++, затем установите его. Откройте batnik.txt в notepad ++, выберите «кодировки», наведите курсор на «кодировки», «кириллица», нажмите на OEM 866. Проделайте этот шаг, если используете вывод русских слов (пояснений) в сценарии, иначе Вы увидите кракозябры (не корректные символы). Далее пропишите команды. Например, скопируйте такой текст:
3. Сохраните документ, далее измените тип файла Windows на расширение bat.
4. Двойным щелчком запустите batnik.bat для выполнения последовательности команд. После того как bat файл исполнится, он автоматически закроется.
Еще вы можете запустить блокнот, нажать Win + R, ввести в строку notepad и кликнуть Enter. После прописывания кода, нажмите «файл», а затем «сохранить как». В окне задайте путь сохранения, имя файла с расширением bat и щелкните «сохранить». Аналогичные действия проделайте с notepad ++ для изменения кодировки (шаг 2), если будите использовать русские символы.
Пример бат файла
Сейчас рассмотрим создание bat файла в Windows 7, 8, который дает сведения о сети, проверяет соединение с интернетом и наглядно показывает действие батников. Создайте бат файл и пропишите такие строки.
ECHO OFF
:: очиститель.
ECHO Сведения о подключениях.
:: вывод текста на экран, который идет после служебного слова ECHO.
IPCONFIG /ALL
:: распечатывает информацию о всех сетевых подключениях.
PAUSE
:: приостанавливает выполнение сценария, чтобы Вы могли просмотреть сетевую информацию.
PING yandex.ru
:: Пинг, проверяющий наличие (отсутствие) соединения с интернетом
ECHO Операция выполнена. Нажмите ввод!
:: вывод на экран слов после ECHO, которые знаменуют выполнение PING.
PAUSE
:: Эта последняя команда пишется, для того чтобы увидеть сведения о соединении. Если ее не было бы, тогда сценарий батника прекратился, и произошло закрытие окна.
На самом деле, примеров бат файлов для обучения, скачивания в сети есть огромное количество. Вам достаточно изучить синтаксис и команды, чтобы создать свой батник под свои нужды. Надеюсь, Вы поняли для чего нужны батники, и как создать bat файл в Windows 7,8.
Посмотрите еще статьи:
- Как удалить файл через командную строку Windows — команда Del
- Запуск командной строки в Windows 8
- Перезагрузка компьютера из командной строки — команда shutdown
Источник: nastrojcomp.ru