Рассылка закрыта
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
← Октябрь 2001 → | ||||||
2
|
3
|
4
|
5
|
6
|
7
|
|
---|---|---|---|---|---|---|
8
|
9
|
11
|
12
|
13
|
14
|
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
24
|
26
|
27
|
28
|
|
29
|
30
|
31
|
Статистика
за неделю
Программирование для начинающих #26
Программирование для начинающихВыпуск 26
Ведущий рассылки: Вячеслав Мацнев | e-mail: stac@stacmv.net |
В этом выпуске читайте: |
Сегодня мы продолжаем начатый в прошлом выпуске разговор о командном языке ДОС. Большинство пользователей ПК уже не помнит, что такое ДОС, или просто не знает, что это такое. Хорошо, что вышесказанное не относится к вам, подписчикам этой рассылки. Кое-кто, впрочем, сейчас тихонько посмеивается, читая эти строки. Мол, ты еще бы паровые машины вспомнил, в двадцать первом-то веке. Согласен, ДОС была разработана в прошлом веке. И очень много интересных и полезных программ для ДОС тоже было разработано в прошлом веке. Это и системы трехмерной анимации (3D Studio), и чертежные пакеты (AutoCAD), и математические пакеты (MathCAD), и музыкальные редакторы (FastTracker II), и, конечно, системы программирования (Visual Basic), и, обязательно, игры (Civilization), игры (Doom), много игр (Leisure Suit Larry, Myst, Need For Speed, Dune 2). Все приведенные мной примеры программных продуктов известны вам по их Windows-версиям, разве что кроме FastTracker II. Кому-то, наверное, будет трудно представить 3D Studio под ДОС, но, поверьте, было время, когда было трудно представить 3D Studio работающим под Windows (Release 4 этой программы, которым мне довелось попользоваться, упорно не хотел запускаться из-под Windows, как и многие другие серьезные программы). Кроме перечисленных мной, можно сказать, грандиозных проектов, были проекты и по мельче, но не менее интересные и очень полезные. В минувшую субботу мне пришлось помогать одному знакомому восстановить работоспособность компьютера после действия вируса. Или это он мне помогал, то и дело предлагая отметить то удачное разбиение винта, то его форматирование. Случай был, как обычно, запушенный, поэтому пришлось немного повозиться. Но не об этом сказ ... Разбирая гору непонятного происхождения дискет в поисках драйверов, я увидел экземпляр с надписью "Плакат". Увидел и, с молчаливого согласия хозяина, присвоил ее себе. Раньше у людей была привычка писать на дискете своеобразный каталог ее содержимого. Сейчас дискеты уже почти не используются для долговременного хранения программ, и эта привычка пропала, но было время... . Впервые с программой "Плакат" мне довелось встретиться в начале 90-х прошлого века на машине, гордо называемой "Искра" (наш ответ IBM PC/XT). "Плакат" или "Суперплакат" или "POSTER CHIZH" это адаптация программы "BannerMania" для России, выполненная Читашвили Н. Г. и НТК "Индекс" в 1990-м году. Программа позволяла (и что интересно, позволяет до сих пор) создавать таблички и небольшие плакаты типа "Не курить! Штраф 50 руб." (если занимаетесь частным извозом, повесьте себе такую табличку в машину :), "Не стой под стрелой - работай!", "Шефа нет!", "Глазами не хлопать!" и т.п., накладывая на текст различные эффекты, типа тех, что сейчас делает WordArt из MS Office. К моей великой радости на полученной в дар дискете оказалась именно описанная мной программа, которую, если честно, я уже и не надеялся когда-либо увидеть. Да, было время... Но Windows наступала, ее разработчики прилагали максимум усилий к тому, чтобы число программ для их системы росло и росло. Сейчас похожая ситуация складывается с Linux, для нее появляется все больше и больше программ. Windows этот путь уже прошла. Причем то, что Windows 95 практически без проблем выполняла программы для DOS и Windows 3.x, по-моему, определило успех новой ОС. Да что я говорю "было", "выполняла". Надо говорить "есть", "выполняет". Когда видишь программы вроде "Плаката", понимаешь, нет, время ДОС еще не прошло. Это же понимаешь, когда узнаешь, что некие энтузиасты написали свою версию DOS, которую назвали FreeDOS и выпускают под GPL (General Public License). Когда увидишь графическую оболочку для нее. Когда увидишь браузер Arachne. Когда понимаешь, что и под Windows 9x прекрасно работают большинство ДОС программ и, конечно, все BAT-файлы, часто помогающие нам автоматизировать свою работу на компьютере. Даже сейчас, когда появились альтернативы для BAT-файлов, типа JScript и VBScript, BAT-файлы остаются самым универсальным средством подобного рода, работающем на любой машине от окаменевшей уже "Искры" до новомодного Pentium 4.
Константин Даниленко BAT-файлыПродолжение. Начало в Выпуске 25.Закон Первый. ВАТ-файл – это программа на алгоритмическом языке DOS; Закон Второй. ВАТ-файл может принести вреда больше, чем пользы; Закон Третий. ВАТ-файл не умеет больше того, что умеет DOS. Как и при изучении любого языка программирования, где вначале рассматриваются просто операторы, а затем конструкции, мы только сейчас готовы к знакомству с одной из двух (всего двух!) конструкций ВАТ-файлов. Речь идет о ветвлении, иными словами – об условном операторе. Он может существовать в одном из следующих форматов:
Квадратные скобки, как обычно, окружают необязательный элемент
формата.
Команда goto должна куда-то посылать... то есть отсылать – к метке. А меткой в ВАТ-файле считается любая строка, начинающаяся с двоеточия (обратите на отличие от Бейсика, где метка заканчивается на двоеточие - прим. ред.). В одном учебнике было интересное предложение: не использовать команду rem ввиду ее неудобочитаемости, а комментарии оформлять как фиктивные метки, причем для отличия от меток фактических (на которые есть ссылки) после двоеточия писать какой-нибудь определенный символ, скажем, звездочку. Сравните эти два комментария:
rem Это комментарий
Ни в одном учебнике мне не удалось найти четкого описания ограничений на вид метки. К примеру, правильно сработает такая ссылка:
goto (This is a very complicated label!)
Правда, метка воспринимается только до первого пробела. То есть вышеприведенная метка полностью идентична такой: (This . Кроме того, метки плохо реагируют на ведущий не буквенный и не цифровой символ. Поэтому лучше не рисковать и составлять метки только из букв и цифр.
Настало время разобраться с переменными, которые позволят нам
предметно обсуждать второй формат условной конструкции.
Разумеется, строки пронумерованы лишь для удобства разбора.
second.bat Затем вручную вводим параметры и окончательно получаем: second.bat c:\test two 1440 Тогда при отработке строки [3] на экране появится: Параметры ВАТ-файла second.bat:
потому что именно так (в строчном регистре и с расширением) выглядел при
запуске первый параметр (%0) командной строки.
SECOND c:\test two 1440 то и результат будет соответствующий: Параметры ВАТ-файла SECOND:
Как мы понимаем, это не более чем косметика, поскольку DOS нечувствительна к
регистру.
echo директория - имя директории-источника (без замыкающего символа \). Вы задали: %1
И то же для строк
[9]
и
[11]
. Тогда, вообще говоря, строку
[2]
можно оставить в покое.
Не хватает параметра.
После этого выполнение ВАТ-файла завершится. Как аварийно прервать его выполнение, мы уже знаем. Штатное завершение выполнения возможно только по достижении конца файла. И, если первая строка почти всегда имеет вид @echo off, то последней разумно делать строку :End Тогда для штатного завершения работы ВАТ-файла можно использовать одну и ту же команду goto End
Зачем стоят минусы перед именами параметров во втором формате? Слово В. Э.
Фигурнову:
"Сравнение второго параметра командного файла со строкой SSS не следует делать
так: if %2==SSS... Ведь если в командном файле меньше двух параметров, то
символы %2 будут замещены пустой строкой, и при выполнении команды возникнет
ошибка. Правильное сравнение выглядит так: if -%2==-SSS... Оно годится в любом
случае".
Я даже не пытался поставить под сомнение слова Мэтра. И ни разу не пожалел об
этом.
@echo off
Вторая строка устанавливает вид "приглашения DOS". Оно прописывается по
умолчанию и, на мой взгляд, весьма разумному. Изучение других видов приглашений
выходит за рамки данного исследования. Четвертая и последующие строки
загружают: драйвер CD-ROM, русификатор, драйвер мыши и Нортон соответственно.
Дело не в них, а в команде РАТН. Там-то и перечислены те самые "избранные"
директории, где ищутся командные файлы с неуказанными путем и расширением.
Разумно было бы включить в число "избранных" те директории, где лежат
архиваторы, чтобы, набрав только arj, мы могли бы получить краткую справку о
возможностях этой программы.
path c:\;c:\dos;c:\arj Но ведь архиваторов может быть много, и перечисление всех директорий может оказаться нецелесообразным. Выход есть. В начале нашего файла SECOND.BAT можно указать: path=%path%;c:\arj
Эта команда добавит путь C:\ARJ к списку "избранных", оставив остальные
нетронутыми и даже не покусившись на их приоритет относительно c:\arj. Теперь
можно быть уверенным, что файл ARJ.EXE будет найден и без указания его полного
имени. Правда, после перезагрузки новый путь будет "забыт", а при исполнении
SECOND.BAT - вновь "вспомнен".
* Количество конструкций if errorlevel... должно равняться количеству ненулевых
значений кода выхода;
Высказывание будет ложно тогда и только тогда, когда архивирование прошло успешно, о чем и уведомляет строка [26] . [27] ... [29] : Копирование файла на дискету. Раз архивирование свершилось, в заданной директории наверняка существует файл %2.ARJ, то есть, в нашем случае, TWO.ARJ. Что же касается второго тома (TWO.A01) и всех последующих, то их существование уже зависит от суммарного объема файлов. Отчасти это предусматривает строка [30] . Итак, мы завершили более чем подробный анализ ВАТ-файла. Осталось совсем немного. Вот пример файла, проводящего проверку диска на вирус с помощью DrWeb:
@echo off
:Vir
:End
Мы уже цитировали комментарий И. Данилова к своему детищу. Данный ВАТ-файл демонстрирует последовательность обработки кодов выхода: строго в нисходящем порядке!
Сайт проекта FREEDOS: http://www.freedos.org Различные DOS-приложения для работы с Интернетом: http://www.fdisk.com Библиотека, где можно найти ряд интересных книг по DOS и не только: http://www.libru.nm.ru
DO Sледующего выпуска!
|
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу | Рейтингуется SpyLog |
В избранное | ||