Текст
                    П.  НОРТОН
 СПРАВОЧНОЕ
 руководство
по
 MS-DOS
 «РАДИО  И  СВЯЗЬ»


П. НОРТОН СПРАВОЧНОЕ руководство ПО MS-DOS
Peter Norton's DOS Guide Third Edition Peter Norton BRADY New York
П. НОРТОН СПРАВОЧНОЕ руководство по MS-DOS Перевод с английского Белоуса Н.А., Куркова Е.В. Москва «Радио и связь» 1992
ББК 32.973 Н83 УДК 519.682.1 Редакция литературы по вычислительной технике и информатике — М.: Нортон П. Н83 Справочное руководство по MS-DOS: Пер. с англ. Радио и связь, 1992. — 336 с.: ил. ISBN 5-256-00920-6. В книге известного американского специалиста п_ рассматривается работа программиста с операционной системой MS-DOS. Показаны особенности работы с жесткими дисками, изложены вопросы организги^ии^^ хранения данных, приведены примеры использования Для программистов. Н 20404Q20Q0—078 046(01)—92 Без объявления ББК 32.973 ISBN 5-256-00920-6 (рус.) ISBN 0-13-662636-Х (англ.) © 1989 by Peter Norton © Перевод на русский язык. Примечания. Белоус Н.А., Курков Е.В. 1992 © Предисловие к русскому изданию. ’Тадио и связь". 1992
ПРЕДИСЛОВИЕ Имя Питера Нортона давно уже стало легендой. Его набор сервисных программ "Norton Utilities”, "Norton Integrator”, оболочка "Norton Commander” работают в миллионах компьютеров во всем мире. Читатели журналов ”РС Magazine” и ”РС Week” знают Нортона как блестящего эксперта, ведущего тематических разделов, посвященных персональным ЭВМ. Его книги не зале¬ живаются на полках магазинов и в Европе, и в Америке. Бизнесмен П. Нортон, создавший фирму ”Peter Norton Computing”, входит в состав совета директоров другой процветающей фирмы — ’’Symantec”. Наконец, Питер и его жена Эйлин основали некоммерческий фонд, оказывающий поддержку молодым художникам, а его коллекция современного искусства — одна из самых известных в США ... В одном из многочисленных интервью, отвечая на вопрос о сек¬ рете успеха своих книг, Нортон сказал: ’’Мне всегда казалось, что мой долг объяснить другим людям то, что удалось узнать или понять самому. Ведь это очень достойная задача — делать простым и понятным сложные вещи.” П. Нортон не раз бывал в нашей стране, в качестве почетного гостя принимал участие в международной выставке ”Комтек-91”. На русском языке в издательстве ’’Радио и связь” вышли две его книги ’’Программно-аппаратная организация IBM PC” и ’’Персональный компьютер фирмы IBM и операционная система MS-DOS”, сразу ставшие библиографической редкостью. Предлагаемая книга на наш взгляд удачно дополняет две предыдущие. Во-первых, в ней много новых сведений, отражающих эволюцию операционной системы MS-DOS и персонального компьютера фирмы IBM за последнее время. Во-вторых, в книге нашел отражение опыт Нортона, накопленный на журналистском поприще. Фирменный стиль автора — ясный и лаконичный — делает ее привлекательной для новичка, но вместе с тем в ней затронуты и весьма тонкие вопросы, представляющие интерес для профессионала. В любом случае и те, кто использует персональный компьютер в своей повседневной работе, и те, кому лишь предстоит познакомиться с ним поближе, найдут здесь много интересного и полезного. Неслучайно издательство ”Брэди” (США) трижды переиздавало эту книгу на английском языке, доведя ее тираж до 500 ООО экземпляров, что в известной степени является рекордом для Америки. 5
Пределы достоверности и отказ от гарантий Автор и издатель этой книги вложили все усилия в подготовку материала и программ, включая разработку, исследования и провер¬ ку теорий и программ для определения их правильности. Автор и издатель не дают никакого рода явно выраженных или подразумева¬ емых гарантий в отношении программ и материалов, содержащихся в этой книге и не несут никакой ответственности за случайные ошибки и возникающие вследствие этого нарушения работы про¬ грамм. ТОРГОВЫЕ МАРКИ IBM, IBM PC, IBM PC-АТ, IBM PC-XT, TopView и DispIayWrite — торговые марки фирмы IBM Corporation. Symphony, Lotus 1-2-3 и Lotus Metro — торговые марки фирмы Lotus Development Corporation. Microsoft Word, Microsoft Windows, Microsoft Mouse — торговые марки фирмы Microsoft Corporation. Norton Commander — торговая марка фирмы Peter Norton Computing. Toshiba T-3100 — торговая марка фирмы Toshiba America, Inc. WordPerfect — торговая марка фирмы Word Perfect Corporation. dBASE, dBASE III, Framework и Framework II — торговые марки фирмы Ashton-Tate. SideKick и SuperKey — торговые марки фирмы Borland International, Inc. Compaq — торговая марка фирмы Compaq Computer Corporation. 6
ВВЕДЕНИЕ В книге рассказывается не только о том, как начать работать с PC-DOS, дисковой операционной системой (ДОС), но и о многом другом. В книге две части. В одной излагается то, что необходимо знать для начала работы с ДОС, для эффективного использования всех ее возможностей. Другая же (не менее полезная) содержит све¬ дения, необходимые для сознательного, ловкого и умелого использо¬ вания персонального компьютера. Здесь вы найдете сведения о том, как правильно использовать команды ДОС, как продуманно выби¬ рать программы из сотен тысяч, предлагаемых на продажу. Обе половины книги основаны на практических советах, что выде¬ ляет ее среди других. Вы узнаете, как заставить персональный ком¬ пьютер эффективно работать. Что у вас работает хорошо и что не работает? Что покупать, что использовать? Ни один из этих советов не будет теоретическим: все они основаны на почти 20-летнем опыте работы на всех видах компьютеров — от микро- до суперЭВМ. По¬ следние восемь из этих 20 лет были посвящены работе над проекта¬ ми на персональных компьютерах (часто по 10 и более часов в день, шесть или семь дней в неделю), начиная от программирования и кончая написанием статей для журналов ”РС Week” или ”РС Maga¬ zine”, над всеми мириадами работ, которые может выполнять персо¬ нальный компьютер и которые помогают в управлении компанией. Книга — результат этого опыта и здравого смысла, на который мы все полагаемся, который эта книга поможет вам развить и который так необходим для работы на персональном компьютере. Если вам понадобится помощь Возможно, что вы впервые оказались владельцем персонального компьютера полным энтузиазма. Возможно, работа заставила вас ис¬ пользовать компьютер, а вы не совсем уверены в том, что вам хо¬ чется иметь с ним дело. Возможно, вы рассматриваете вариант при¬ обретения компьютера и хотите немного узнать о том, что это вам даст (и как с пользой потратить ваши деньги). Если вам подходит одно из этих трех описаний, то эта книга — для вас. Это книга-помощник для начинающих пользователей, которым предстоит работать с компьютерами семейства IBM PC. Как полу¬ чить от нее максимальную помощь? Если вы совершенный новичок в мире компьютеров и совсем ни¬ чего в них не понимаете — прочтите гл.1. Она поясняет основные детали работы компьютера. Можно обратиться к словарю в приложс- 7
нии А. В нем определены некоторые наиболее часто используемые технические термины, относящиеся к компьютерам. Определения даются в повествовательной форме, такой словарь, на мой взгляд, легче и читать и понимать. Просмотрите названия глав. Они напра¬ вят вас к тому материалу, который вам нужен. Эта книга написана для того, чтобы помочь вам справиться с ма¬ ленькими неприятностями в начале работы с компьютером. Всякий новый опыт приносит свои удовлетворение и огорчение, однако последнее частенько приходит раньше. Компьютеры теперь служат всем, а ’’компьютерофобия” относится к легендам. Являетесь ли вы невольным новичком или начинающим энтузиастом, эта книга сде¬ лает освоение ДОС более легким делом. В данной книге, между прочим, я не буду вдаваться абсолютно во все технические подробности использования ДОС. Это замечательно делают руководства, поставляемые с вашим компьютером. Но я по¬ могу вам глубже понять то, что в них написано, помогу начать ра¬ ботать. И еще кое-что, чего нет в ваших руководствах: книга даст вам совет относительно того, что хорошего и что плохого в том про¬ граммном обеспечении, о покупке которого вы можете подумать. Различия в ДОС Как и все остальное, что создало человечество, ДОС имеет историю, и эта история отражена в номерах версий, таких как 2.11 и 3.20, которые показывают, какую из редакций ДОС вы имеете. Для того чтобы знать, где вы находитесь с вашей ДОС, не¬ обходимо хоть немного знать о номерах версий. Основные изменения в ДОС отражаются в целых числах, как, например, три — в версии 3.20. МеньШие числа означают меньшие, менее значительные изменения в развитии ДОС. Конечно, в каждой версии ДОС имеются улучшения и дополнения. Единственное, что действительно важно, иметь версию не ниже 2.00. Версии серии 1 были, в действительности, "детством” ДОС. Если же каким-либо образом вы имеете одну из этих версий, что очень маловероятно, вам необходимо обменять ее на более позднюю. Какая бы версия ДОС ни поступила с вашим компьютером, это скорее все¬ го та версия, которая подойдет вам для вашей работы. Узнать, какую из версий ДОС использует ваш компьютер можно несколькими спо¬ собами: один способ — это посмотреть ваше руководство по ДОС. В нем на обложке или титульном листе должен быть указан номер версии. Еще двумя способами ваш компьютер может сам сообщить вам, какая в нем находится версия ДОС. Когда вы запускаете компьютер с ДОС, то в начале сеанса вы обычно видите номер версии. В составе ДОС имеется также и команда VER, которая заставляет ДОС саму сообщить вам свой номер версии. Я рассмотрю в начале книги вопрос о том, как запустить ком¬ пьютер с ДОС и использовать команду VER .
ДОС и ваш ПК Перед тем, как закончить эта введение и ринуться в ДОС, давай¬ те приостановимся и определим два термина: ДОС и семейство пер¬ сональных компьютеров фирмы IBM. ДОС (DOS) — это имя, используемое фирмой IBM для обозначе¬ ния основной операционной системы, которая работает на семействе IBM PC. ДОС была создана для IBM фирмой Microsoft, ведущей фирмой по производству программного обеспечения для персональ¬ ных компьютеров. Фирма Microsoft также создала версии ДОС для многих других компьютеров. Эти другие версии обычно называют MS-DOS (сокращение от Microsoft DOS). Чтобы отличить версию фирмы IBM, многие называют ее РС- DOS. В действительности, эту версию называли PC-DOS так часто, что многие полагают, что PC-DOS является официальным названи¬ ем этого продукта, данным ему фирмой IBM. Это неверно. Называем ли мы ее ДОС, PC-DOS или MS-DOS, мы, в сущности, говорим об одном и том же. Различия между ДОС для разных компьютеров весьма незначительны. Но, так как эта книга посвящена работе на персональных компьютерах семейства IBM с версией ДОС IBM, то в случае, когда между одной и другой версиями ДОС имеются разли¬ чия, мы будем придерживаться стандарта IBM. Ну, а что же сказать о компьютерах, которые используют ДОС? Сейчас существуют два основных их семейства: исходные модели PC, XT и АТ фирмы IBM и более новая серия PS/2. Оба эти семей¬ ства используют одну и ту же ДОС и исполняют те же программы, но имеют различающееся внутреннее устройство. Сама фирма IBM уже больше не производит исходные модели PC, XT и АТ, но мно¬ гие другие компании, причем многие из них весьма известные (на¬ пример фирма Compaq Computer), производят высокопроизводитель¬ ные компьютеры, совместимые с моделью АТ. Эта модель все еще весьма популярна, и на ней работает все программное обеспечение, которое может работать на компьютерах семейства PS/2. Благодаря широкой популярности исходное семейство PC, а не¬ давно и семейство PS/2, распространились значительно шире, чем предполагала фирма IBM. Другие фирмы, производя совместимые с IBM модели, предлагают комбинации характеристик, которых в точ¬ ности не достигает ни одна из моделей фирмы IBM, расширили воз¬ можности нашего выбора. Среди этого расширения семейства замет¬ ны многие модели фирм Compaq, Tandy и Toshiba. По правде гово¬ ря, у старой работяги АТ больше хороших модификаций, чем мест, куда бы мы могли воткнуть дискету. Все эти машины могут считать¬ ся законными членами полного семейства PC. Все они используют ту же операционную систему DOS, о которой мы узнаем из этой книги. 9
Глава 1 КОМПЬЮТЕР. ОСНОВНЫЕ ПОНЯТИЯ Для того чтобы успешно использовать компьютер, вы должны представлять себе его устройство. Под этим я не подразумеваю уровень понимания специалиста того, что происходит под крышкой вашего компьютера. Я имею в виду элементарную вещь, практическое знание, подобное тому, каким должен обладать не механик, а водитель автомобиля для того, чтобы поездка была безопасной. Как "водитель” компьютера, вы должны иметь общее представление о том, что в нем происходит. В этой главе будут изложены некоторые основные понятия. Я изложу материал, разбив его на четыре части. Во-первых, мы метафорически взглянем на компьютер, как на живого конторского работника. Затем мы рассмотрим, что может делать этот "конторский работник”, а чего не может. Вслед за этим я расскажу о возможностях операционной системы такой, как ДОС. И, наконец, мы закончим эту главу практическими вопросами — рассмотрим, какими двумя весьма различными способами можно использовать ваш компьютер. Компьютер — исполнитель заданий Наилучшим известным мне способом объяснить, как работает компьютер, помочь осмыслить значение его составных частей и показать, как эти части работают совместно, является представление о компьютере как о конторском работнике. Давайте предположим, что вы на работе. Ваш начальник сообщает, что у вас будет новый личный помощник, перед которым ставится одна единственная задача — помогать вам в вашей работе. Но конфиденциально начальник сообщает^ что этот помощник не очень-то сообразительный. Целеустремленный — да; упорный — да; но сообразительный, умный, с воображением? Совершенно нет! Этот помощник поможет вам сделать все, что бы вы ни попросили, но ему надо давать утомительно детальные инструкции. Это работник с огромным количеством энергии, но совершенно без инициативы, без здравого смысла, без независимости. И я вам не нужен для того, чтобы раскрыть личность вашего нового помощника — очевидно, что это ваш компьютер. Давайте тогда посмотрим, что ваш компьютерный помощник может вам предложить, что ему надо, чтобы сделать какую-либо работу, и что вам придется сделать, чтобы получить от него какой-либо полезный результат. Ю
Части компьютера Как говорят, у компьютера есть электронный мозг. Этот мозг (и вы наверняка увидите, что это ’’куриный мозг”) называется в компьютерной терминологии различными именами. В основном это центральное процессорное устройство или, для краткости, процессор. Этот ’’мозг” является центральной, основной частью компьютера, и люди часто обращаются к одной этой части как ко всему компьютеру в целом. Такое описание весьма точное, но, естественно, может оказаться неловко обращаться к одной из составных частей как к компьютеру, так что, в основном, я буду называть это процессором. Если мы решим не обращать внимания на ум и творчество, которые не может дать машине даже самый изощренный искусственный интеллект, мы можем сказать, что процессор вашего компьютера аналогичен мозгу. Это справедливая аналогия, так как процессор компьютера, так же как и мозг человека, это то, что может понимать и выполнять указания. Итакч у нас есть мозг вашего компьютерного помощника — процессор. Что же будет следующей составной частью? Если ваш помощник намеревается сделать какую-либо работу, ему нужно рабочее пространство. Для конторского работника этим пространством будет стол. Какая же часть вашего компьютера является его рабочим пространством, его столом? Вы можете удивиться, узнав, что эту составную часть мы называем памятью компьютера. Память Сейчас мы все знаем, что у человека есть память, и большинство людей слышало, что и у компьютера есть нечто, называемое памятью. Так что вполне естественно было бы предположить, что память компьютера аналогична нашей памяти. Неверно! В нашей памяти мы запоминаем различные вещи, это более или менее постоянная запись информации в нашем мозге, в то время как в памяти компьютера ничего постоянного не записано. Напротив, память компьютера — эта та его составная часть, которую он использует как рабочее пространство. Память — это то место, куда компьютер помещает информацию, с которой он работает в настоящее время. Это совсем как стол конторского работника. Когда люди выполняют некоторую работу, информация занимает столько места на столе, сколько для нее необходимо. Когда работа закончена, стол очищают и подготавливают для другой работы. То же самое происходит и с памятью компьютера. Компьютер использует свою память временно. Когда текущая работа выполнена, большая часть памяти может быть очищена для другого задания. п
Аналогия между памятью компьютера и столом конторского работника идет даже дальше. В принципе, ваше рабочее пространство — это весь стол, но часть его, вероятно, занята телефоном или стаканчиком с карандашами. С памятью компьютера дело обстоит точно так же. В целом, большая часть памяти доступна компьютеру как рабочее пространство, но определенные части памяти предназначены для одного или другого специализированного использования. Некоторые вещи, которые вы делаете за столом, требуют очень мало места. Вам не надо много места, чтобы написать письмо. Но если вы пишете отчет, то места вам надо значительно больше — место для писчей бумаги, для заметок, для словаря. Практически на любом столе достаточно места для такого рода работы. Но если вы выполняете очень сложное задание — ну, скажем, некоторую сложную бухгалтерскую работу, которая требует просмотра информации во всякого рода бухгалтерских книгах и журналах, то вам потребуется гораздо больше места. Возможно больше, чем имеется на обыкновенном столе. В памяти компьютера дела обстоят таким же образом. Во-первых, чем сложнее задача, тем больше памяти требуется компьютеру для работы. Во-вторых, как и столы, память компьютера обычно бывает стандартных размеров. Для компьютеров размер их памяти обычно измеряют в К, или тысячах символов (или, в терминологии компьютеров, в байтах) емкости памяти. Один К составляет 1024 (или 210) байт. Хотя байт может содержать любую информацию, для удобства мы будем представлять 1К просто как 1000 символов — объем, занимаемый 175 словами на английском языке. Это, примерно, объем этого параграфа. Более мощные машины идут на шаг дальше — их память измеряется в М или миллионах байтов. В одном М 1048576 байт (или 220) и его, как вы могли слышать, называют ’’мегабайт”. Типичный объем памяти персонального компьютера составляет от 640К до 1М (1024К). Хотя многие персональные компьютеры имеют меньший, чем этот, объем памяти, в настоящее время существует тенденция к большей гибкости и, следовательно, к большему объему памяти. Но вернемся к нашей аналогии. Память компьютера напоминает канцелярский стол еще одним своим качеством. Для обычных, простых задач используется небольшая часть памяти/стола. Для более сложных работ используется все больше и больше памяти до тех пор пока, наконец, мы не начнем работу, которая не поместится в имеющееся у нас пространство. Поэтому хорошо иметь в компьютере много памяти. И так как память является относительно дешевой, иметь много памяти — это недорогая гарантия того, что мы не наткнемся на слишком большую задачу, которая не сможет в этой памяти поместиться. И опять, так же как и в случае с кон¬ торским работником, наличие большого рабочего пространства в об¬ щем не влияет на скорость выполнения работы. Скорость зависит от 12
того, насколько смышленый работник. Размер рабочего пространства в основном влияет на то, какая большая и сложная работа может быть выполнена. Итак, в понимании частей нашего компьютера мы рассмотрели процессор (мозг) и память (стол/рабочее пространство). Что же сказать об остальных частях компьютера? Давайте рассмотрим, что представляет для вашего компьютера дисковая память. Дисковая память Для компьютера дисковая память — это эквивалент стеллажа с лапками для конторского работника. Дисковая память бывает нескольких видов: гибкие дискеты, кассеты с твердыми дисками, и как сменные, так и несменные жесткие диски. В зависимости от того, о чем вы говорите, они могут называться дисками, дискетами, несменными дисками, жесткими дисками, винчестерскими дисками, кассетами или мини-дисками. Функционально они служат в нашем компьютере для одной и той же цели. Они представляют собой место, в котором хранится информация в то время, когда компьютер непосредственно с ней не работает. Информацией могут быть либо данные, либо программы. Когда компьютер обрабатывает информацию, она находится в памяти (на столе); когда компьютер не использует информацию, она находится в дисковой памяти. Дисковая память не только подобна стеллажу с папками, но и перенимает от него и часть терминологии. Внутри дисковой памяти наша информация организована в файлы (в английском языке слову ’’папка” соответствует слово ’’file”). Каждый файл содержит ту информацию, которая соответствует его назначению: записанный текст, бухгалтерские цифры, наборы команд (программы) для компьютера и т.д. Когда компьютеру требуется информация из файла, он ’’открывает” файл, читает из него или пишет в него и ’’закрывает” файл. Здесь компьютерная терминология близко совпадает с тем, что работники делают с папками. Есть только одно серьезное отличие в том, как компьютеры используют файлы, а люди — папки. Если вы или я работаем с папкой со стеллажа, то мы обычно кладем на стол всю подшивку. Способ использования файлов компьютером несколько иной. Процессор компьютера может работать только с той информацией, которая находится в памяти. Так что компьютеру с ограниченным объемом памяти приходится одновременно работать только с маленькими фрагментами большого файла — аналогично тому, как если бы мы одновременно брали из подшивки только по одной странице. 13
Периферия Я уже упомянул о том, что когда компьютеры работают с файлами, они ’’читают” и ’’пишут”. Они также могут читать и писать и в некотором смысле могут даже разговаривать по телефону. Компьютеры делают это с помощью так называемых устройств ввода-вывоДа или периферийных устройств. Для вывода информации у персонального компьютера обычно имеется экран дисплея. Часто компьютер также имеет еще и принтер. Принтер эквивалентен тому, что у компьютера ’’под рукой” всегда есть пишущая машинка. Экран дисплея и принтер представляют собой устройства ввода-вывода. В основном компьютер считывает (кроме, конечно, своего дискового стеллажа с папками) со своей клавиатуры. Он читает то, что мы печатаем на клавиатуре. Дисковая память компьютера представляет собой еще одно устройство ввода-вывода. Компьютер может также ’’воспользоваться” телефоном для того, чтобы ’’поговорить” с другим компьютером или ’’писать” на удаленное периферийное устройство (написать, например, через телефонную линию на принтере, расположенном где-то в другом месте). Для того чтобы пользоваться телефоном, компьютеру необходимы специальные приспособления для связи с телефонной линией. Эти приспособления называются коммуникационным адаптером и модемом. Они производят преобразования, необходимые для перевода речи компьютера в телефонную речь и наоборот. Адаптер и модем могут быть встроены в ваш компьютер, а могут размещаться отдельно от его корпуса. Коммуникационный адаптер может также присоединить к вашему ПК телефакс. В дополнение к тем устройствам ввода-вывода, которые я уже упомянул, существует огромное количество видов периферийных устройств, которые можно соединить с вашим компьютером. Многие из них сконструированы для очень специальных целей. Это лазерные принтеры, способные напечатать все, начиная от исключительно мелких изображений до текста типографского качества, и плоттеры, которые созданы для вычерчивания изображений при помощи цветных перьев. Существуют специальные вводные устройства, которые может читать компьютер, такие как мышь, позволяющая тщательно управлять положением указателя на экране дисплея, а также делать такие работы как редактирование документов и создание изображений значительно более легким занятием. Это, в основном, полный набор составных частей компьютера: процессор (мозг), память (стол), дисковая память (стеллаж с папками), телефон (адаптер и модем), пишущая машинка (принтер) и т.д. Это — аппаратура — физическое тело компьютера как 14
работника. А что же с программным обеспечением компьютера, о котором мы так наслышаны? Программное обеспечение Аналогия нашего компьютера с верным, но не очень смышленым помощником поможет нам также объяснить программное обеспечение — компьютерные программы. Обыкновенно люди имеют общее образование, общие умственные навыки и знания, которые мы называем профессиональными навыками. У компьютера мало собственных профессиональных навыков, но этот верный, неразумный помощник сможет сделать все, что мы сумеем дотошно объяснить ему. Сам по себе компьютер ничего не умеет делать. Для того чтобы сказать, что надо делать, ему нужно дать программы — это тот помощник, который буквально ’’следует писанному”. Для того чтобы совершить некоторую работу, компьютеру необходимо сперва обратиться к дисковому файлу в котором содержатся команды программы, точно говорящие ему, что надо делать. Когда используется компьютер, для того чтобы заставить его работать, первым делом надо указать ему, какой программе — какому набору инструкций ему надлежит следовать. Программа может делать все, чему люди научили компьютеры: от бухгалтерских расчетов до игр. (Некоторые программы, которые мы исполняем на наших компьютерах, являются средствами для облегчения написания нами большего числа других программ.) Знакомство с ДОС Одна из программ, которую может исполнять компьютер, — это главная программа, облегчающая исполнение других программ. Эта главная программа называется операционной системой, являющейся компьютерным эквивалентом общего образования рабочего человека или общими навыками конторского работника. Если бы вы или я работали клерком в конторе, то нам бы пришлось пройти специальные курсы обучения, например по делопроизводству. Для такого рода работ у компьютера имеются программы, которые определяют, как выполнять такие работы. Но как от клерков, от нас будут ожидать способности делать обычные вещи: заточить карандаш, заклеить конверт или даже найти нужные папки на стеллаже. Основные навыки такого рода даются компьютеру его операционной системой. Операционная система заботится об обычных заданиях, которые необходимо выполнять любой программе. Обратите внимание на то, что я употребил слово ’’основные”, а не ’’второстепенные”. Именно операционная система выполняет очень важные рдботы, заботясь о 15
стеллаже с папками — дисковой памяти компьютера. Итак, мы подошли к основному предмету нашей книги — операционной системе, Дисковой операционной системе, называемой ДОС. Компьютер за работой Теперь мы готовы увидеть как работает персональный компьютер в целом. Для того чтобы было понятнее, мы будем придерживаться аналогии с глупым, но верным компьютерным помощником. Когда мы приходим в контору и нам нужен компьютер, то мы его включаем. Наш помощник докладывает, что он работает. Мы даем ему первое задание — запустить операционную систему. За ночь наш помощник забыл почти все, так что с утра ему необходимо достать со стеллажа с папками (дисковой памяти) общие руководства (операционную систему) и поместить их на стол (в память). Как только мы включили компьютер, он готов к работе, и мы можем сказать ему, что делать дальше. Мы сообщаем ему имя программы. Это может быть программа обработки текста, например Microsoft Word, или электронная таблица, например Lotus 1-2-3. После того, как ему задали название работы, помощник может достать со стеллажа (диска) специфические указания (программу) и все приготовить на столе (в памяти). В течение некоторого времени компьютер помогает нам с заданной работой. Когда мы закончили, мы командуем ему убрать программу. Когда мы хотим сделать что- нибудь еще, то задаем компьютеру имя другой программы — и она запускается. Во время работы компьютера используется дисковая память для того, чтобы взять или сохранить нашу информацию. Он использует экран дисплея, чтобы говорить с нами, принтер — для выдачи нам письменных ответов, клавиатуру — для восприятия наших команд. Он может использовать телефон для приема или передачи информации от другого компьютера или телефакса. Но чего бы он ни делал — он всего лишь простой помощник. Что может и чего не может компьютер Временами компьютер оказывает большую помощь, а временами больше вредит, чем помогает. Когда мы обучаем его тому, как делать различные операции (а это весьма трудоемкое занятие), то нам приходится определять пределы его возможностей (что требует не меньше времени). В некоторых работах компьютер помогает, в других — нет. В целом, компьютер может быть весьма полезным, но требуется помнить, что существуют некоторые операции, которые он может делать, и очень много операций, которые он делать не может. Еще 16
более важно то, что многие действия лучше выполнять вручную, чем пытаться сделать их на компьютере. Во-первых, давайте рассмотрим, что же компьютер может делать очень хорошо. Это настоящее чудо для арифметики — быстрое и непогрешимо точное. Арифметика — это то, что компьютеры делают лучше всего. Когда вы используете компьютер для чего-нибудь другого, такого как написание письма с помощью программы текстового процессора, то на самом деле основное занятие компьютера в это время — это арифметика. Так что, если нам надо что-то подсчитать, то компьютер для этого — первоклассная вещь. Самые известные успехи компьютера в области арифметики связаны с электронными таблицами, такими как Excel и Lotus 1-2-3. Действительно, электронные таблицы — это хороший пример превосходных вычислений. Они быстры и удобны, они позволяют многим людям производить все виды финансового планирования и численных вычислений, каких до появления этих программ не стоило и затевать. Выполнение вручную той работы, которую выполняют электронные таблицы, так сложно, что мы вполне можем сказать, что это невозможно. Короче говоря, компьютеры могут сделать невозможно длительные вычисления таким же легким делом, как почесывание носа. Другая вещь, которую компьютеры делают очень хорошо, — это хранение записей, но хранение записей определенного вида. С их большой дисковой памятью компьютеры могут хранить большой объем данных. И при определенных обстоятельствах компьютеры могут эффективно выискивать именно ту информацию, которая нам нужна. Но также верно и то, что хранение многих видов простых записей на компьютере более трудоемко, чем вручную. Эти вещи стоит знать. Даже слегка влюбившись в то, что может делать компьютер, вы можете так им увлечься, что попытаетесь заставить его делать для вас все. Остерегайтесь. Не спрашивайте у него, сколько будет 2 + 3, но используйте его для сложения сотен квадратных корней — для этого он больше подходит. То же самое и с хранением записей. Если у вас есть информация, которую достаточно легко организовать вручную, то, вероятно, вам понадобится больше усилий, чтобы следить за ней с помощью компьютера. С другой стороны, если вы не можете уследить за своими записями, то обратитесь к компьютеру. Люди до сих пор думают, как усовершенствовать таланты компьютера. Мы расширяем диапазон применений, использование компьютера в которых является практичным. Однако некоторые вещи, которые совсем даже не подходят к естественным навыкам в арифметике и хранении записей, оказались очень подходящими для компьютеров. Лучший пример — это текстовый процессор, который обозначает работу компьютера над письменным словом: восприятие письменного текста, изменение (редактирование) его, слежение за ним, проверка правил правописания и грамматики, форматирование 17
его так, чтобы напечатанные страницы были аккуратны и хорошо выглядели. Это одна из тех задач, решать которые компьютер научился (посредством программирования) совсем недавно. И тем не менее это стало одним из наибольших успехов компьютеров. Так что уже сейчас есть, а в будущем будут и еще задачи, которые компьютер может хорошо решать , хотя они и не требуют большого количества вычислений. Существуют, однако, ' задачи, которые компьютеры не могут выполнить сейчас и, вероятно, не смогут и в будущем. Это интеллектуальные задачи любого вида. Компьютеры очень хорошо справляются с рутинной работой. Хотя с помощью искусственного интеллекта можно сделать так, что компьютер будет казаться обладающим рассудком, задачи, требующие воображения, интуиции и творчества, по крайней мере сейчас, остаются уделом людей. Вероятно, компьютер может помочь в этой работе, но все же это работа для человека. К чему все это сводится: вы можете ожидать, что компьютер справится с любой механически определенной работой, но никогда не справится с работой, требующей рассудительности. Таким же образом вы можете ожидать, что компьютер успешно справится с любой работой, попадающей в нужный диапазон не слишком сплошной для вашего компьютера и не слишком легкой, чтобы быть реализованной на компьютере. Не вините машину, если вы захотите сделать на ней то, для чего она не предназначена. Значение операционной системы Итак, вы узнали, что представляет собой компьютер. Вы также узнали, что он может делать. Вы получили некоторые разъяснения о роли ДОС — операционной системы компьютера. Но пока это все, и на данный момент может показаться, что операционная система не такая уж важная штука. В действительности же, операционная система — это очень важная вещь; тому есть несколько причин. Во-первых, операционная система важна потому, что она устанавливает как окружение, в котором вы взаимодействуете с компьютером, так и окружение, в котором работают ваши программы. Это означает, что операционная система задает рабочий характер вашего компьютера, и степень этого зависит от того, какой именно компьютер вы имеете. Аналогичным образом операционная система устанавливает многие практические ограничения возможностей вашего компьютера — так же, как это делает специфическое оборудование. Операционная система оживляет ваш компьютер. Без нее ваш компьютер бесполезен как хлам , как автомобиль без топлива. С ней же компьютер обретает и жизнь, и конкретный характер. Например, ваши друзья, выросшие в крупных городах, в целом имеют другие 18
характер и стиль жизни, чем друзья, выросшие в деревне. То же самое и с операционной системой. С одной операционной системой ваш компьютер будет иметь один стиль, с другой операционной системой — другой. И из-за того, что этот стиль сильно определяет ваше взаимодействие с компьютером, характер вашей операционной системы влияет на то, как вы используете компьютер. Есть и еще одна причина важности вашей операционной системы. Компьютерные программы не будут работать просто с какой-нибудь операционной системой. Как правило, они должны соответствовать операционной системе, под управлением которой вы их запускаете, а это значит, что число доступных для вашего компьютера программ сильно зависит от популярности используемой операционной системы. Благодаря, с одной стороны, огромному успеху персональных компьютеров фирмы IBM, которые впервые представили операционную систему ДОС, а с другой стороны, великолепной репутации фирмы Microsoft, ДОС стала доминирующей операционной системой настоящего поколения персональных компьютеров. Существует и еще одна причина важности операционной системы, и относится эта причина к будущему. Операционная система может быть либо открыта к предполагаемому развитию в области вычислительной техники, либо может отрезать себя от будущего. Опять-таки, к счастью для нас, ДОС имеет перед собой хорошо спланированное будущее, основанное на совместимом семействе операционных систем. В этом есть и связанное с этим преимущество. Когда вы меняете персональный компьютер на более новый, вы не хотите отказываться от всех достигнутых компьютерных навыков и опыта. Здесь ДОС опять имеет плюс. Из-за того, что она является доминирующей операционной системой в своей части компьютерного мира, шансы того, что ваш новый компьютер будет использовать либо ДОС, либо OS/2 (которая включает многие из команд ДОС) весьма велики. Эта ’’совместимость снизу вверх” гарантирует не только полезность ваших навыков, но, вероятно, и полезность ваших программ. 19
Глава 2 НАЧАЛО РАБОТЫ С ДОС Когда вы пытаетесь достичь какой-то новой цели, жизнь часто кажется повернутой вверх тормашками — обычно кажется, что все необходимо узнать одновременно. Что вам делать сначала? Изучив, как начать работать с ДОС, мы преодолеем эту проблему. Самый лучший способ — проделать это вместе с кем-нибудь. Если вы сможете найти кого-нибудь терпеливого и знающего, что же надо делать, попросите его сопроводить вас в этих основных шагах. С помощью опытного приятеля или коллеги вы можете бегло проглядеть остаток этой главы. Второй наилучший способ начать работу — это продолжить чтение. Установка ДОС Перед тем, как вы начнете работу с ДОС, вам необходимо сделать несколько очень важных вещей. Не совсем перед тем, как вы начнете, но в самом начале этого процесса. Вам не стоит делать этих ранних шагов, имеющих отношение к безопасности вашей ДОС, до тех пор, пока вы хотя бы немного не освоитесь со своим компьютером. Если это начинает напоминать вам загадку о "курице и яйце”, то это не так. Чтобы в самом начале не чувствовать себя потерянным, вам надо проработать следующее: во-первых, вам надо научиться обращаться с дискетами и подготавливать их к работе. Во-вторых, вам надо научиться работать с жесткими дисками и узнать, как использовать их наилучшим образом. Затем вы узнаете как установить ДОС на вашем собственном компьютере и что происходит, когда вы работаете с ДОС. Стоит вам раз понять, что от вас требуется, и вы уже сможете сделать это. Вы пройдете через основные операции как с дискетами, так и с жесткими дисками: форматирование, копирование, тес¬ тирование и, конечно, их использование. Приступим к работе. Что необходимо знать в первую очередь В первую очередь необходимо знать следующее: Как ДОС ’’усаживается за столом” в начале своего рабочего дня; Как заставить ДОС выполнить команду; С какими особыми проблемами вы столкнетесь в начале работы; 20
Как работает защита от этих проблем; Что представляет собой установка дискет и жестких дисков. Давайте начнем с того, что делает ДОС в начале своего рабочего дня. Когда ваш компьютер ’’просыпается”, он знает очень немного, так как программы в него еще не загружены. Однако в вашем компьютере есть две специальные встроенные программы, и он знает две вещи: как произвести небольшую самопроверку и убедиться, что все исправно, и как запустить операционную систему. Эту программу запуска обычно называют начальным загрузчиком. Операция загрузки происходит в два этапа. Сначала запускается встроенная з ваш компьютер малюсенькая программа. Эта простая загрузочная программа читает самое начало дискеты или жесткого диска. Если эта дискета или диск подготовлены для загрузки, то в этом месте ДОС оставляет свою собственную программу — программу, которой известно, как достать и запустить саму ДОС. Программа в вашем компьютере ничего в действительности о ДОС не знает. Программа не знает и не заботится о том, запускает ли она ДОС или какую-нибудь другую операционную систему. Она просто читает начало диска, где собственно и находится процедура запуска самой ДОС. Вторая часть этой процедуры загрузки, являющейся частью ДОС, сама запускает всю оставшуюся часть. Она читает оставшуюся часть ДОС с диска, и вот операционная система уже работает. Все это, однако, скрыто от вас, и деталей вы не видите. Вы просто наблюдаете, как компьютер работает сам по себе до тех пор, пока ДОС не будет запущена. Когда ДОС готова начать работу, то для того, чтобы следить за ходом событий, она запрашивает текущие дату и время. Задавать правильные дату и время — хорошая привычка, так как это позволяет ДОС следить за временем создания ваших данных, а это может оказаться впоследствии очень важным. Установив однажды ДОС на вашем компьютере, можно заставить операционную систему автоматически извлекать значение даты и времени из часов, питаемых от батарейки и расположенных в системном блоке. Если вы так и сделаете, то при включении компьютера не придется каждый раз производить эту операцию. Если вы включили компьютер и он не спрашивает дату и время, то это значит, что кто- то, возможно техник из магазина, где вы покупали компьютер, уже установил для вас ДОС. Точный формат запрашиваемых ДОС даты и времени может слегка отличаться от версии к версии, так что здесь показан типичный запрос. ДОС выводит его на экран и ждет, пока вы не напечатаете дату: Current date is Tue 1-01-1980 Enter new date: 21
Вы печатаете дату, используя для разделения месяца, дня и года дефис (-) или косую черту (/). (Вы, между прочим, можете ввести такую дату, как 4 июля 1992 г. в виде 7/4/92, и если у вас нет специального желания, то нет необходимости печатать ее как 07/04/1992.) После того, как вы напечатали дату и нажали клавишу Enter, точно таким же способом ДОС запрашивает время: Current time is 0:00:12.34 Enter new time: И опять вы вводите время, используя для разделения часов, минут и секунд двоеточие (:). ДОС использует двадцатичетырех¬ часовые часы, что означает, что после полудня вы вводите число 12 и больше. Например, 2 часа пополудни — это 14 и т.д. Есть способ обойти эти начальные операции, но я расскажу о нем позже. Сейчас же я бы не хотел уточнять детали. Вам достаточно знать, что если в вашем компьютере установлены определенная аппаратура и программное обеспечение, то загрузочные сообщения, которые вы видите, могут весьма отличаться от тех, что я вам продемонстрировал. После того, как выполнены предварительные операции, кратким сообщением, обычно включающим в себя вид вашего компьютера и номер версии ДОС, операционная система объявляет, что она готова к работе. Ниже приведен типичный пример для DOS 3.3: The IBM Personal Computer DOS Version 3.30 (C) Copyright International Business Machines Corp 1981,1987 (C) Copyright Microsoft Corp 1981,1986 А вот типичный пример того, на что фирма IBM изменила это сообщение для версии DOS 4.0: •IBM DOS Version 4.00 Дата, время и сообщение о начале работы. Так ДОС начинает свой рабочий день. Теперь давайте посмотрим, как указать ДОС, чтобы она выполнила какую-нибудь работу. Этот процесс — простой и очень краткий диалог между вами и ДОС. ДОС сообщает вам, что она готова воспринять команду, а вы говорите ДОС, что надо делать. 22
Задание команды ДОС Операционная система сообщает вам о том, что она готова воспринимать команду, выдачей подсказки ДОС, которая буквально подсказывает вам, что надо ввести команду. Типичная подсказка представляет собой заглавную букву ”С” и символом ’’больше”: с> Часть ”С” подсказки показывает, какой дисковый накопитель ДОС используется в этот момент для получения и сохранения информации. Вы можете увидеть и другую букву алфавита, но эффект будет тот же. (Более подробно о том, что означает эта буква, мы узнаем в гл. 3). Когда вы видите подсказку ДОС, возможно с> или а>, вы знаете, что вы разговариваете с ДОС и что она хочет, чтобы вы сказали ей, что делать. Она ждет указаний. С другой стороны, если вы видите на экране дисплея что-то другое — не подсказку ДОС, то вы знаете, что перед вами не ДОС, а какая-то другая программа, ждущая указаний. Подсказка — это часть диалога ДОС. Чтобы действительно заставить ДОС сделать какую-нибудь работу, вам надо дать ей команду. Что такое команда, и что эти команды могут делать? Если выразиться совсем просто, то команда — это имя программы, которую компьютеру надо исполнить. Эта программа-команда может быть именем программы, которую вы написали, а может быть именем программы, которую вы купили, как например Lotus 1-2-3, Norton Commander или WordPerfect. Это может быть имя программы, являющейся частью самой ДОС, такой как TIME, которая показывает вам текущее время и позволяет изменить его. И, наконец, это может быть командный файл, о котором я расскажу вам в Гл.7. (Командный файл содержит список команд, которые исполняются автоматически одна за другой, как если бы вы вводили их с клавиатуры.) Теперь вы видите, что существуют четыре вида команд: ваши собственные программы, покупные программы, собственные программы ДОС и командные файлы ДОС. Если в настоящее время проведение этого различия для вас несколько затруднительно, то можете об этом не беспокоиться. Разбиение команд на четыре категории просто позволяет нам логичнее рассуждать о них. Хотя между категориями существуют значительные различия, все они всего лишь программы, и мы можем поручить ДОС исполнить их для 'нас. Теперь посмотрим, как заставить программы выполняться. Это просто:* наберите имя программы и нажмите клавишу Enter на вашем компьютере. ДОС воспримет эту команду, с^ма определит, к 23
какому типу относится эта команда, найдет программу и заставит ее работать. Все это делает ДОС. Все, что вам надо сделать — это набрать имя команды. Обретение чувства защищенности Итак, вы узнали, как ДОС запускается и как она воспринимает ваши команды. Но что же это за специальные проблемы, о которых я упомянул в начале этой главы? Насколько они серьезны и как вам защититься от них? В действительности, проблем не так много, и они, в основном, касаются возможности потери данных. Сломать сам компьютер достаточно сложно, если вы, конечно, не выроните его из окна или не прольете внутрь него кофе. Если вы ведете машину на хорошей скорости и внезапно дадите задний ход, то вы очень быстро сломаете вашу машину. Наезд на дерево также повлечет за собой большие повреждения. Но при помощи ’’плохой езды” компьютер сломать нельзя. Вы можете повредить его физически неправильным употреблением, но никак не набором на клавиатуре неправильных команд. Основная проблема, с которой вы столкнетесь как пользователь компьютера, — это потеря вашей единственной копии некоторой информации. Вы можете потерять данные двумя способами. Олин способ — это физическое повреждение дискеты, на которой записаны данные, аналогично тому, как если бы вы взяли пластинку от проигрывателя и разбили ее. Другой способ — это ошибочно сообщить компьютеру, что данные не нужны, что эквивалентно тому, как если бы вы взяли кассету с записью музыки и стерли ее. Кстати говоря, я разработал программы UnErase (поставляемые с Norton Utilities) для того, чтобы помочь людям восстановить случайно стертые данные. Существуют способы уменьшения вероятности того, что вы сделаете с компьютером что-либо эквивалентное разбиванию пластинки или стиранию пленки. Но наиболее эффективная защита от потери данных — это просто хранение дополнительных копий. Поэтому, первым делом необходимо сделать копии ваших дискет с ДОС. И таким образом вы можете начать работать с копией, зная, что даже если вы сделаете что-то неправильно, у вас останется оригинал. Есть еще одна вещь, которой вам надо научиться, прежде чем вы начнете работу. Вы должны знать основы подготовки дискет. Вы копируете данные с диска, включая данные с дискет с ДОС, на чистые диски. Но чистый диск не может быть использован в том виде, в котором он поступает к вам — сначала дискета должна быть отформатирована. 24
Форматирование Что такое форматирование? Представьте, что вы берете лист бу¬ маги и с помощью линейки рисуете на нем линии, чтобы затем ровно писать по этим направляющим. Совершенно новый диск — это совсем как чистый лист бумаги. Но компьютеру для создания обрамления для ваших данных требуется записанный на диск эквивалент таких направляющих линий. Форматирование создает это обрамление — направляющие, которые ДОС использует при записи на дискеты. Вы можете скопировать данные на пустую сформатированную дискету. Вы не можете копировать данные на несформатированную пустую дискету. Когда вы форматируете диск, у вас есть выбор: записать или не записать на него копию ДОС. Большинство компьютеров имеет жесткий диск, и когда вы форматируете его, вы всегда хотите иметь на нем копию ДОС. Кстати, это вполне могло быть сделано до того, как вам доставили ваш компьютер. Когда на жестком диске у вас есть ДОС, то это значит, что вам не надо запускать ваш компьютер с дискеты. Для того чтобы запустить систему, вам надо всего лишь убедиться в том, что дисковод пуст и включить питание. Во время процедуры запуска начальный загрузчик заметит, что дискета в дисковод не вставлена, и автоматически запус+ит ДОС с жесткого диска. Когда вы форматируете дискеты, то вы обычно не копируете на них ДОС. Так как файлы ДОС занимают некоторое место, то на этом вы сэкономите место, на дискете. Если же вы однако захотите, то можете подготовить одну или две дискеты с ДОС. Если при включении питания одна из этих дискет будет находиться в первом дисководе, то начальный загрузчик загрузит ДОС с дискеты, а не с жесткого диска. Хотя вы обычно будете загружать ДОС с жесткого диска, изредка вам все же придется загружать ее с дискеты. Это может произойти в том случае, если с вашим жестким диском что-то не так. И конечно в том случае, если у вашего компьютера нет жесткого диска (что вероятно, если у вас портативный компьютер или старая модель настольного компьютера), вы всегда будете запускать его с дискеты. Когда мы углубимся в изучение данного вопроса, вы узнаете, как сделать выбор помещать или нет ДОС на дискету. Вы узнаете об этом в гл.9 (’’Основные дисковые команды”), и в гл. 13 (’’Диски”). Вы также узнаете о преимуществах и недостатках сокращенного способа копирования под названием DISKCOPY. На этом наш краткий обзор основ ДОС и того, как вы ее используете, заканчивается. Давайте продолжим разговор, перейдя к изучению дискет. 25
Глава 3 ДИСКЕТЫ Сложилось так, что у персональных компьютеров был только один тип дисков — гибкие дискеты. Сейчас имеется несколько типов дисков и каждый со своими модификациями. В этой главе мы совершим краткое путешествие в мир дискет, останавливаясь на мгновение на каждом важном случае. В процессе этого путешествия вы узнаете, какие шаги необходимо предпринять для того, чтобы подготовить дискеты к использованию. Дискеты Дискеты часто называют гибкими дисками, и тому есть веские причины. Если дискету разрезать, то внутри можно обнаружить тонкий круглый коричневый лист пластмассы. Пластмасса имеет металлическое покрытие и действительно хорошо гнется. Первоначальная дискета имела мягкую обложку, и всю ее можно было согнуть. Для лучшей защиты современные дискеты имеют жесткую обложку. Хотя внутри дискета остается гибкой, термин ’’гибкая” повсеместно заменяется словом ’’дискета”. Типы дискет Если бы мы захотели, то по обложке могли бы различить два семейства дискет: мягкие или жесткие. Однако получилось так, что все мягкие дискеты имеют один размер; а все жесткие — другой. Мы будем различать их по размеру, выраженному в дюймах. Более старые дискеты с мягкой обложкой имеют размер 51/4 дюйма. Более новые с жесткой обложкой — 3i/2 дюйма. Эти новые дискеты имеют тот же размер, что и дискеты для компьютера Apple фирмы Macintosh. Однако в этих компьютерах данные хранятся в другом формате, и вы не можете просто переносить дискеты на компьютеры, в которых запись производится в формате ДОС. Как 51/4, так и 3i/2-дюймовые дискеты бывают двух типов: большой и малой емкости (что соответствует высокой и низкой плотности записи), так что в действительности существуют четыре различных типа дискет. В табл. 3.1 показаны дискеты, распо¬ ложенные в порядке от старых образцов к новым. Все компьютеры оснащаются по крайней мере одним дисководом. Каждый дисковод может быть только одного размера — либо 51/4 дюйма, либо 31 /2 дюйма. Если у вас установлен дисковод высокой емкости, то вы можете использовать дискеты того же размера и высокой и низкой емкости. 26
По сравнению с более старыми 5\/4-дюймовыми дискетами, З1/2 дюймовые дискеты имеют меньший размер, больше вмещают в себя, и с ними легче работать. При всех прочих равных условиях лучше всего использовать более новые 3i/2-дюймовые дисководы высокой емкости. Таблица 3.1. Типы дискет Размер Конверт Емкость Название 5 1/4” мягкий низкая (360K) Двухсторонняя двойной плотности 5 1/4” мягкий высокая (1.2М) Высокой емкости или АТ-дискеты 3 1/2” жесткий низкая (720K) 3 1/2” жесткий высокая (1.44М) Использование дисководов В некоторых компьютерах имеются два дисковода, в некоторых — только- один. Если в вашем компьютере есть жесткий диск, что лучше всего, то вы вполне можете обойтись одним дисководом. Если же у вас нет жесткого диска, то удобнее иметь два дисковода. Чтобы различать ваши дисководы, ДОС обращается к каждому из них по букве А, В, С, D и т.д. Буквы А и В всегда зарезервированы для дискет. Если у вас только один дисковод для дискет, то он отзывается одновременно как Диск А и Диск В. Допустим, например, что у вас имеются два дисковода, и вы исцользуете команду COPY для копирования всех файлов с диска А на диск В. Вы вставляете в нужные дисководы соответствующие дискеты, и ДОС начинает копирование с одной дискеты на другую. Что же делать, если у вас только один дисковод, а вы введете ту же команду? ДОС будет использовать этот дисковод и как диск А и как диск В, заставляя вас переставлять дискеты. Когда ДОС хочет использовать дисковод как диск А, она попросит вас установить первую дискету. Когда ДОС хочет использовать дисковод как диск В, она попросит вас установить вторую дискету. Другими словамй, если у вас есть только один дисковод, то пока вы помогаете ДОС переставлением (при необходимости) дискет, ДОС будет делать вид, что дисководов два. Подготовка дискет для использования — форматирование Как я уже объяснял в гл.1, перед использованием любого диска вам необходимо его^отформатировать. Процедура эта весьма проста: 27
все, что вам надо сделать, — это ввести команду ДОС FORMAT и указать, на каком дисководе находится дискета, которую необходимо форматировать. Давайте начнем с того, как происходит форматирование дискет. А в следующей главе мы перейдем к жестким дискам. Если на вашем компьютере ДОС уже работает, то вы можете взять несколько чистых дискет и прямо сейчас попробовать проделать это. Если же нет, то прочтите эту главу и узнайте, как все это происходит. Как сделать диск загружаемым Команда FORMAT весьма проста — просто слово ’’format”, за которым следует имя дисковода, в который установлена требующая форматирования дискета , например: format а: Однако вы должны знать, что существуют и модификации этой команды. Помните, как я объяснял, что если в вашем компьютере нет жесткого диска, то вам необходимо загружать ДОС с дискеты. Так же как и другие дискеты, перед использованием данная дискета должна быть отформатирована. Но для того, чтобы сделать эту дискету ’’загружаемой”, после окончания форматирования прог¬ рамме FORMAT надо будет скопироватьна эту дискету ДОС. Чтобы задать в программе FORMAT этот режим, вам надо указать в конце команды ”/s” (чтобы диск стал ’’системным”): format a: /s Если вы обычно загружаете ДОС с жесткого диска, то при форматировании дискеты вы можете опустить /s. В конце концов ДОС займет место на вашей дискете. Зачем тратить место, если вы никогда не собираетесь его использовать? Если вы обычно за¬ пускаете ДОС с дискеты, то вы возможно захотите отформатировать несколько штук таким образом. Вот вам пример. Допустим, что вы купили пять. программ, которые вы собираетесь регулярно использовать. Если у вас имеется жесткий диск, то вы скопируете на него все эти программы. Когда включите компьютер, ДОС загрузится с жесткого диска, а затем вы запустите ту программу, которую хотите. Если у вас нет жесткого диска, то вы подготовите пять отдельных дискет, каждая из которых будет содержать по одной программе. Вы будете запускать компьютер с помощью специальной загрузочной дискеты с ДОС. После того, как ДОС запущена, вы поменяете 28
дискеты, устанавливая ту из них, которая содержит нужную вам программу. Затем вы запустите программу с этой дискеты. Но если при предварительном форматировании дискет для ваших программ вы поместите на них ДОС, вы сможете загружаться прямо с этих дискет, что означает, что можно запустить компьютер, а затем запустить вашу программу без смены дискет. Вы обнаружите, что это весьма удобно. Всего лишь одно замечание. Если вы сформатируете дискету без ДОС, то впоследствии вы не сможете (за описанным ниже одним исключением) добавить на нее ДОС. Вам придется перефор¬ матировать дискету с использованием /s, что уничтожит все данные. По этой причине некоторые люди, работающие только с дискеттами, форматируют все дискеты с ’7s”. Однако файлы ДОС, которые программа FORMAT копирует на диск, занимают некоторое место, уменьшая объем диска, который вы можете использовать для собственных целей. Но не беспокойтесь. После того, как наберетесь опыта, вы сами сможете определить, что вам подходит больше всего. Добавление ДОС к предварительно отформатированной дискете В предыдущем разделе я упомянул о том, что после того, как вы отформатировали дискету без ДОС, вы уже не Можете добавить к ней ДОС без переформатирования и потери всех данных. Существует, однако, одно исключение. Если вы используете программу SF (безопасное формати¬ рование), которая является частью пакета Norton Utilities, то в ней имеется одна опция, позволяющая добавить к дискете ДОС без переформатирования. Есть также и опция, позволяющая программе SF переформатировать дискету без потери каких-либо данных. Не пытайтесь, пожалуйста, делать это сами. Программа SF безопасна, но при работе она копирует файлы таким образом, что трудно проделать вручную. Не проводите экспериментов над дис¬ кетами, содержащими вашу единственную копию важных данных. Для надежности сначала скопируйте данные на другую дискету, а затем используйте обычную команду FORMAT. Ввод команды FORMAT Итак, я показал вам два вида команды FORMAT: format а: format а: /s Отметьте, пожалуйста, два момента: во-первых, вы можете печатать команды ДОС и строчными и заглавными буквами (хотя 29
обычно легче использовать строчные буквы). Во-вторых, когда бы вы ни указали имя диска, за ним надо поставить двоеточие. Убедитесь, что вы не вставляете перед двоеточием пробел. Такое написание будет ошибочным: format а : После того, как вы введете команду, нажмите клавишу Enter. После этого начнет работать сама программа FORMAT. Когда FORMAT будет готова начать процесс форматирования, она остановится и попросит установить вашу дискету в дисковод А. Сообщение будет аналогично следующему: Insert new diskette for drive A: and press ENTER when ready... (Установите новую дискету в дисковод А: и нажмите ENTER когда будете готовы...) Если сообщение, которое вы увидите, не будет точно таким же, не волнуйтесь. Это одно из несущественных отличий в версиях ДОС. Команда FORMAT делает паузу и просит вас вставить нужную дискету по двум причинам. Во-первых, если у вас имеется только один дисковод и нет жесткого диска, вам придется запускать FORMAT с диска с ДОС и заменять дискету на ту, которую надо форматировать. С помощью паузы ДОС позволит вам произвести замену. Во-вторых, FORMAT дает вам последнюю возможность изменить ваше решение и прекратить процесс до того, как данные на диске будут уничтожены. Если вы действительно решите прекратить действие команды, удержите в нажатом состоянии клавишу Ctrl и нажмите на клавишу Break. (Это иногда называют нажатием Ctrl-Break.) Клавиша Break находится около правого верхнего угла вашей клавиатуры. В зависимости от типа клавиатуры вашего компьютера это будет та же клавиша, что и Scroll Lock или Pause. Между прочим, нажатием Ctrl-Break вы можете остановить любую команду ДОС. Но вы должны знать, что компьютер работает так быстро, что прежде чем вы успеете нажать на клавиши, он может закончить либо всю команду, либо ее часть. Чтобы избежать неприятностей, проверяйте, что вы напечатали до того, как вы нажмете клавишу Enter. Имя тома После того, как вы вставили чистую дискету и нажали Enter, программа FORMAT начнет форматировать дискету. Когда процесс 30
форматирования закончится, FORMAT может попросить задать имя тома дискеты. Как вы можете себе представить, это хорошая идея — поместить снаружи дискеты идентифицирующую этикетку. Имя тома — это внутренняя этикетка, которую ДОС хранит для вас внутри диска. Когда бы вы ни попросили ДОС показать вам, какие файлы находятся на диске, она всегда сообщит вам имя тома. Это позволяет вам следить за тем, с каким диском вы имеете дело. Имя тома может иметь длину до 11 символов. Если вы будете использовать строчные буквы, то ДОС преобразует их в заглавные. Если вы форматируете дополнительные дискеты просто для того, чтобы у вас был запас, я предлагаю вам присвоить им имя тома ’’empty” (пустая). Если вы захотите изменить имя тома, то для этого можно использовать команду ДОС LABEL, или команду VL, входящую в пакет Norton Utilities. В новых версиях ДОС после окончания форматирования у вас автоматически запросят имя тома. Если вы используете более старые версии ДОС, то, используя /v в конце команды FORMAT, можно заставить ее запросить у вас имя тома. Например: format a: /v format a: /s /v Отчет команды FORMAT Как только форматирование завершилось и вы задали имя тома, FORMAT выдаст маленький отчет о своей работе. Точный вид отче¬ та будет зависеть от вашего компьютера и типа отформатированной дискеты. Вот типичное сообщение, выдаваемое компьютером PS/2 фирмы IBM после форматирования 3i/2- дискеты большой емкости: 1457664 bytes total disk space 1457664 bytes available on disk 512 bytes in each allocation unit 2847 allocation units available on disk Volume Serial Number is 3D22-15F5 (1457664 байт полный объем диска ) (1457664 байт доступно на диске ) ( 512 байт в каждом элементе размещения 2847 элементов размещения доступно на диске ) 31
(Порядковый номер тома 3D22-15F5 ) Первые две строки — этр наиболее важная часть сообщения. Следующие две строки описывают технические подробности того, как организовано хранение данных. Последняя строка показывает ”Порядковый номер тома” — уникальный идентификационный номер, который автоматически присваивают последние версии ДОС. Этот номер отличен от того имени тома, которое вы выбираете сами. Порядковый номер тома может быть полезен, если вам когда-нибудь понадобится идентифи¬ цировать какую-либо конкретную дискету. Во всех остальных случаях вы можете игнорировать его. Глава 4 ЖЕСТКИЕ ДИСКИ В предыдущей главе мы обсудили дискеты. Давайте теперь обратим внимание на их старших братьев — жесткие диски. В этой главе я представлю вам жесткие диски и покажу, как приготовить их для ДОС и хранения файлов. В конце главы мы познакомимся с некоторыми другими типами дисков, включая еще не существующий диск. Жесткие диски Помните, как я рассказывал вам о том, что если открыть дискету, то можно обнаружить, что действительной записывающей повер¬ хностью является гибкая пластинка из тонкой пластмассы. Отсюда и старое название — гибкие диски. Если вы вскроете жесткий диск, то вы обнаружите три важных различия. Во-первых, как говорит само название, сам диск — поверхность, на которую производится запись, является жестким. В действительности — это твердая пластина, покрытая магнитным материалом. Во-вторых, в то время как в дискете всего один тонкий и гибкий диск (с двумя поверхностями), жесткий диск часто имеет более одной твердой пластины, образуя, таким образом, несколько записывающих поверхностей. И, в-третьих, жесткий диск полностью закрыт от окружающего воздуха и пыли. Обычно жесткие диски встроены в компьютер и сменять их нельзя. Так же, как дискеты иногда называют ’’гибкими дисками”, для жестких дисков тоже есть три других названия: постоянный диск, твердый файл или винчестерский диск. 32
Последние два термина введены фирмой IBM. Термин ’’твердый файл” иногда встречается в руководствах и рекламной литературе фирмы IBM. По-видимому, кто-то думает, что ’’твердый файл” — это более интуитивное выражение, чем ’’жесткий диск”. Термин ’’винчестерский диск” представляет исторический интерес. Кода фирма IBM впервые разрабатывала то, что мы сейчас называем жестким диском, то ему было присвоено внутрифирменное кодовое имя ’’Винчестер”. И когда эти диски стали появляться, то неформально их называли этим именем. Емкость жесткого диска Первые жесткие диски хранили от 5 до 10 Мбайт (Мегабайт) данных. Вы может вспомнить, как в гл.1 я объяснял, что 1 Мбайт — это 1024 Кбайт или 1048576 байт. Так что 10 Мбайт — это более 10 миллионов байт. В то время, когда жесткие диски только вводились, это казалось огромным объемом памяти. И действительно, дискеты, которые использовались в то время, хранили только 360 Кбайт, так что 10 мегабайтный жесткий диск мог хранить данных больше, чем 28 дискет. Но по сегодняшним стандартам такие размеры весьма тщедушны. Диапазон емкости современных жестких дисков простирается от 30 до сотен Мбайт. И мы даже начинаем встречать дисковые системы, объем которых измеряется в гигабайтах (1 гигабайт » 1024 Мбайт = 1024x1034 Кбайт = 1024x1024x1024 байт, что приблизительно составляет один биллион байт!). Для вашего собственного пользования я рекомендовал бы минимум 30 Мбайт, но чем больше, тем лучше. Хотя очень маловероятно, что вы будете сидеть за клавиатурой и генерировать миллионы символов данных, вы не пожалеете о покупке дополнительного объела дисковой памяти. Современные программы часто имеют вид многих файлов и нередким является то, что установка нового большого программного продукта занимает несколько мегабайт. Использование жестких дисков В предыдущей главе я рассказал о том, что для обращения к дискам ДОС использует буквы, и о том, что буквы А и В зарезервированы для дискет. Это означает, что к вашему жесткому диску вы будете обращаться, как к С. Если у вас есть второй жесткий диск, то к нему вы будете обращаться как к D и т.д. Запомните, что если у вас есть только один дисковод, то к нему вы обращаетесь и как к А и как к В. Это означает, что ваш жесткий диск всегда будет С, даже если у вас есть один-единственный дисковод для дискет. 2 Зак 1807 33
Создание разделов жесткого диска Вы уже знаете, что перед тем, как дискеты могут быть использованы, они должны быть подготовлены — отформатированы. Это верно и для жесткого диска. Для его форматирования можно использовать ту же самую программу FORMAT. Однако прежде чем вы сможете начать форматирование, вам необходимо сделать один предварительный шаг — разбить жесткий диск на разделы. Разбиение позволяет вам разделить жесткий диск на один или несколько логических дисков, называемых разделами. Предположим, что у вас есть 50 Мбайт жесткого диска. Вы можете решить разбить его на две части в 30 и 20 Мбайт. В этом случае часть в 30 Мбайт будет диском С, а часть в 20 Мбайт — диском D. Что касается вас, то каждый раздел действует как отдельный диск, хотя вы и знаете, что физически существует всего лишь один жесткий диск. Возникает вопрос, почему вам может понадобиться разбивать диск более чем на один раздел? На это существуют три причины: Во-первых, вы можете захотеть установить в вашем компьютере другую операционную систему. Некоторые люди желают иметь возможность использовать на одном компьютере операционные системы DOS и UNIX (такие как AIX или XENIX). Каждая операционная система работает отдельно сама по себе и имеет отдельную файловую систему, размещающуюся на собственном разделе диска. С другой стороны, операционная система OS/2 использует ту же файловую систему, что и ДОС. Так что если вы хотите использовать на одном компьютере ДОС и OS/2, то для этого разные разделы диска не нужны. (Хотя будущие версии OS/2 будут иметь усиленную файловую систему и потребуют собственных разделов.) Если вы действительно хотите установить более одной операционной системы, то внимательно читайте инструкции. Некоторые операционные системы, например UNIX и ей подобные, надо устанавливать перед ДОС. Другие же, такие как операционная система PICK, надо устанавливать после ДОС. Другой причиной, по которой вы можете захотеть разделить диск, является его организация. На одном жестком диске могут находиться многие тысячи файлов. Вы можете посчитать удобным разбить это пространство на более чем один логический диск. Вы можете, например, создать два раздела: один для программ (диск С) и один для ваших файлов данных (диск D). Или в случае, если ваш компьютер используется для двух различных целей — скажем, двух совершенно отдельных сфер деятельности, — вы можете захотеть, чтобы каждая сфера деятельности использовала свой собственный раздел диска. 34
Третья причина разбиения жесткого диска — не такая уж важная, как это обычно кажется. Дело в том, что в версиях ДОС фирмы IBM ниже 4.x вы не могли создать раздел емкостью более 32 Мбайт. Когда диски были маленькими, это не было ограничением. Но по мере роста размеров диска оказалось необходимым разбивать его на разделы просто для того, чтобы можно было использовать весь его объем. К счастью, это ограничение было устранено, и вы можете организовывать ваш диск так, как вы хотите. Начиная с ДОС версии 4.0, вы можете иметь разделы размером до 512 Мбайт. (Хотя пройдет не так много времени и некоторые из нас начнут натыкаться и на это ограничение.) Использование команды FDISK Для того чтобы создавать разделы жесткого диска и управлять ими, используется команда FDISK (’’фиксированный диск”). Форма этой команды проста — просто ее имя: fdisk Программа FDISK управляется с помощью меню и использовать ее легко, но перед началом работы не забудьте ознакомиться с указаниями в вашем руководстве. FDISK позволит вам: посмотреть, какие разделы существуют на вашем жестком диске; создать новые разделы; удалить старые разделы; изменить раздел, с которого при включении компьютера будет загружаться операционная система. Последнее утверждение требует некоторого разъяснения. Когда вы включаете компьютер, начальный загрузчик (см. гл.2) будет пытаться загрузить ДОС с дискеты в первом дисководе. Если дискеты там нет, загрузчик проверяет информацию о разделах на вашем первом жестком диске и определяет, какой раздел является ’’активным”. Именно с этого раздела и загружается операционная система. Пусть, например, на вашей системе установлены ДОС и AIX. Если активен раздел с ДОС, то когда вы включите компьютер, загрузится ДОС. Если активен раздел с AIX, загрузится AIX. Чтобы задать активный раздел вы можете использовать FDISK. Но будьте осторожны — когда вы используете FDISK, вы должны быть очень внимательны. Когда вы удаляете раздел, все данные пропадают навсегда. И нет способа восстановить их. При некоторых обстоятельствах возможно восстановление данных при случайном 35
переформатировании жесткого диска (см. ниже). Но невозможно восстановить потери от ошибочного удаления раздела. По этой причине новые версии ДОС имеют такие программы установки, которые при настройке ДОС даже не переписывают программу FDISK на ваш жесткий диск. Если вам захочется использовать FDISK, то вам придется запускать ее с одной из установочных дискет. Более старые версии ДОС копируют FDISK на ваш жесткий диск, но во имя безопасности многие предусмотрительно стирают ее. Создание разделов — это такая вещь, которую вам надо сделать однажды, а затем забыть. Кстати говоря, велика вероятность того, что магазин, где вы покупали ваш компьютер, все это для вас уже сделал. Если вы настраиваете компьютер для кого-нибудь другого, я рекомендую вам удалить программу FDISK. (Если, конечно, этот кто-нибудь не является опытным пользователем, который будет переключаться с одной операционной системы на другую.) Примеры отчетов FDISK Ниже приведены два примера отчетов FDISK. Оба они с одного и того же компьютера PS/2 фирмы IBM, модель 70-121. В первом случае на жестком диске сделан один большой раздел ДОС (диск С). Отчет представлен программой FDISK из ДОС версии 4.01. Partition Status Type Size in MBytes Persentage of disk used (Раздел) (Статус) (Тип) (Размер в Мбайт) (% использования диска) С: 1 A PRI#D0S 115 100% Maximum capacity of the fixed disk is 115 cylinders. (Максимальный объем жесткого диска 115 цилиндров) Второй случай более сложный. В этом случае на том же жестком диске я установил OS/2 1.1 и AIX (операционная система типа UNIX), а затем с помощью ДОС версии 4.01 создал остальные разделы. Эта ситуация, вероятно, более сложная чем та, с которой вы можете столкнуться. В этом случае отчет представлен программой FDISK из состава ДОС версии 3.3. Обратите внимание на то, что в этом случае отчет более путаный, чем тот, который мы уже видели. Partition Status Type Start End Size (Раздел) (Статус) (Тип) (Начало) (Конец) (Размер) 1 N non-DOS 0 0 1 2 С: A PRI DOS 1 10 10 36
3 N EXT DOS 11 24 14 4 N non-DOS 25 114 90 Maximum capacity of the fixed disk is 115 cylinders. (Максимальный объем жесткого диска 115 цилиндров) В этом примере разделы номер 1 и 4 были созданы установочной программой AIX (которую я исполнил сначала). Во время установки я задал, чтобы некоторый объем диска был зарезервирован. Позднее я использовал этот объем для создания разделов 2 и 3. Раздел 2 — это раздел OS/2, раздел 3 — это раздел ДОС. Но так как OS/2 и ДОС используют один тип файловой системы, FDISK описывает оба эти раздела как разделы ’’типа ДОС”. Раздел 2 называется ’’пер¬ вичным разделом”, раздел 3 называется ’’расширенным разделом”. (Более полно детали описаны в вашем руководстве.) Обратите внимание на то, что статус раздела 2 — ’’активный”, а статус остальных разделов — ’’неактивный”. Это означает, что когда я включаю компьютер, он загружается из раздела 2, т.е. загружается OS/2. Если я захочу запустить AIX, то с помощью FDISK мне надо будет задать ’’активным” раздел 1 и затем перезапустить компьютер. Форматирование жесткого диска После того, как жесткий диск разделен на разделы, вы должны отформатировать каждый раздел. Обычно вы будете использовать один большой раздел. Если же у вас больше одного раздела ДОС, каждый рассматривается как логически определенный диск, и каждый диск надо отформатировать отдельно. Вы используете команду FORMAT точно таким же образом, как я описал в гл.З. Только помните, что ваш первый раздел должен быть отформатирован с /S так, чтобы на него была помещена копия ДОС и с него можно было бы загружаться. Так как остальным разделам незачем содержать ДОС, их надо форматировать без /S. Вот несколько примеров. Допустим, у вас есть один жесткий диск с одним большим разделом ДОС (обычный случай). Диск будет называться С и надо использовать следующую команду FORMAT: format с: /s Если у вас более ранняя версия ДОС, то для того, чтобы заставить FORMAT запросить имя тома, вы можете использовать опцию /v (см. гл.З). format с: /s /v 37
Вот еще пример. У вас есть большой жесткий диск, который вы разбили на три раздела, и все они используются для ДОС. Они будут называться дисками С, D и Е, и вы будете использовать следующие команды форматирования: format с: /s format d: format e: И один последний пример. У вас есть два жестких диска. Вы решили, что на первом диске у вас будет один большой раздел, а на втором диске — два раздела. В этом случае ДОС будет называть раздел на первом жестком диске диском С, а разделы на втором жестком диске — дисками D и Е. Команды форматирования будут теми же, что и в предыдущем примере. Встроенная защита Форматирование жесткого диска очень похоже на форматирование дискеты, но для вашей защиты здесь есть два встроенных предохранителя. Во-первых, если вы переформатируете раздел, который до этого уже был отформатирован, то перед тем как продолжить, новые версии ДОС заставят вас напечатать имя тома. Это предохранит вас от случайного стирания огромного количества данных. Если вы хотите переформатировать раздел, то ДОС следит за тем, чтобы это был ваш обдуманный шаг, а не ошибка. Во-вторых, перед тем, как форматирование действительно начнется, FORMAT выдаст сообщение, аналогичное следующему: WARNING. ALL DATA ON NON-REMOVABLE DISK DRIVE C: WILL BE LOST! Proceed with format (Y/N)? (ПРЕДУПРЕЖДЕНИЕ. ВСЕ ДАННЫЕ НА НЕСМЕННОМ ДИСКЕ) (ДИСКОВОД С: БУДУТ ПОТЕРЯНЫ! ) (Продолжить форматирование (Д/Н)? ) Так как вы форматируете раздел жесткого диска, а не относительно маленькую дискету, FORMAT дает вам последний шанс подтвердить, что это действительно то, что вы хотите сделать. Отчет программы FORMAT После окончания процесса форматирования, так же как и после форматирования дискеты, FORMAT выдает краткий отчет. Здесь 38
представлен простой отчет. Он показывает результаты форма¬ тирования жесткого диска, который был подготовлен как один большой раздел (диск С) с помощью ДОС 4.01 следующей командой: format с: /s Отчет имеет следующий вид: 120315904 bytes total disk space 110592 bytes used by system 120205312 bytes available on disk 2048 bytes in each allocation unit 58694 allocation units available on disk Volume Serial Number is 1C63-11FD Первые три строчки показывают, каков размер раздела, какое пространство занято ДОС и какое осталось для использования. В этом случае вы можете разделить указанные числа на (1024x1024) и преобразовать их в мегабайты. Если вы проделаете это, то обнаружите, что размер раздела — 114.7 Мбайт, из которых ДОС занимает 0.1 Мбайт, оставляя для общего использования 114.6 Мбайт. Следующие две строчки описывают технические подробности организации хранения данных. Последняя строка показывает ’’Порядковый номер тома” — уникальное идентифицирующее число для этого диска (см. гл.З). Дефектные области на диске Когда вы подготавливаете диск, FORMAT помечает все дефектные области диска, и после этого они никогда не будут использованы для хранения данных. Это означает, что если даже диск и имеет некоторые дефектные области, вы все равно можете использовать остальную часть диска. Если это случится, то в отчете программы FORMAT вы получите сообщение, показывающее, сколько байт были некачественными. Если это случится с дискетой, то хорошо попробовать отформатировать ее еще раз. Если это повторится еще раз, выбросьте дискету. Обычно дискеты форматируются на 100% пра¬ вильно. Ваши данные стоят значительно больше, чем цена одной дискеты. Ситуация с жестким диском совсем другая. Жесткие диски могут содержать многие мегабайты данных и то, что некоторые из этих байтов будут плохими, не так уж необычно. В приведенном выше примере мне удалось отформатировать без дефектных областей 39
почти 115 Мбайт. Однако обычно жесткие диски имеют небольшой процент плохих байтов. Вот общее правило: вы можете чувствовать себя хорошо, если плохими помечено 1-2% объема жесткого диска. Но если плохими помечено более 2% его объема, вы можете вернуть ваш диск как неприемлемый. Восстановление данных при случайном форматировании жесткого диска Как я. упомянул выше, при случайном изменении разделов жесткого диска нет никаких способов восстановить данные. Если же вы случайно переформатируете раздел жесткого диска, то вос¬ становление может оказаться возможным. И вот почему. Когда вы форматируете дискету, FORMAT полностью стирает все данные на дискете. Но когда вы форматируете раздел жесткого диска, то FORMAT без уничтожения информации просто помечает этот объем как доступный для использования. Одна из причин этого — физическое уничтожение каждого байта данных на большом жестком диске просто займет очень много времени. Так что хотя и кажется, что данные пропали, они на самом деле все еще находятся на диске. Если вы когда-нибудь случайно отформатируете раздел жесткого диска, то для "отмены” этого вам понадобится специальная программа. Такая программа, называемая FORMATRECOVER, со¬ держится в пакете Norton Utilities. Инструкции по использованию этой программы находятся в руководстве по йакету Norton Utilities. Только одно предупреждение. Если вы действительно случайно отформатируете раздел жесткого диска, то самым безопасным действием будет выключить ваш компьютер и никого не подпускать близко к нему до тех пор, пока вы не прочитаете инструкции по использованию FORMATRECOVER. Если у вас нет специальной программы восстановления после форматирования, то ваши данные погибли навсегда. ДОС не предусматривает восстановления потерянных данных. (Поэтому, перед тем, как он начнет работу, FORMAT и предупреждает вас.) Другие типы дисков До сих пор мы говорили о двух типах дисков — дискетах и жестких дисках. Но мы должны также обсудить несколько модификаций, с которыми вы можете встретиться. Их размеры простираются от маленьких до очень больших, но по сути, так же как и для всех дисков, их основным назначением является хранение и выдача данных. 40
Сменные жесткие диски Как вы знаете, в отличие от дискет, жесткие диски встроены в компьютер. Так как поверхности дисков находятся в контролируемой среде внутри герметически запаянного корпуса, жесткие диски можно сконструировать так, чтобы они были более быстрыми и хранили больший объем данных. Сейчас стало возможным взять все лучшее от этих двух видов дисков. Вы можете купить специальные дисководы для жестких дисков, использующие сменные кассеты. Типичный объем таких кассет от 20 до 40 Мбайт (хотя он и имеет тенденцию увеличиваться). Это означает, что вы можете сочетать удобство портативной среды хранения данных (как дискеты) со скоростью и размером жесткого диска. Во многих случаях вы отлично обойдетесь одним стандартным жестким диском. Однако в некоторых ситуациях сменные жесткие диски предлагают три важных преимущества. Во-первых, если вам требуется большой объем дисковой памяти, но не одновременно, то сменные кассеты с жесткими дисками более удобны, чем огромный жесткий диск. Если, например, у вас есть несколько больших баз данных, то каждую из них вы можете хранить на отдельной кассете. Если взглянуть на цены, то вы увидите, что после покупки специального дисковода цена кассет в расчете на мегабайт памяти предпочтительнее цены дискет. Во-вторых, сменные кассеты обеспечивают портативность. Вы, например, можете везти в деловую поездку 40 Мбайт и при этом вам не придется возиться с 30 дискетами. В-третьих, легче добиться безопасности. Секретные данные можно сохранить на кассете, которую затем можно вынуть и запереть в надежное место. (Конечно, это палка о двух концах. Украсть кассету значительно легче, чем встроенный жесткий диск.) Оптические диски Оптические диски основаны на технологии, использующей для записи и чтения данных лазер. Сами диски очень похожи на исполь¬ зуемые в домашних стереосистемах компакт-диски. Основное пре¬ имущество оптических дисков — это то, что они могут хранить огромное количество данных. На диске того же размера, что и для записи одного альбома, поместятся сотни мегабайт! И цена в расчете на мегабайт определенно подходящая. Для использования оптических дисков нужен специальный дисковод и, как вы можете догадаться, специальное программное обеспечение. ДОС сконструирована для работы только с дискетами и жесткими дисками. 41
Существуют три основных типа систем с оптическими дисками. Первая, CD-ROM (постоянное запоминающее устройство на компакт-диске), использует оптические диски, которые можно читать, но нельзя изменять. Нередко CD-ROM содержат до 600 Мбайт данных. Диски CD-ROM делают с мастер-дисков, содержащих инфор¬ мацию, подлежащую массовому распространению. Например, оп¬ товый продавец книг может ежемесячно рассылать в розничные магазины CD-ROM-каталоги. Фирма Microsoft продает CD-ROM, содержащие широкий набор справочных материалов и литературы. Второй тип систем использует оптические диски, которые при покупке еще ничего не содержат. Вы можете записать на него данные, но только один раз. Стирать с этих дисков ничего нельзя. Этот тип дисковых систем известен под экзотическим названием WORM (однажды записал — главным образом, читай). Системы WORM представляют собой нечто среднее между CD- ROM, которые нельзя изменять, и полностью стираемыми дисками. WORM-системы в основном используются для архивного хранения в случаях, когда вам требуется однажды записать информацию, а затем хранить ее как постоянную, неизменную запись. Адвокатские фирмы, например, считают полезным хранение данных на записывающей среде, которую нельзя ни стереть, ни самовольно изменить. В третьем типе систем используются полностью стираемые диски, которые, если посмотреть на них с нашей точки зрения, ведут себя почти как жесткие диски. Это значит, что вы покупаете пустые диски на которых вы можете писать, читать и стирать информацию столько раз, сколько вам заблагорассудится. И на каждом диске можно хранить от 200 до 600 Мбайт! Полностью стираемым оптическим дискам еще только предстоит заменить жесткие диски, которые все еще более дешевые и быстродействующие. Но когда придет их время, оптические диски дадут результаты, значительно превосходящие современную технику хранения данных. Гибкооптические дискеты Во время вращения диска в дисководе нужно постоянно следить за его положением. Для этого на поверхности диска есть специальные метки, служащие в качестве отсчетных точек. Во время вращения диска дисковод определяет положение этих меток. Одним из ограничений объема данных, которые можно хранить на диске, является то, как близко и с какой точностью можно записать эти метки. На обычных дискетах эти метки записываются магнитным способом. Если же эти метки нанести оптическим способом с помощью лазера, то система хранения работает лучше и 42
может хранить значительно больше данных. Гибкооптическая дискета выглядит как обычная 3i/2-дюймовая дискета. И действительно, данные в ней записываются и считываются очень похожим способом. Отличие состоит в том, что специальные метки записаны на нее с помощью лазера еще до поступления в продажу. В то время, как обычные 31/2-дюймовые дискеты хранят 1.44 Мбайт данных, гибкооптические дискеты хранят 10, 20 и даже 40 Мбайт. Название "гибкооптическая” (floptical) происходит от соединения слов ’’гибкая” (floppy) и ’’оптическая”(optical). Гибкооптические дискеты все еще достаточно новы, так что признанных стандартов для них пока нет. Но так же как и стираемые оптические диски, в которых иногда соединяются оптические и магнитные методы, гибкооптические дискеты обладают высоким потенциалом. Виртуальные диски Последний вид дисков являет собой противоречие. Хотя это совсем и не диск, но он является самым быстродействующим диском, хранит наименьший ооъем информации, но может быть полезнее, чем большой оптический диск. Диск работает так же, как и любой другой, но тем не менее, как только вы выключаете компьютер, он исчезает. Это самый дорогой тип диска и купить его невозможно. Если посмотреть в зеркало, то то, что вы в нем увидите, называется "виртуальным изображением". Виртуальный диск называется тем же именем потому, что кажется, что он существует, а в действительности его нет. Вот как он работает. Вы указываете ДОС взять часть памяти и симулировать диск. (Детали описаны в гл. 19 Файл конфигурации"). Этот виртуальный диск ведет себя в точности так же, как и настоящий диск. Вы можете использовать его для хранения и чтения файлов обычным способом. Особые свойства виртуального диска обусловлены тем, что для его симуляции ДОС использует память. Во-первых, вряд ли вам удастся выделить под виртуальный диск более пары мегабайт, в то время как самый маленький жесткий диск имеет объем 20 или 30 Мбайт. Во-вторых, из-за того,что виртуальный диск располагается в памяти, при включении компьютера он пуст, а при выключении вообще исчезает. Для того чтобы использовать виртуальный диск, вам необходимо сначала скопировать или создать на нем файлы. И если вы изменили эти файлы, то перед выключением питания вам надо переписать их на жесткий дуск. В-третьих, если вы сравните стоимость байта памяти со стоимостью байта жесткого диска, вы увидите, что виртуальный диск стоит значительно дороже обыкновенного диска. Как я объяснял в гл.1, ДОС может непосредственно использовать только 640 Кбайт памяти. Но многие компьютеры имеют больший объем памяти. Если, например, ваш компьютер имеет 2 мегабайта (2048 Кбайт) памяти, то для использования в других целях у вас есть 1408 Кбайт (2048 минус 640). Вы можете использовать этот объем для создания виртуального диска размером около 1.3 Мбайт. Вот вам пример того, как вы можете использовать виртуальный диск. Допустим, у вашего текстового процессора имеется программа проверки правописания, использующая записанный на диск встроенный словарь. Каждый раз, когда вам надо проверить слово, программа производит чтение с диска. Для ускорения этого процесса вы можете скопировать словарь на виртуальный диск и указать текстовому процессору, чтобы он искал этот словарь на виртуальном диске. Теперь при проверке слов программа считывает словарь из памяти, что получается значительно оыстрее, так как память работает быстрее обычного жесткого диска. 43
Глава 5 УСТАНОВКА ДОС Итак, мы сориентировались на ДОС и узнали о дискетах и жестких дисках. Теперь мы можем перейти к последнему шагу, который подготовит нас к использованию ДОС. В этой главе я покажу вам правильный способ копирования ДОС на ваш компьютер с эталонных дискет, на которых она поставляется. Этот процесс называется установкой операционной системы. Может случиться так, что вам совсем не придется заниматься этими вопросами. Человек, у которого вы приобретали компьютер, вполне мог все это сделать: создание разделов жесткого диска, форматирование и установку ДОС. Если при включении компьютера ДОС запускается сама, то это и есть тот самый случай. Тем не менее, я предлагаю вам все-таки прочитать эту главу. Мы обсудим, как устанавливали ДОС раньше, а затем перейдем к тому, как ее устанавливают сейчас. Важно, чтобы вы понимали принципы, даже если вам почти не придется заниматься установкой. Но перед тем, как мы начнем устанавливать ДОС, давайте приостановимся и посмотрим, с чем же конкретно мы имеем дело. Составные части ДОС Для того чтобы действительно понять ДОС, вам надо понять ее составные части. ДОС состоит из двух частей, каждая из которых включает в себя несколько файлов. 1. Основная часть ДОС, состоящая из трех программ. 2. Большое число дополнительных программ и файлов. В зависимости от используемого вами типа ДОС, уже упомянутые три основные программы могут иметь различные имена. Если вы используете PC-DOS (ДОС фирмы IBM), то это следующие основные программы: IBMBIO.COM IBMDOS.COM COMMAND.СОМ Если вы используете MS-DOS (для не IBM компьютеров), эти же программы называются так: 10.SYS MSD0S.SYS COMMAND.COM 44
IBMBIO.COM (или 10.SYS) обеспечивает основные средства для работы с устройствами ввода-вывода. В частности, ”ВЮ” означает ’’основной ввод-вывод”. IBMDOS.COM (или MSDOS.SYS) — основная программа ДОС, которая обычно всем и управляет. COMMAND.COM — командный процессор. Это та программа, которая читает с клавиатуры ваши команды и решает, что надо сделать для того, чтобы выполнить ваши запросы. (Если вы привыкли к операционной системе UNIX, то существует грубая аналогия: IBMDOS.COM — это ядро, IBMBIO.COM содержит основные драйверы устройств, а COMMAND.COM — это оболочка). Установка ДОС Установка ДОС означает копирование обеих частей ДОС на тот диск, с которого вы планируете загружать свою систему.Обычно это означает копирование файлов ДОС на ваш жесткий диск. Если вы желаете иметь возможность загружать ДОС с дискеты, в том случае, если у вас, например, нет жесткого диска, вам потребуется скопировать на эту дискету обе части ДОС. Если мы форматируем диск с опцией /S (см. гл. 3 и гл. 4), то после окончания форматирования программа FORMAT копирует эти три основные программы. Существует, однако, большое число других дополнительных файлов, которые использует ДОС. Если у вас есть только три основных файла, вы можете загрузить ДОС и использовать ограниченное количество ее команд. Чтобы использовать остальные команды ДОС, вам нужен доступ к остальном файлам ДОС. (Почему это так, я детально объясню в следующей главе.) Как устанавливали ДОС давным давно До 1983 г. у IBM-совместимых компьютеров жестких дисков не было и приходилось загружать операционную систему с дискет. Шаги установки ДОС были следующими: 1. Сделать копию с эталонной дискеты с ДОС, полученной вами при покупке ДОС. (Как вы понимаете, д)раздо лучше работать с копией, чем с вашим единственным оригиналом.) 2. С помощью копии дискеты с ДОС сформатировать пустую дискету. (Для тот чтобы скопировать три основные файла ДОС, надо использовать команду FORMAT с /S. Именно эта пустая дискета станет вашей новой загрузочной дискетой.) 3. Скопировать на новую загрузочную дискету дополнительные файлы — вторую часть ДОС. В этой схеме были варианты, но в основном идея была весьма простой — сформатировать дискету и скопировать на нее файлы. В действительности же, при 45
определенных обстоятельствах (при использовании команды DISKCOPY, см.гл.9) это можно сделать и за один шаг. Когда стали доступны жесткие диски» добавился еще один шаг. Как я объяснял в гл.4, перед форматированием жесткого диска необходимо разбить его на разделы. Так что при наличии жесткого диска надо было проделать следующие шаги: 1. Сделать копию с эталонной дискеты с ДОС, полученной вами при покупке ДОС. 2. С помощью дискеты с ДОС создать разделы жесткого диска. • 3. С помощью дискеты с ДОС отформатировать жесткий диск. 4. Скопировать на диск дополнительные файлы — вторую часть ДОС. Как устанавливали ДОС не так давно К тому времени, как появилась ДОС версии 3.x, процедура усложнилась. Многие уже имели жесткие диски, так что разбиение дисков на разделы и управление жестким диском стало нормой. Другим аспектом было то, что фирма IBM усовершенствовала ДОС таким образом, чтобы ею удобно было пользоваться людям в разных странах. Теперь для различных языков появились разные клавиатуры, и ДОС н&до было знать, какую из них вы используете. Более того, для того чтобы выводить дату и время в соответствующем виде, ДОС надо было знать, в какой стране вы находитесь. Это означало, что если вы не использовали задаваемые по умолчанию американскую клавиатуру и английский язык, вам надо было указать в двух конфигурационных файлах CONFIG.SYS и AUTOEXEC.BAT определенные команды. (Полностью я объясню эти файлы в гл.22 и 23. Сейчас же вам достаточно знать, что эти два файла используются для того, чтобы сообщить ДОС, как вы хотите детально сконфигурировать вашу конкретную систему. Вы можете поместить в CONFIG.SYS, например, команду, определяющую используемый язык, а в AUTOEXEC.BAT — команду, определяющую используемую клавиатуру.) Для того чтобы облегчить установку, фирма IBM разработала новую команду SELECT. С помощью этой команды вы производили основную часть установки, включая форматирование жесткого диска и копирование большого числа файлов ДОС. Название программы происходит от того, что в ней вы выбирали, какую конфигурацию вы будете использовать. Итак, в операционных системах версий 3.x шаги установки были следующими: 1. С помощью дискеты с ДОС создать разделы жесткого диска. 2. С помощью дискеты с ДОС запустить программу SELECT. 3. Скопировать на жесткий диск оставшиеся файлы ДОС. Замечание. В отличие от давних времен, мы уже не начинаем установку с копирования дискет с ДОС (которых теперь уже несколько). Когда вы устанавливаете программное обеспечение на жестком диске, вам редко требуется повторное использование эталонных дискет, так что нет настоящей необходимости копировать их. Только убедитесь, что они хранятся в надежном месте. 46
Как устанавливают ДОС сейчас Как вы можете себе представить, ДОС стала сложной как никогда. Сейчас во время установки надо задать множество деталей. Но перед лицом сложностей фирма IBM облегчила нам жизнь. Начиная с ДОС версии 4.00 программа SELECT усовершенствована до того, что делает за нас всю работу. Все, что вам необходимо сделать, — это вставить в компьютер установочную дискету с ДОС и включить питание. ДОС автоматически загрузится с дискеты и автоматически запустит программу SELECT. (Хотя программа установки все еще называется ’’SELECT”, на самом деле вы ничего сами не запускаете. Все происходит автоматически.) Сейчас программа SELECT управляется с помощью меню. Это означает, что программа предлагает вам последовательность экранов (меню) и просит вас выбрать то, что вам требуется. (Вы можете, например, указать программе SELECT установить ДОС не на жестком диске, а на дискете.) Во время процесса установки SELECT сообщит, когда надо поменять дискеты. Все, что вам необходимо делать — это следовать инструкциям. Важно, однако, понимать, что хотя программа и делает для вас всю работу, она все же производит стандартные операции, необходимые для установки ДОС: 1. Создает разделы жесткого диска. 2. Форматирует жесткий диск. 3. Копирует на жесткий диск файлы ДОС. 4. Создает персонифицированные файлы конфигурации (CONFIG.SYS и AUTOEXEC.BAT). Хотя установка ДОС стала совершенно безболезненной, я все- таки рекомендую вам перед началом установки потратить несколько минут на изучение документации по запуску. В конце концов, наша цель не только в том, чтобы установить ДОС, но и в том, чтобы вы представляли себе, что при этом происходит. С PC-DOS поставляется отдельное руководство под названием "Начало работы с дисковой операционной системой”. При работе с MS-DOS вам надо будет прочитать главу ’’Начало работы” руководства пользователя. Итак, объяснив весь процесс установки ДОС версий семейства 4.x, можно обобщить: 1. Прочтите документацию. 2. Вставьте установочную дискету в дисковод, включите компьютер и следуйте инструкциям. А теперь давайте перейдем к следующей главе, в которой мы начнем изучать команды ДОС — волшебные слова, которые сделают компьютер нашим рабом. 47
Глава 6 ОСНОВЫ КОМАНД ДОС Перед тем, как мы действительно перейдем к рассмотрению команд ДОС, вам надо изучить основы того, как они составляются и используются. В этой главе мы приостановимся и изучим основы команд ДОС. Настоящая цель этой книги — это помочь вам поближе познакомиться с ДОС, как можно сильнее ускорить достижение вами такого состояния, когда вы будете думать о ДОС как о старом друге, о нужном инструменте, который вы используете легко и непринужденно. Лучше всего поможет вам освоиться с ДОС понимание того, насколько важны для ДОС дисководы. ДОС, в конце концов, это Дисковая операционная система, и диски — это сама суть того, как работает и организует себя ДОС. Если вы хотите понимать ДОС, вы должны понимать, каким образом ДОС работает с дисками. Контроль за дисководами Самое первое, что надо уяснить себе — это то, что ДОС больше концентрируется на дисководе, чем на действительной дискете или жестком диске. Имеет ли ваш компьютер жесткий диск, один или два дисковода для гибких дисков, для ДОС требуется содержательный и одинаковый способ слежения за этим дисковым устройством. Как вы уже заметили, ДОС делает это, присваивая каждому дисководу собственное ’’имя”. Первый дисковод называется А, второй — В и т.д. Как я упоминал в предыдущей главе, ДОС преобразует единственный дисковод в пару дисководов А и В. Действие многих команд ДОС требует двух дисководов. Когда же есть только один дисковод, ДОС гораздо проще и удобнее сымитировать второй дисковод (диск В), чем пытаться сделать все с единственным диском А. Как мы уже узнали, разделы жесткого диска называются диском С, диском D, диском Е и т.д. У большинства пользователей будет один жесткий диск с одним разделом. Основная работа, которую вы будете выполнять на компьютере, будет концентрироваться на этом разделе жесткого диска, называемом диском С. Когда вы производите операции, задействующие дискеты, вы используете диски А и В. Допустим, у вас имеется дискета и вы намерены поработать с ней. Если вы вставите ее в дисковод А, то вам надо сообщить ДОС, чтобы она обратилась к дисководу А и определила, что там находится. Если вы установите ту же дискету в дисковод В и укажете ДОС взглянуть на нее, результат будет тем жр. Смысл весьма прост: ДОС не знает, что вы делаете с дискетами, которые 48
вы вполне можете тасовать за спиной ДОС. Но ДОС в точности знает, что происходит с дисководами, и здесь сосредоточено все ее внимание. Что бы вы ни делали с данными или программами на диске, вы должны сообщить ДОС, к какому дисководу ей надо обращаться. Вы делаете это набирая букву дисковода, за которой следует двоеточие: с: Это указывает ДОС, что надо работать с дисководом С. Для каждого из дисководов с дискетами вам необходимо сделать то же самое. Например, для дисковода А надо набрать а: а для дисковода В Ь: (ДОС, между прочим, с одинаковым удовольствием воспринимает буквы как строчные, так и заглавные и обрабатывает их одинаково.) Когда какое-либо руководство по компьютерам ссылается на спецификацию дисковода, это означает букву дисковода, за которой следует двоеточие. Итак, запомните, что А:, С: и т.д. называются также спецификацией дисковода. Кстати говоря, поскольку после имени диска вам практически всегда придется вводить двоеточие, мне приятно думать, что у диска есть два имени. Буквы А, В, С и т.д. — это имя. Двоеточие — фамилия. Как и у людей, одинаковая фамилия, в нашем случае двоеточие, означает, что все дисководы — это члены одного ’’семейства”. Но в отличие от людей между именем дисковода и двоеточием никогда не бывает пробела. Дисковод по умолчанию Большинство из того, что вы делаете с компьютером, затрагивает данные на диске, так что печатание спецификации диска каждый раз просто раздражало бы вас. ДОС упрощает этот процесс тем, что имеет так называемый дисковод по умолчанию — тот дисковод, к которому обращается ДОС, пока вы не укажете какой-либо другой дисковод. ДОС следит за текущим дисководом по умолчанию и каж¬ дый раз, как вы или программа обращаетесь к дисководу без указа¬ ния спецификации дисковода, она полагает, что вы намеревались использовать дисковод по умолчанию. Я уже упоминая, что ДОС подсказывает, что надо вводить команду, примерно так: С\> Вы, вероятно, в состоянии догадаться, что С в этой подсказке означает текущий дисковод по умолчанию. Если дисковод по умолчанию изменится на А, подсказка ДОС будет следующей: А\> Если хорошо подумать, то эта подсказка весьма полезна. Поскольку дисковод по умолчанию можно изменить, очень полезно Напоминание нам о том, что является принятым по умолчанию. Но 49
если ДОС все время будет выводить сообщение вроде ’’Сейчас дисковод по умолчанию С”, это будет только раздражать нас. Вместо этого, подсказка ДОС является компактным, удобным и ненавязчивым способом напомнить нам о текущем дисководе по умолчанию. Но в действительности подсказка говорит нам больше, чем просто о дисководе по умолчанию. Она также говорит нам о том, в каком каталоге мы находимся. Вскоре я объясню вам, что такое каталоги, так что сейчас не беспокойтесь о них. В этих примерах обратная косая черта \ говорит нам, что мы находимся в главном (или ’’корневом”) каталоге. Так что в действительности подсказка с\> говорит нам следующее: Сейчас текущий дисковод С и вы находитесь в главном каталоге Если вы используете версию ДОС ниже 4.x или у вас нет жесткого диска, подсказка не будет показывать вам каталогов. Вы увидите только имя дисковода, за которым стоит знак >. Во всяком случае, вы всегда можете изменить подсказку на ту, которая вам нравится. Как это сделать, я объясню вам позже. Что делать, если вы хотите изменить дисковод по умолчанию? Это очень просто: введите спецификацию дисковода. ДОС воспринимает спецификацию дисковода как команду на смену дисковода по умолчанию. Вот вам пример. Ваша текущая подсказка: с\> что означает, что текущий дисковод С, — ваш жесткий диск. Вы хотите заменить его на первый дисковод. Убедившись, что в этот дисковод установлена дискета, вы вводите: а: ДОС меняет текущий дисковод и показывает новую подсказку: А\> Теперь текущим дисководом стал дисковод А. Когда бы вы ни работали с дисками, вы всегда можете выбрать, использовать ли дисковод по умолчанию, или указать другой дисковод. Вы, в частности, можете указать дисковод, даже если он является текущим — ничего плохого от этого не произойдет. Вывод из этого такой: если вы по какой-либо причине хотите быть уверены в используемом дисководе, вы можете ввести имя дисковода с двоеточием. Эта команда отлично сработает вне зависимости от того, является ли дисковод дисководом по умолчанию или нет. Встроенные и внешние команды Следующее, что хотелось бы сказать о командах в целом, это то, откуда они берутся. Как я уже упоминал, все команды, которые 50
выполняет ДОС, так или иначе являются программами. Возникает вопрос: что это за программы и где они находятся? Это подводит нас к теме встроенных и внешних команд. ДОС стоит перед такими затруднениями, которые вы и представить себе не можете. Внутри себя она имеет большое число команд, которые мы можем использовать. Если бы у нас был выбор, мы бы предпочли иметь эти команды под рукой постоянно. Но для этого все эти программы должны быть резидентными в памяти. Это означает, что они все время будут занимать некоторую часть памяти — рабочего пространства компьютера — и тогда, когда мы их используем, и тогда, когда мы их не используем. С другой стороны, поскольку у нас есть множество применений для памяти нашего компьютера, нам хотелось бы, чтобы эти программы, которые мы можем вызвать, а можем и не вызвать, занимали бы как можно меньше места в памяти компьютера (на его рабочем столе). Конфликт очевиден, и чтобы разрешить его, ДОС идет на компромисс. Небольшая часть самых маленьких и полезных программ является резидентной частью ДОС. Они называются встроенными командами. С того момента, как ДОС считали с диска и запустили, они все время находятся в памяти. А так как они все время находятся в памяти, они всегда доступны — ДОС ’’знает” эти команды и может вызвать их так же легко, как вы можете назвать свое имя или номер своего телефона. Примером встроенной команды является COPY (для копирования файлов) и VER (чтобы напомнить вам, какую версию ДОС вы используете). Все остальные программы команд ДОС называются внешними и находятся на диске до тех пор, пока они не понадобятся. Когда вы вызываете одну из этих команд, ДОС должна обратиться к диску, чтобы ’’освежить” память, очень похоже на то, как вы можете заглянуть в бабушкин рецепт рождественского печенья. В PC-DOS 4.01 65 команд, из которых 29 встроенные и 35 внешние. В MS-DOS 4.01 66 команд: 29 встроенных, 36 внешних. (Дополнительная команда в MS-DOS — это FC, сравнение файлов.) В терминах компьютера встроенные команды встроены прямо внутрь ДОС, и нет вопроса относительно того, что они являются частью ДОС. Внешние команды также поставляются с ДОС, так что вполне правомерно считать их также частью ДОС. Но если не обращать внимания на тот факт, что они поступают на диске с ДОС, в действительности, они мало отличаются от любой другой программы, которую можно запустить с диска. В действительности, существует только легкое различие между внешними командами, являющимися частью ДОС, и всеми остальными внешними программами, которые как команды вызываются с диска. Вскоре сы увидите список встроенных и внешних команд. В зависимости от того, какого типа команду вы выбрали, ДОС либо сможет выполнить ее немедленно (в случае встроенной команды), либо ей придется заглянуть на свой дисковый стеллаж с 51
папками за программой команды, чтобы узнать, что же надо делать. Практическое значение этого факта заключается в том, что если вы хотите исполнить внешнюю команду, то она должна находиться в этот момент на диске. ДОС может выполнить команду, если у нее есть доступ к представляющей эту команду программе. Встроенные команды всегда под рукой, но если вы запросите внешнюю команду, то для того, чтобы ДОС могла найти программные файлы, они должны находиться на жестком диске. Если в вашем компьютере нет жесткого диска, то когда бы вы ни использовали внешнюю команду,вам надо убедиться, что дискета с ДОС доступна. Как вы можете себе представить, это ограничение делает жизнь весьма неудобной. Оно также демонстрирует одно из важных преимуществ жесткого диска: всегда доступны все команды ДОС (а также ваши программы) и для этого совсем не надо переставлять дискеты. Если вы запросите внешнюю команду, к которой нет доступа, ДОС не сможет выполнить эту команду. Она, однако, может сообщить вам, что что-то не так: Bad command or filename (Неправильная команда или имя файла) Вначале вас может смущать такое бесчувственное сообщение. По этой причине мне и хочется обсудить его. Когда вы больше узнаете о том, как хранятся на диске команды ДОС, вы увидите, что имя команды — это имя файла на диске, что объясняет часть ’’имя файла” вышеуказанного сообщения. Важно знать, что когда вы видите это сообщение, ДОС говорит вам, что не может найти программу команды, соответствующую введенному вами имени команды. Есть две причины, по которым ДОС может не найти команду. До- первых, команда может быть недоступна. Вторая причина, к которой вы должны быть готовы, гораздо проще: вы неправильно ввели имя команды. Первое* что вы должны сделать, получив сообщение ’’Неправильная команда”, это проверить, что вы ввели как имя команды — это может быть совсем не то, что вы намеревались ввести. Общие правила написания команд Для того чтобы попросить ДОС выполнить команду, существует стандартный формат, обычно называемый синтаксисом команд, который управляет тем, как мы должны вводить команды. В этой главе разъясняется нормальный способ запроса команды ДОС. К сожалению, вариантов того, как вы можете вводить команды, несколько многовато. Это может привести к некоторому смятению, 52
как же выразить команду наилучшим образом. Я попытаюсь разъяснить это. Во-первых, все команды следуют такому основному формату: ИМЯ-КОМАНДЫ ПАРАМЕТРЫ-ЕСЛИ-ОНИ-ЕСТЬ Мы скоро узнаем о команде COPY, сейчас же вот вам пример того, как мы использовали бы команду COPY для копирования всех файлов с дискеты в дисководе А на дискету в дисководе В: сору А:*.* В: Именем команды было COPY, за которым следовали два параметра. Первый показывал, что копировать (А:*.*), а второй показывал, куда копировать (В:). Вот вам и основное правило: команда начинается именем команды, за которым следуют требуемые параметры. В дополнение, для того чтобы разделить имя команды и параметры, надо использовать некоторые элементы пунктуации. В примерах я использовал пробелы, но ДОС разрешает, а в некоторых случаях и требует, применения других знаков препинания, включая запятые, точки с запятой и некоторые другие символы. По различным причинам лучше всего использовать символ пробела, запятую и точку с запятой. Если для разделения команд и параметров вы всегда будете использовать пробел, то, вероятно, получите наилучшие результаты и меньше всего проблем. Исключение составляет один-единственный случай, который я опишу ниже. Большинство команд требует только одного или двух параметров. Но иногда может понадобиться задать ДОС несколько параметров, которые должны следовать в определенном порядке. Если вы пропускаете какие-нибудь из этих параметров, вы должны указать ДОС, что вы делаете это умышленно. Сейчас я не буду вдаваться в детали, но вот пример команды такого типа. Это команда MODE, и для того чтобы указать ДОС как посылать или принимать информацию через связь с модемом или последовательным принтером, вы используете следующий формат: MODE ИМЯ-УСТРОЙСТВА-СВЯЗИ 1ЫЙ,20Й,ЗИЙ,4ЫЙ Обратите внимание на то, что все параметры с первого по четвертый разделены запятыми. ДОС требуется информация обо всех параметрах, но в некоторых случаях вам может понадобиться ввести только некоторые из них. Если вам надо указать ДОС только параметры 1,3 и 4, ваша команда должна выглядеть следующим образом: 53
MODE ИМЯ-УСТРОЙСТВА-СВЯЗИ 1ЫЙ..ЗИЙ.4ЫЙ Чтобы указать ДОС, что вы умышленно не указываете параметр 2, на его месте в списке параметров вы вводите запятую. В то время как большинство команд имеет только один или два параметра, некоторые специальные программы, такие как компиляторы языков программирования, требуют длинного списка параметров, некоторые из которых могут быть опущены. Для такого типа команд существует очень полезное соглашение: Каждый параметр отделяется запятой. Если параметр в списке* отсутствует, на его месте ставятся две запятые подряд. Когда все нужные параметры уже указаны (даже когда может быть еще несколько параметров), то конец списка обозначается точкой с запятой. Вот пример, показывающий, как это делается: КОМАНДА 1ый.2ой.,4ый..бой; Обратите внимание на то, что третий и пятый параметры отсутствуют, а на их месте стоят запятые, так что ясно, что четвертый параметр — это четвертый параметр. Когда вам надо задать параметры команды специальным образом, то так и поступайте. В противном случае, для простоты я рекомендую вам разделять имя команды и параметры, а также параметры между собой пробелом. Задание переключателей Вам надо еще знать, как пишутся команды и их параметры. Некоторые команды разделяют свои параметры на две категории: основные параметры и параметры, называемые переключателями. Этот короткий список поможет вам легко понять, что такое переключатели: КОМАНДЫ показывают, что надо делать (например, копировать данные). ПАРАМЕТРЫ показывают, с чем должна работать команда (например, какие данные копировать). ПЕРЕКЛЮЧАТЕЛИ показывают, как должна выполняться команда (например, должна ли копия проверяться на неправильность) Для того чтобы было легче отличать параметры (с чем работать) от переключателей (как выполнять действие), ДОС использует специальное обозначение. Перед переключателем ставится специальный символ. 54
Стандартным символом, определяющим переключатель, является косая черта (/). Именно этот символ используют все составляющие ДОС программы. Большинство остальных программ также использует его. (Хотя мое замечание может осложнить вашу жизнь, я должен предупредить вас о том, что вместо него некоторые программы используют дефис.) Чтобы быть последовательным, в этой книге я буду показывать формат с косой чертой, который является нормальной формой для ДОС. Вот вам пример. Когда мы обсуждали команду FORMAT, мы использовали следующую команду: format с: /s /v В этом случае format — это команда, с: — это параметр, a /s и /v — это переключатели. Так же как и /S, переключатели обычно очень короткие и простые — как правило, косая черта и единственная буква. Основная идея переключателей — это указать ДОС, надо или не надо выполнять некоторую модификацию основной операции. Например, переключатель /S в команде FORMAT указывает на копирование операционной системы на отформатированную дискету, а переключатель /V — на запрос имени тома. Аналогичным образом, в команде COPY переключатель /V заставляет эту команду проверять точность копирования. Как вы могли заметить, тот же самый переключатель, в нашем случае /V, в разных командах может иметь разное значение. Файлы и имена файлов Почти все команды ДОС производят некоторые действия либо над всем диском, либо над файлами, записанными на диск. Поэтому большинство параметров — это либо спецификации дисков (которые показывают, над каким диском надо произвести действие), либо имена каких-то файлов. Мы рассмотрим детали имен файлов, когда будем более подробно изучать диски в главе ’’Диски”. Но так как вам придется достаточно часто видеть их в последующих главах во время рассмотрения команд ДОС, здесь приводится краткий обзор, который даст вам самые основы и позволит продолжить чтение. Данные на диске организованы в файлы. Для обращения у каждого из них есть имя файла. Чтобы не спутать файлы, на каждом диске каждое имя файла должно быть уникальным. В действительности, имя файла состоит из двух частей — собственно имени файла и расширения имени файла. Имя файла должно быть по крайней мере одним символом и может достигать восьми символов, но не больше. Имя файла может состоять из букв алфавита, цифр, некоторых знаков препинания и 55
специальных символов. В имени нельзя использовать ни символа пробела, ни одного из тех символов, которые разделяют команды и параметры команд. Вы можете использовать символы и в верхнем и в нижнем регистрах, но ДОС рассматривает их как если бы все они были в верхнем регистре. Вот пример имед файлов: FILENAME (ИМЯФАЙЛА) 12 А ABC123 Расширение имени файла — это короткий придаток, добавляемый после имени файла. Имя и расширение разделяются точкой, так что все это выглядит так: ИМЯФАЙЛА.РАС. Расширение может достигать трех символов и не является, обязательным. Файл обязан иметь часть-имя, но не обязан иметь часть-расширение. Если в имени файла расширения нет, то разделяющую эти части точку можно опустить. Подразумеваемая цель расширения — указать, к какой категории относится файл. Это неформальный, необязательный способ показать к какому типу относится файл. В гл. 13 вы узнаете о наиболее общих категориях. Чтобы лучше представить, как могут выглядеть имена файлов, вот еще несколько примеров имен файлов как с расширениями, так и без них: FILENAME.EXT (это самое большое имя файла) А (это минимальный размер имени файла) 12345678 (числа вполне подходят для имени файла) NEW-DATA (дефис подходит для имени файла) NEW_DATA (подчеркивание тоже подходит) ADDRESS.LST (это показывает, как имя может раскрыть содержание) JULY.94 (еще одно информативное имя файла) (JULY июль) Слегка смущает то, что полное имя файла называется именем файла, и часть этого имени тоже называется именем файла, но поскольку такая терминология принята в ДОС, с этим придется смириться. Когда бы вам ни встретился тот или иной термин, приостановитесь и уточните, к чему он относится. Обобщающие символы Существует способ обратиться одновременно более чем к одному файлу — через механизм, известный как обобщенное имя файла. 56
Обобщающие символы позволяют вам частично задать имя файла так, чтобы указанной спецификации удовлетворяли несколько имен файлов. В разделе о переключателях мы уже видели команду копирования со спецификацией файла *.*, что означает любое имя файла и любое расширение. Если вы напечатаете *.СОМ, это будет любое имя файла, но только если его расширение — это СОМ. В действительности, существуют всего два обобщающих символа — звездочка (*), которую вы уже видели и использовали, и вопросительный знак (?), который нам еще не встречался. Каждый из них может использоваться в спецификациях файлов различными способами, но детально мы рассмотрим это позднее. Сейчас же просто запомните, что для указания любого имени файла с любым расширением, т.е. всех файлов на диске, можно использовать *.*! Вооруженные этой основной информацией, перейдем к рассмотрению некоторых команд ДОС. Глава 7 ЭЛЕМЕНТАРНЫЕ КОМАНДЫ В этой главе вы начнете изучение предлагаемых вам ДОС команд. Я начну с самых простых для понимания и наиболее часто испопьзуемых команд. В последующих главах мы перейдем к рассмотрению более сложных команд. Для облегчения восприятия команд (и ДОС) я буду группировать их по содержанию, а не в алфавитном порядке. Я не буду рассматривать точные детали того, как работает каждая команда. Этот предмет справедливо принадлежит вашим руководствам, особенно в связи с тем, что от версии к версик некоторые из этих команд могут несколько отличаться. Что я сделаю в этой главе, так это научу вас понимать смысл того, что делают команды, а также дам краткие полезные сведения, которые помогут вам максимально использовать эти команды (а также избежать проблем с этими командами). Три простые команды Давайте начнем с трех самых простых команд ДОС. Они называются CLS, VER и МЕМ, и они одновременно полезны и просты в использовании. Вы просто набираете имя команды и нажимаете клавишу Enter. 57
CLS Имя команды CLS означает "Очистить экран (clear the screen)”, и именно это команда и делает. Она стирает с экрана все, что на нем было, и заканчивает работу, высвечивая в верхнем левом углу экрана подсказку ДОС. Вам может быть интересно, зачем нужна команда для очистки экрана. На практике, особенно когда вы все более и более будете полагаться на ДОС, CLS окажется полезной для удаления с экрана различных остатков сообщений. При этом она создает впечатление, что перед вами лежит совершенно новый и чистый лист бумаги. Кроме того, как вы узнаете из главы ’’Основы командных файлов”, команду CLS можно использовать в пакетных файлах, где она очищает экран и позволяет ДОС вывести на него что-нибудь еще. Если вы, находитесь за компьютером, вы можете опробовать простенький пример. Во-первых, включите компьютер и подождите, пока загрузится ДОС. Вы, вероятно, получите краткое сообщение, за которым последует подсказка DOS: IBM DOS Version 4.00 c\> При некоторых обстоятельствах, особенно если у вас старые версии ДОС, у вас могут запросить ввести дату и время. В ответ на оба вопроса просто нажмите клавишу Enter. Экран будет выглядеть Примерно так: Current date is Mon 01-01-1990 Enter new date (mm-dd-yy): Current time is 10:00:12.34a Enter new time: IBM DOS Version 4.00 (C) Copyright International Business Machines Corp 1981.1988 (C) Copyright Microsoft Corp 1981 1986 C\> Обратите внимание на то, что в более ранних версиях ДОС вы могли бы увидеть более простую подсказку — только букву дисковода с символом >, но без обратной косой черты. Получив подсказку, напечатайте CLS и нажмите клавишу Enter. Вот что вы получите: с\> Все остальное стерто командой CLS. 58
VER Теперь займемся командой VER. Как я уже упоминал, VER позволяет вам узнать, какую версию ДОС вы используете. Эта команда полезна в том случае, если вы работаете на чужом компьютере и хотите знать, какая версия ДОС установлена на этом компьютере. (Вам может понадобиться эта информация, так как некоторые прикладные программы работают только с некоторыми версиями ДОС.) Использовать команду VER так же легко, как и CLS. Если ваш компьютер включен, попробуйте ее, введя при наличии подсказки ДОС: •С\> ver Нажмите клавишу Enter и увидите примерно следующее сообщение: IBM DOS Version 4.00 Практически невозможно использовать команду VER с разрушительными последствиями. То же верно и по отношению команды CLS, но есть одно замечание: если вы работали со списками имен файлов или создавали файлы с помощью ДОС (как это делается, вы узнаете позже), прежде чем вы используете команду CLS и сотрете с экрана все, что на нем до этого было, проверьте его содержание. Я сам не раз попадался на этом. МЕМ Последняя из самых простых команд — это МЕМ. Как подсказывает ее название, МЕМ расскажет вам все о памяти вашего компьютера. Ранее мы уже узнали, что непосредственно ДОС может использовать до 640 Кбайт ОЗУ (Оперативного запоминающего устройства), остальную же часть ОЗУ ДОС может использовать либо как продолженную, либо как расширенную память. Команда МЕМ покажет вам, сколько у вас памяти и какая ее часть доступна. Если, например, после подсказки ДОС вы напечатаете: С\> mem ДОС покажет сводку ресурсов памяти, которая будет выглядеть примерно так: 655360 bytes total memory (всего памяти ) 645336 bytes available (доступно ) 589920 largest executable program size (размер макс. исп. программы ) 5505025 bytes total extended memory (всего продолженной памяти ) 5505025 available extended memory (доступно продолженной памяти) 59
В этом случае мы видим сообщение от компьютера, имеющего 6 Мбайт (мегабайт) памяти. Из этих 6 Мбайт 640 Кбайт (655360 байт) — обычная память ДОС, а остальное — продолженная память. Разница между ’’всего памяти” и ’’доступно памяти” (первые две строчки) — это объем памяти, занятый ДОС и любыми резидентными в памяти программами (это будет разъяснено в гл. 18). В том виде, в каком я показал ее, команда МЕМ доступна начиная с ДОС версии 4.x. В более ранних версиях команда МЕМ отсутствует. Но все-таки можно получить простой отчет о состоянии памяти как часть команды CHKDSK. Команды, связанные с календарем ДОС следит за датой и временем суток. По разным причинам это очень полезная особенность. Но что самое полезное, так это то, что каждый раз, когда вы создаете или изменяете информацию на диске, данные на диске помечаются текущей датой и временем. Эти пометки могут быть чрезвычайно ценными при ответе на следующие вопросы: ”С какими из этих файлов я работал на прошлой неделе?” или ”На каких дискетах находятся последние изменения к моему отчету?” (Вы узнаете,как найти ответы на эти вопросы в гл.9, когда мы будем изучать команду DIR.) Так же как и с бумажными папками, просто спасительно знать, что все файлы аккуратно проштемпелеваны датой и временем. И не было и дня, когда бы я не обнаружил, что видеть на файлах дату и время по крайней мере полезно. Дата и время Для того чтобы показать, ввести или изменить дату и время, в ДОС имеются две специальные программы, которые, естественно, называются DATE и TIME. Эти команды работают независимо, так что можно вводить или изменять одно без изменения другого. Между прочим, если при запуске ДОС отсутствует файл AUTOEXEC.BAT, команды DATE и TIME вызываются автоматичес¬ ки. Если в вашем компьютере дело обстоит именно так, то вы увидите эти команды в действии, когда ДОС попросит вас ввести дату и время. В противном случае, если вы сами не зададите эти команды, вам не придется устанавливать дату и время. Обе команды DATE и TIME работают одинаково и могут быть использованы одним из двух способов. Первый способ, который можно назвать интерактивным, реализуется при вводе имени команды без параметров. Если взять для примера команду DATE, вы введете: date 60
Как мы уже несколько раз писали, ДОС отвечает выдачей текущего значения даты и запрашивает новую дату вот так: Current date is Tue 01-01-1980 Enter new date (mm-dd-yy): В этом месте вы либо вводите новую дату, либо, оставляя дату неизменной, просто нажимаете клавишу Enter. Другой способ использования команд DATE и TIME более прямой. Если вы введете имя команды, за которым следует дата и время, и нажмете клавишу Enter, то ДОС без вывода сообщений и запросов просто изменит дату и время. Вот пример того, как мы можем использовать команды DATE и TIME таким образом: date 7-4-1994 time 14:15 Вот несколько советов и замечаний относительно команд DATE и TIME: При вводе даты вы можете использовать либо дефис (-), либо косую черту (/). При вводе времени используется двоеточие (:). При вводе чисел можно опускать лидирующие нули. Так, например, при задании января вместо 01 можно ввести 1. При вводе даты можно опустить столетие — 19 в 1987. При вводе времени вы можете опустить секунды или минуты и секунды. Не существует способа заставить ДОС вывести дату и время без запроса их новых значений. (Вы можете использовать одну хитрость, о которой вы узнаете в гл. 18 в разделе ’’Введение в переназначение”.) При нормальных условиях, если во время работы наступает полночь, ДОС автоматически изменяет дату. ДОС достаточно ’’ловкая” и следит за високосными годами. Команды DATE и TIME являются встроенными, так что вы можете использовать их в любое время, независимо от того, что находится на диске. Когда бы вы ни установили дату и время, ДОС автоматически переустанавливает их в ваших питаемых батарейкой часах. Это означает, что при следующем включении компьютера вам не придется вновь задавать их. Итак, вот они — несколько простых, но полезных команд, с которыми вы можете начать работу в ДОС. Вы знаете как очистить экран, чтобы добиться ’’исходного состояния”, вы можете узнать номер версии любой копии ДОС, и вы можете проверить или уточнить знания ДОС о дате и времени. Теперь давайте перейдем к более интересным и ценным командам. 61
Глава 8 ОСНОВНЫЕ ФАЙЛОВЫЕ КОМАНДЫ Я уже говорил о том, что основная работа, которую делает ДОС, связана с дисками и файлами на дисках. Пришло время узнать об основных файловых операциях — наиболее важных и полезных командах, работающих с файлами. Что же это за операции, которые нам надо производить над ,файлами? В основном нам потребуется сделать копии файлов, освободиться от файлов, которые нам больше не нужны, просмотреть файлы, изменить имя файла, сравнить их, чтобы убедиться, что два файла одинаковы. Давайте начнем с копирования. Копирование файлов Команда COPY выступает как нечто очень простое — как инструмент для создания копий файлов на дискетах. Но к теме копирования она добавляет достаточно вариаций и в результате служит трем явным целям. Самый прямолинейный тип копирования просто создает дубликат файла на другой дискете. Вот пример, в котором мы указываем ДОС скопировать (гипотетический) файл THISFILE с одной дискеты в дисководе А* на другую дискету в дисководе В: сору а:thisfile b: Вот другой пример, использующий обобщенное имя файла, которое мы обсуждали в предыдущей главе, для копирования всех файлов (*.*) с дискеты в дисководе А на отформатированную дискету в дисководе В: сору А:*.* В: В имени файла вы можете использовать вместе и символы и обобщающие символы. Например, вот так вы можете скопировать все файлы, начинающиеся буквами XYZ: COPY A:XYZ*.* В: Видно, что у этой идеи множество вариантов, но в результате действия любой команды COPY в форме COPY дисковод:имяфайла дисковод: 62
получается то же самое — ДОС создает дубликат файла на другом диске, но под тем же именем, что и на исходном. Так как в виде назначения вы задали ДОС только имя дисковода, команда COPY использует то же имя файла. Если вы хотите, вы можете указать имена файлов назначения, и тогда ДОС будет не только копировать их, но и давать им другие имена. Например: COPY этотфайл тотфайл создаст копию файла ЭТОТФАЙЛ, которая будет называться ТОТФАЙЛ. Обратите внимание на существенную разницу между этой командой и предыдущей. Она не задает никаких дисководов (таких как А: или В:). В этом случае ДОС использует текущий дисковод по умолчанию как для источника, так и для назначения копирования. Это означает, что обе копии, ЭТОТФАЙЛ и ТОТФАЙЛ, будут находиться на том -же диске. Их имена различны, так что оба файла могут без проблем сосуществовать на том же диске. Что надо здесь запомнить (кроме того, как копировать): если копирование производится без изменения имени файла, команда COPY требует, чтобы источник и назначение были на различных дисках, так как ДОС не допустит существования двух файлов с одним и тем же именем на одном и том же диске. Если вы, однако, изменили имя копии, файл назначения может находиться в любом месте; либо там же, где и источник, либо нет, а если вы указали другое его местонахождение, то и в другом месте. Например, вы можете одновременно скопировать ЭТОТФАЙЛ с дисковода А на дисковод В и назвать его ТОТФАЙЛ, набрав сору а:этотфайл Ь:тотфайл Итак, мы рассмотрели два из трех различных способов исполь¬ зования команды COPY: создание дубликата на другом диске и создание дубликата под другим именем либо на том же, либо на другом диске. Но есть еще один способ использования команды COPY — объединение содержимого нескольких файлов в один файл. Это действие объединения является сложным и рискованным, поэтому вам не стоит пытаться сделать его до тех пор, пока вы не наберетесь опыта работы с ДОС. Нр вы должны знать об этом свойстве команды COPY, чтобы при необходимости изучить его. Предположим, у вас есть два файла, XX и YY, и вы хотите объединить их содержимое в один файл ZZ. Сделает это следующая команда копирования: сору хх+уу ZZ 63
Вы должны знать, что в реализации такого копирования есть опасности и ловушки, и вы должны следовать некоторым спе¬ циальным правилам. В частности, вы должны быть уверены, что объединяемые файлы действительно существуют. (Если это не так, ДОС не остановится и не сообщит, что такого файла нет.) Вы также должны проверить, существует ли на диске файл, в который вы ко¬ пируете. Если это так, то объединяемые файлы заменят инфор¬ мацию в этом файле, а не добавятся к ней. Когда вам понадобится такое использование команды СОРУ, будьте особенно осторожны. По существу, вне зависимости от того, какой тип копирования вы делаете, команда СОРУ продолжит свою работу независимо от того, существует файл назначения или нет. Если файла с именем файла назначения нет, то будет создан новый файл. Если есть, он будет переписан, что может уничтожить ценные данные. Предупреждения о том, что существующий файл будет уничтожен, не будет, так что будьте осторожны со всеми режимами копирования. Это один из способов, которым вы можете испортить ваши ценные данные. С другой стороны, кроме случая объединения файлов, СОРУ требует, чтобы файлы-источники были в наличии, что вполне естественно. Как можно сделать копию того, чего нет? СОРУ даст вам знать, если она не сможет найти файл источник, который мы хотим копировать, выдав сообщение ’’Файл не найден” (File not found). Стирание файлов командами DEL и ERASE Если с помощью команды СОРУ вы можете удваивать файлы (создавать новые копии), предположите, что можно и умышленно удалять файлы. И вы действительно можете это сделать. Для этого существует команда DEL/ERASE. Это одна команда, но с двумя различными именами: DEL (удалять) и ERASE (стирать). Любая из этих команд заставит ДОС удалить файл. Вы можете удалять файлы по-одному или группой, используя обобщенное имя файла. Очевидно, что в последнем случае есть опасность, что вы можете указать ДОС удалить с диска все файлы (если зададите обобщенное имя *.*, означающее ”все файлы”). Чтобы защитить вас от этой возможности, DEL/ ERASE приостановится и спросит вас, действительно ли вы хотите сделать это. Например, если вы введете del * * ДОС спросит вас: Are you sure (У/N)? ( Вы уверены (Д/Н)9 ) 64
Это ваш единственный шанс отступить. Если вы введете Y и нажмете клавишу Enter — все пропало. Однако все остальные команды уничтожения файлов выполняются без предупреждения, так что команды типа приведенных ниже выполняются автоматически: del *.bak также выполняется автоматически и такая команда: erase (этотфайл) и такая команда: erase (мойфайл.*) Если вы удалите не тот файл Хотя ДОС не предоставляет способа для восстановления стертых файлов, на самом деле данные из стертых файлов находятся на диске. ДОС не удаляет всех следов файла на диске. Вместо этого она просто сигнализирует, что место, которое занимал файл на диске, "свободно для занятия”, и пишет поверх старых данных при сохранении новой информации. В связи с тем, что удаленная информация все .еще находится на диске, ее иногда можно восстановить с помощью умной программы "рестирания”. Если такие программы для вашего компьютера существуют, то покупка подобной программы была бы наилучшим капиталовложением, так как она.служит страховым полисом для ваших данных. Когда я приобрел свой первый персональный компьютер, для него не было ни одной такой программы, так что первым делом я ее написал. Эта программа спасала меня много раз, и у меня^ есть пачка писем от других людей, благодарящих меня за создание инструмента, помогающего и им спасти свои данные. Если вам захочется иметь копию последней версии моей программы восстановления, то она поступает в составе пакета Norton Utilities. При некоторой удаче стертые данные могут быть восстановлены, но это относится только к данным, которые потерялись при случайном удалении файла. Вы можете потерять данные и при форматировании диска с информацией. Если это дискета, данные потеряны навсегда, так как форматирование (точнее переформатиро¬ вание) буквально начисто стирает дискету. В случае жесткого диска данные не уничтожаются. Однако для того, чтобы вернуть их, вам потребуется специальная программа восстановления после форматирования, такая как в составе Norton Utilities. 3 Зак 1807 65
Переформатирование — это удобный способ получить пустую дискету, особенно если их запас становится совсем маленьким. Но если вы собираетесь сделать это, примите меры предосторожности. Вы можете поставить крест на этикетке давно не используемой дискеты, а можете хранить старые дискеты в отдельной коробке или ящике стола. Существуют и другие способы защиты, но еще слишком рано вникать во все эти детали. Мы еще узнаем об опасностях стирания и форматирования, а также хитростях для защиты от этих опасностей. В настоящий момент просто имейте в виду следующие два правила: Перед тем, как вы удалите файлы, убедитесь в том, что вы знаете, какие файлы вы стираете и почему, особенно если с помощью обобщающих символов единственной командой DEL вы удаляете несколько файлов. Убедитесь в том, что любая дискета, которую вы пере¬ форматируете, содержит информацию, которую можно ”пустить в расход” (в этом вам поможет команда DIR, рассмотренная в гл.9). Переименование файлов командой REN С командами копирования и стирания файлов связана команда ДОС для изменения имени файла. Команда REN изменит имя файла на любое, еще не использованное имя в том же каталоге диска. Переименование делается так: геп старое-имя новое-имя Например, если у вас был файл DRAFT и вы хотите изменить его имя на FINAL, то команда должна быть такой: ren draft final Так же, как и в других командах, в команде REN для переименования сразу нескольких файлов можно использовать обобщающие символы. Вот так, например, вы можете изменить все файлы с расширением XXX на YYY: геп *.ххх *.ууу Возможны и многие другие комбинации с обобщающими символами. 66
Просмотр файлов командой TYPE Итак, вы узнали, как копировать, уничтожать и переименовывать файлы. Допустим, вы не совсем уверены в том, что находится в файле, который вы хотите копировать, уничтожить или переименовать. В этом случае было бы хорошо просмотреть его и проверить, что в нем находится. Можете вы сделать это? Иногда, с помощью команды, называемой TYPE. Команда TYPE — это удобный способ быстро взглянуть на содержимое файла, так как она копирует файл на экран дисплея вашего компьютера. В действительности, команда TYPE — это просто команда COPY, в% которой назначением копирования вместо другого файла служит экран дисплея. Однако, файл, который вы хотите просмотреть, должен подходить для этого. Он должен содержать отображаемые символы; он должен быть тем, что называется текстовым файлом, иначе то, что появляется на экране, будет полностью или частично бессмысленным. Просмотр выполняется так: type имяфайла.рас (Вам придется указать ДОС полное имя файла включая расширение, если оно имеется.) Одно последнее замечание относительно команды TYPE. Если вы скомандуете ДОС показать нетекстовый файл, вы можете с удивлением увидеть бессмысленные строки символов и услышать странные гудки. Не беспокойтесь, вы ничего не сломали. Дайте команде исполниться до конца, и запомните, что больше не стоит применять команду TYPE к этому файлу. Сравнение копий файлов Когда вы делаете копии файлов с помощью команды COPY, вы можете захотеть подтвердить то, что копии сделаны точно. Говоря по-честному, мало смысла проверять только что сделанную копию. Процесс копирования очень надежен и маловероятно, что при копировании произойдут какие-нибудь ошибки, если, конечно, сама программа копирования не сообщит вам о том, что в процессе копирования возникли какие-то проблемы. Основная причина сравнения копий файлов — это попытка обнаружить, есть ли в копиях какие-либо несовпадения — возможно, незначительные изменения, о которых вы могли забыть. 3* 67
Команды COMP, FC и DISKCOMP Существуют три команды сравнения: СОМР и FC для сравнения отдельных файлов и DISKCOMP для сравнения целых дискет (об этой команде мы поговорим в следующей главе). Программа сравнения файлов проверяет содержимое файлов, чтобы убедиться, что они совпадают. Вот как сравнение файлов производится командой СОМР. Вы сообщаете имена файлов, которые надо сравнить. Если обе копии имеют одинаковое имя, но находятся на разных дисках, нет необходимости указывать имя второго файла. Просто, задав спецификацию дисковода, укажите ДОС, где он находится. Вот два примера того, как можно начать сравнение файлов: comp оригинал копия comp а:имяфайла Ь: Например, представьте себе, что с целью сохранить оригинал, но сделать некоторые изменения в копии, вы только что скопировали очень важный файл по имени CONTRACT. Вы привыкли доверять ДОС, но чтобы чувствовать себя уверенно, хотите проверить, является ли дубликат по имени REVISION точной копией оригинала. Вот в этом случае вы и используете первый из двух предыдущих примеров: comp contract revision Аналогичным образом, если вы без изменения имени скопировали файл CONTRACT с дисковода А: на дисковод В:, ваша команда будет выглядеть так: comp a:contract b: Для того чтобы автоматически сравнить несколько файлов, вы можете использовать обобщенное имя файла. Есть много удобных способов; один из самых удобных — это сравнить все файлы на одном диске со всеми файлами на другом диске и убедиться в том, что они одни и те же. С помощью команды СОМР вы можете следующим образом сравнить все данные на двух дисках: comp а:*.* b: Как уже упоминалось, при сравнении файлов вы имеете в виду одно из двух: либо вы хотите убедиться в том, что файлы одинаковые, либо узнать, в чем состоит различие. Из этих двух целей достоверно можно достичь только первой. Вы можете также 68
узнать, в чем состоит различие, но эта информация может оказаться бесполезной. И вот почему. Команда СОМР действительно сообщает о любом различии между двумя файлами, но в совершенно раздражающем техническом виде. Если она находит различие, то сообщает как местоположение различия, так и само различие в шестнадцатеричных кодах (система счисления с основанием 16). Большинство людей этот вид информации просто смущает. Так что при обычных обстоятельствах используйте команду СОМР только, чтобы убедиться в том, что сравниваемые файлы полностью совпадают. Если СОМР сообщит, что существуют различия, сделайте проверку старомодным способом — сравнением распечаток. Есть один случай, при котором СОМР просто откажется продолжать работу. Если СОМР обнаружит, что сравниваемые файлы разной длины, она тут же остановится безо всякого сравнения содержимого. Если команда СОМР обнаружит 10 различий в содержимом, она не станет искать место, где файлы вновь совпадают, она просто остановится. По сравнению с более хитрыми программами сравнения, СОМР просто прямолинейная и глупая. Но тем не менее она является частью ДОС и хороша для проверки точности совпадения файлов, хотя от нее и мало помощи йри определении сути имеющихся различий. Вторая команда для сравнения файлов — это FC. Команда FC сравнивает два файла и в отличие от СОМР показывает различия в файлах в том виде, в каком мы можем их воспринять. Это означает, что FC лучше, чем СОМР . К несчастью, FC имеется только в MS-DOS, а не в PC-DOS (версии фирмы IBM). В действительности, это единственная команда, которую вы можете использовать в одной ДОС и не можете использовать в другой. Команда FC используется почти так же, как СОМР. Например, для сравнения файлов ОРИГИНАЛ и КОПИЯ, надо набрать: fc оригинал копия Однако в отличие от СОМР, если вы сравниваете файлы на разных дисках но с одним именем, вам надо указать оба имени: fc a:contract bicgntract За дальнейшей информацией по команде FC обратитесь к вашему руководству по MS-DOS. 69
Глава 9 ОСНОВНЫЕ ДИСКОВЫЕ КОМАНДЫ В предыдущей главе мы познакомились с наиболее фундаментальными и полезными командами ДОС для работы с файлами. Теперь пришло время познакомиться с основными командами для работы с целыми дисками. Проверка дисков В ДОС имеются две команды, позволяющие вам узнать, что находится на диске. Они называются DIR и CHKDSK. Команда DIR выдает вам список файлов, находящихся на диске. Этот список называется каталогом. Команда CHKDSK дает вам отчет о состоянии самого диска. Сначала давайте познакомимся с командой DIR, так как эту команду вы, вероятно, будете использовать весьма часто. Что такое каталог Так же как и телефонный справочник, каталог диска позволяет просмотреть его содержимое. В телефонной книге вы находите имена, адреса и номера телефонов. Работая с ДОС, вы можете использовать каталог для того, чтобы проверить имена файлов на диске, размер каждого файла, дату и время создания или изменения каждого файла. Вот пример того, как выглядит каталог в ДОС: Volume in drive С is NORTON (Имя тома в дисководе С NORTON) Volume serial number is 0868-1BFA (Порядковый номер тома 0868-..) Directory of C:\D0CUMENT (Каталог C:\D0CUMENT ) <DIR> 04-10-90 9 18p <DIR> 04-10-90 9 18p DRAFT ВАК 19968 05-31-90 5 13p DRAFT DOC 19968 05-31-90 5 13p FINAL ВАК 29696 05-31-90 5 13p FINAL DOC 29696 05-31-90 5 13p MEMO DOC 5632 05-31-90 5 13p 7 File(s)5623808 bytes free (7 файлов 5623808 байт свободно) 70
Тремя первыми строками ДОС показывает, на какой диск и каталог вы смотрите. Как вы видите, ДОС сообщает как имя тома, так и порядковый номер тома. Имя тома — это внутренняя метка, которую вы можете задать при форматировании диска. В любой момент вы можете изменить ее. Ниже я покажу вам, как это сделать. Порядковый номер тома — это уникальный идентифицирующий номер, который программа FORMAT автоматически помещает на каждый диск (в версиях ДОС после 4.x). Последняя строка этого списка показывает, что дисковод по умолчанию — это Диск С, жесткий диск, и мы находимся в подкаталоге DOCUMENT. (Вскоре я объясню, что такое подкаталог. Сейчас же достаточно сказать, что вы собираете свои файлы в различных подкаталогах, чтобы вам не пришлось хранить их в одном огромном каталоге.) Настоящий список записей каталога начинается ниже строк с именем тома и именем каталога. Он сообщает нам, что в подкаталоге семь файлов. Первые два, и имеют отношение к подкаталогам, о чем я расскажу позже. Следующие пять файлов состоят из двух по имени DRAFT с расширениями DOC и ВАК, двух по имени FINAL, опять с расширениями DOC и ВАК, и одного файла по имени MEMO.DOC. Последняя строка этой таблицы сообщает о том, сколько файлов ДОС насчитала на диске, и сколько еще места осталось для хранения файлов. Итак, покончив с этим, посмотрим на саму команду DIR. DIR Команду DIR можно использовать несколькими способами. Самый обычный способ — это ввести команду DIR без или со спецификацией дисковода. Если вы просто введете DIR, то увидите каталог файлов на диске в дисководе по умолчанию. Если, например, дисковод по умолчанию — это дисковод С, и вы введете: dir то увидите распечатку каталога дисковода С. Если же вы введете DIR с указанием спецификации дисковода, например, так: dir а: то увидите каталог файлов на том диске, спецификацию которого вы указали. В любом случае, эта форма команды укажет DIR вывести все файлы. Как вы видели в предыдущем примере, этот список будет содержать имя файла, расширение имени файла, размер файла в байтах (грубо говоря, в символах), а также дату и время, когда этот 71
файл был создан или последний раз изменялся. Помните, как при рассмотрении команд DATE и TIME, я упоминал о том, что файлы имеют временные отметки. Это и является поводом для того, чтобы при включении компьютера задавать ДОС правильные дату и время. Команда DIR — это ваш инструмент, с помощью которого вы може¬ те увидеть эти временные отметки, а также размер каждого из файлов на диске и размер оставшегося для сохранения новых файлов пространства. Если все, что вам надо, — информация об одном файле, и вы не хотите просматривать список всех файлов, то как часть команды DIR можно задать имя этого файла. В этом случае DIR доложит только об этом файле. Например, если вы хотите узнать только то, когда вы написали файл DRAFT.DOC, команда dir draft doc как раз это вам и сообщит. Аналогично для получения информации более, чем об одном, но не о всех файлах, вы можете использовать обобщающие символы. Например, команда dir * bak выдаст информацию о всех файлах, имеющих расширение ВАК, в нашем случае DRAFT.ВАК и FINAL.BAK. Наряду с другими данными, DIR сообщает размер оставшегося на диске пространства. Так что вы можете захотеть использовать команду DIR просто для того, чтобы узнать, сколько места еще доступно на диске. Особенности команды DIR На диске могут находиться ’’скрытые” файлы. Если они там действительно имеются, то обычно это секретная часть операционной системы DOS. Команда DIR действует так, как будто этих файлов нет совсем, но команда CHKDSK, о которой мы вскоре поговорим, сообщает кое-что об этих файлах. Вы должны знать об одной особенности команды DIR. Большинство команд ДОС работает с обобщенными именами файлов типа *.*, означающими ’’все файлы со всеми именами”. Команда DIR также работает с обобщенными именами, но с одним отличием: DIR подразумевает обобщенное имя, даже если вы его и не ввели. Так что если вы введете команду dir 72
то она будет обрабатываться так, как если бы вы ввели dir *.* А если вы зададите имя файла без расширения, например dir имяфайла то оно будет обрабатываться, как если бы вы задали обобщенное расширение имени файла (DIR ИМЯФАЙЛА.*). Например, с нашим простым примером каталога команда dir draft означает то же, что и di г draft.* и заставит DIR дать информацию о двух файлах, DRAFT.ВАК и DRAFT.DOC. Эта специальная особенность команды DIR весьма удобна, но имеет один значительный недостаток — она не соответствует всей остальной ДОС. Большинство команд ДОС требуют от вас, чтобы вы точно вводили расширения. Соответствие важно в любой сложной системе типа ДОС, так как оно уменьшает число правил, которые вам необходимо выучить, и укрепляет уверенность в том, что ДОС сделает именно то, что, как вам кажется, ее просили сделать. В нашем случае не беспокойтесь о том, что команда DIR действует с некоторым отличием от остальных команд ДОС. Это не связано с тем, что вы чего-то не понимаете, это просто команда DIR работает по-своему. Переключатели команды DIR В команде DIR имеются два переключателя. Один переключатель, /Р, заставляет команду останавливаться после заполнения экрана. Другой же, /W, приводит к тому, что DIR выводит список файлов в пять колонок по ширине экрана дисплея. Оба переключателя предназначены для того, чтобы было легче просматривать длинные списки файлов. Если вы используете переключатель /W, то список каталога будет содержать только имя и расширение каждого файла — без указания размера и временных отметок. Вся информация просто не поместится при выводе в пять колонок. Вот как вы увидите наш пример каталога. (Не смущайтесь, полное имя каждого файла включает в себя два слова, например, ”DRAFT ВАК” 73
но считается одной колонкой. Представьте себе, что между именем и расширением стоит как в имени DRAFT.ВАК.) Volume in drive 0 is USER (Том в дисководе О USER) Volume serial number is 0868-1BFA (Порядковый номер тома 0868-1BFA) Directory of D:\HARLEY\DW\NORTON (Каталог D:\HARLEY\DW\NORTON) DRAFT • ВАК DRAFT DOC FINAL ВАК FINAL DOC MEMO DOC 7 File(s) 5623808 bytes free (7 файлов 5623808 байт свободно) Команда CHKDSK В то время, как команда DIR показывает нам список файлов на диске, команда CHKDSK, или проверка диска, предназначена для того, чтобы выдать нам отчет о его состоянии. Команда CHKDSK делает два основных действия. Во-первых, она проверяет диск и оп¬ ределяет, сколько на нем места и какая часть этого места исполь¬ зована. Она также проверяет, нет ли в использовании пространства диска какой-либо рассогласованности. Затем она сообщает полный объем диска, объем занятого пространства,число файлов и, если так случится, есть ли на диске какие-либо скрытые файлы. Команда CHKDSK также сообщает нечто полезное, но совершенно не связанное с функцией проверки диска. Она сообщает об объеме памяти, доступной в вашей системе. Так же как вы можете использовать команду DIR только для определения доступного пространства на диске, вы можете использовать команду CHKDSK просто для того, чтобы посмотреть, сколько у вас осталось памяти. Конечно, лучший способ исследовать память — это воспользоваться командой МЕМ. Но команда МЕМ недоступна в ранних версиях ДОС. Существует следующее правило: для проверки памяти в ДОС версии 4.x и выше пользуйтесь командой МЕМ. В более ранних версиях используйте CHKDSK. Ниже приведен пример сообщения, выдаваемого CHKDSK (обратите внимание на то, что так же как и DIR, команда CHKDSK сообщает имя тома): Volume NORTON created 04-10-1990 8 53р Volume Serial Number is 0868-1BFA 10825728 bytes total disk space 74
(..байт общий объем диска ) 4096 bytes in 2 hidden files (...байт в 2 скрытых файлах) 102400 bytes in 25 directories (. .байт в 25 каталогах ) 5099520 bytes in 241 user files (.. байт в 241 файле ) 12288 bytes in bad sectors (...байт в плохих секторах ) 5607424 bytes available on disk (...байт доступно на диске) 4096 bytes in each allocation unit (...байт в каждом элементе ) 2643 total allocation units on disk (...всего элементов на диске 1370 available allocation units on disk (...доступно элементов на диске 655360 total bytes memory (...всего байт памяти ) 514448 bytes free (. .байт свободно ) Давайте взглянем на всю эту информацию, которую выдает нам CHKDSK. Во-первых, мы видим имя тома (в нашем случае ’’NORTON”), а также и дату и время, когда этот том был создан (отформатирован). Вторая строка показывает нам порядковый номер тома, присвоенный программой FORMAT. (Версии ДОС ниже 4.00 не создают порядкового номера тома.) Затем мы видим общий объем диска и разбивку его по видам использования. Как вы видйте, команду CHKDSK хорошо использовать тогда, когда вам надо узнать, какое пространство вы уже использовали. Обратите внимание на то, что CHKDSK специальным образом упоминает скрытые файлы (см.ниже). После сводки использования диска файлами мы видим три строки технической информации об ’’элементах размещения”. И наконец, мы видим две строки, которые подытоживают использование памяти. Скрытые файлы Скрытые файлы — это специальные файлы, которые не показываются в списках каталогов. Очень непросто создать или удалить скрытый файл. Скрытые файлы обычно содержат данные, являющиеся частью операционной системы, и которые не хотелось 75
бы случайно удалить. В конце концов, если вы не можете их видеть, то вы не можете их и удалить. Два из трех основных файлов ДОС, IBMBIO.COM и IBMDOS.COM, являются скрытыми файлами. Поэтому, когда вы просматриваете основной каталог с помощью команды DIR, вы их и не видите. Некоторые программы, которые вы можете купить, например Norton Utilities, также могут создавать скрытые файлы. ' Существует один скрытый файл, который на самом деле файлом не является: ДОС хранит имя тома как имя пустого скрытого файла в главном каталоге. Некоторые версии ДОС упоминают этот файл в отчете программы CHKDSK. Таким образом, если на вашем диске нет скрытых файлов, но отчет команды CHKDSK сообщает ”0 bytes in 1 hidden file (0 байт в 1 скрытом файле)”, не беспокойтесь, это просто имя тома. Если вам понадобится изменить или создать скрытые файлы, вам потребуется приобрести специальную программу. Пакет Norton Utilities содержит такую программу, называемую FILE ATTRIBUTE (атрибуты файлов). Хотя команда CHKDSK сообщает вам о рассогласованиях на диске, в действительности, такие проблемы весьма редки, и вы можете никогда с такой проблемой не столкнуться. Такие рассогласования могут появиться при неправильном распределении пространства диска, и хотя эта тема очень интересна, большое количество технических подробностей вряд ли подойдет для этой книги. В дополнение к сообщениям о рассогласованиях, CHKDSK готова к исправлению логических повреждений в использовании простран¬ ства диска. Если какой-то объем пространства ’’потерялся”, что является одним из возможных рассогласований в использовании пространства диска, CHKDSK может восстановить его, а также найти или исправить другие неполадки, касающиеся использования диска. В самых ранних версиях ДОС CHKDSK делала это восстановление автоматически, что может быть несколько опасно. Начиная с версии 2.00 команда CHKDSK восстанавливает диск только в том случае, если вы разрешите это переключателем /F. Эти операции проверки, отчета и починки — ценная возмож¬ ность, и очень хорошо время от времени выполнять команду CHKDSK над всеми вашими дисками. Когда вы освоите командные файлы, которые обсуждаются в гл. 10, будет полезно включить ко¬ манду CHKDSK во многие ваши операции с командными файлами. Имя тома для обозначения диска В нескольких примерах отчетов ДОС вы уже встречали имена тома, так что давайте узнаем о них еще немного. 76
Команда VOL Если вы хотите просто узнать идентифицирующую метку вашего диска, нет необходимости выполнять команды DIR или CHKDSK, которые к тому же могут выполняться довольно долго. Есть специальная команда, которая не делает ничего, кроме как сообщает имя тома на диске. Это команда VOL, и вы используете ее следующим образом (если диск, который вам нужен, не находится в текущем дисководе по умолчанию, включите в команду спецификацию дисковода): VOL С: Отчет, который она выдает, похож на те, что вы уже видели: Volume in drive С is NORTON (Том в дисководе С NORTON) Volume Serial Number is 0868-1BFA Конечно, если вы используете более ранние версии ДОС, в которых нет порядковых номеров тома (DOS 3.x или ниже), будет показано только имя тома. Что надо сделать, чтобы с самого начала поместить на диск имя тома? Для этого есть два способа. Когда вы подготавливаете диск для использования, команда FORMAT выдаст вам подсказку для ввода имени тома, или вы можете задать имя тома при помощи /у:имя. Например: format А /у:имя_тома (В более ранних версиях ДОС для задания имени тома надо использовать /v. Уточните детали для вашей версии в руководстве по ДОС.) После того, как диск отформатирован, вы можете добавить или изменить имя тома командой LABEL (см. ниже). С любой из этих команд, когда ДОС потребуется, чтобы вы ввели имя тома, вы увидите сообщение: Volume label (11 characters, ENTER for none)? (Имя тома (11 символов, ENTER при отсутствии)?) На сжатом языке ДОС это означает: ”Введите имя тома длиной до 11 символов; если вы решили не давать этому диску имя тома, нажмите ENTER”. Между прочим, вы можете заинтересоваться тем, почему имя тома может быть длиной до 11 символов. Как я уже упомянул, ДОС хранит имя тома как имя пустого скрытого файла в главном каталоге. Имя тома хранится как запись каталога, а каждая такая 77
запись может иметь до 11 символов: 8 символов имени, 3 символа расширения. Таким образом, когда ДОС сохраняет имя тома, она может использовать до 11 позиций. Команда LABEL Представим себе, что мы отформатировали диск без задания имени тома. Чтобы задать имя тома, вы уже не можете использовать команду FORMAT, так как форматирование уничтожит ваши данные. В этом случае вы используете команду LABEL, включая, при необходимости, спецификацию дисковода. Команда выглядит следующим образом: label а: и ответ команды LABEL выглядит так: Volume in drive A has no label (Том в дисководе А не имеет имени) Volume Serial Number is 1848-1C21 Volume label (11 characters. ENTER for none)9 Предположим, что диск уже имеет имя тома. Допустим, он называется REPORT, и вы хотите изменить имя на XYZ REPORT. Вы набираете LABEL А: и команда отвечает: Volume in drive A is REPORT Volume Serial Number is 1848-1C21 Volume label (11 characters, ENTER for none)9 Наконец, если вы хотите удалить имя тома диска, ничем его не заменяя, вы опять набираете LABEL А: и видите то же сообщение, что и раньше. Но на этот раз, чтобы обозначить, что вы не хотите имени тома, вы нажимаете ENTER, и команда отвечает: Delete current volume label (Y/N)9 (Удалить текущее имя тома (Д/Н)9) Если вы нажмете Y, то имя тома будет удалено. Обычно, вы используете команду VOL, чтобы узнать имя тома, и команду LABEL, чтобы задать имя тома на уже отформатированной дискете. К сожалению, имена самих команд не сообщают, что делает каждая из них. Не существует простого способа определить, что VOL просто показывает имя тома, в то время кзк LABEL действительно пишет его на диск. Вам придется это просто запомнить. 78
Теперь перейдем к очень важной теме — подготовке дискет для использования. Команды подготовки дискет Мы уже знаем об использовании команды FORMAT для подготовки дискет и команд FDISK и FORMAT для подготовки разделов жесткого диска. Теперь давайте получше познакомимся с командой FORMAT и с еще одной командой для подготовки дискет — командой SYS. Имейте в виду: хотя вы и используете команду FORMAT для подготовки жесткого диска, маловероятно, что вам придется форматировать жесткий диск более одного раза. И действительно, если вы не хотите потерять все, что у вас есть на жестком диске, мудрым решением было бы думать о команде FORMAT только как о команде для дискет. К счастью, сейчас прежде чем вы сможете отформатировать жесткий диск, FORMAT потребует от вас ввести имя тома. Однако более ранние версии ДОС не требуют от вас этого. И если у вас именно такая версия ДОС, вам надо быть совершенно уверенным в том, что вместо дискеты вы случайно не зададите команде FORMAT отформатировать ваш жесткий диск (вероятно С:). Форматирование Как мы уже знаем, команда FORMAT используется для самой основной подготовки дискеты к использованию. Она соответствует проведению на чистом листе бумаги направляющих, по которым впоследствии можно будет ровно писать на этой бумаге. Команда FORMAT производит над дискетой два важных действия: она проводит электронные ’’линейки”, которые позволяют ДОС работать с дискетой, и проверяет дискету на наличие любых дефектов. В связи с тем, что дискеты, весьма уязвимы, они могут иметь поврежденные участки. Но дискету с плохим участком все- таки можно использовать — команда FORMAT знает, как определить плохие участки и обнести их защитной загородкой. Когда команда FORMAT обнаруживает такие йлохие участки, она сообщает вам об этом с указанием их размера и размера пригодной части дискеты, после чего остальная часть дискеты готова к использованию. Вам решать, использовать или нет дискету с плохим участком. Когда бы я ни встретил такую дискету, я задумываюсь о том, не дефектная ли она.. Сейчас дискеты настолько дешевы, что я реко¬ мендую вам выбрасывать любую, которая не размечается на 100 % правильно. Ваши данные стоят больше, чем ее цена. 79
Обычно дискеты форматируются без сообщений о плохих участках. Если плохих участков оказывается много, то это признак одного из двух: либо вам попалась плохая партия дискет, либо записывающие головки дисководов загрязнились и их необходимо чистить. Если вы подозреваете, что источником проблем являются грязные головки, обратитесь к квалифицированному технику. Предостережения Так как команда FORMAT за один проход может стереть с дискеты всю записанную на ней информацию, она является одной из самых опасных команд ДОС. Если вы отформатируете дискету, содержавшую ценную информацию, информация пропадет полностью, и ничто не вернет ее. При форматировании дискет будьте осторожны — прежде чем командой FORMAT вы сотрете все данные с лица диска, проверьте, что дискета не содержит ничего ценного. С другой стороны, если вам необходимо уничтожить какие- то конфиденциальные данные и быть при этом уверенным, что они не могут быть восстановлены, для этой цели FORMAT подойдет очень хорошо. Перенос ДОС командой SYS При некоторых обстоятельствах вам может понадобиться перенести ДОС на уже отформатированную дискету. Например, вам может понадобиться скопировать ДОС на дискету для того, чтобы иметь возможность загрузить вашу версию ДОС на чьем-нибудь компьютере. Конечно, вы всегда можете переформатировать дискету с использованием /s, но это уничтожит все данные на диске. Как я уже объяснял, копирование основной части ДОС требует копирования трех основных файлов ДОС: IBMBIO.COM, IBMDOS.COM и COMMAND.COM. Так как COMMAND.COM пред¬ ставляет собой обыкновенный файл, вы можете копировать его командой COPY обычным способом. Остальные файлы, однако, являются скрытыми, и вы не можете копировать их напрямую. Вместо этого вы должны использовать команду SYS (’’системная”). Есть две формы команды SYS. В первой форме вам необходимо указать только дисковод назначения. Команда SYS будет копировать с текущего дисковода. Например, для того чтобы скопировать два системных файла на дискету в дисководе А, введите: sys а: Второй способ использования команды SYS — это указать перед именем дисковода назначения источник копируемых файлов: sys c:\dos а: 80
В этом случае SYS копирует файлы из подкаталога DOS дисковода С на дискету в дисководе А. По каким-то причинам в MS-DOS команда SYS распознает только первую форму, и вы не можете указать какой-то источник. Для уверенности справьтесь в своем руководстве. (И запомните, что в MS-DOS скрытые файлы называются IO.SYS и MSDOS.SYS.) Замечание: в более ранних версиях ДОС, до версии 4.00, команда SYS не могла копировать два скрытых файла, если диск не был отформатирован с /s. Причиной является то, что эти файлы должны располагаться в определенном месте недалеко от начала диска, и в старых версиях ДОС, если это место не было выделено во время форматирования, места для файлов просто не было. Начиная с DOS версии 4.00 это ограничение было устранено, и при необходимости SYS сама выделяет место под такие файлы. Запомните, что команда SYS копирует только два скрытых файла. Если вы хотите сделать рабочую копию ДОС, вам необходимо командой COPY скопировать и файл COMMAND.COM. Вы можете поинтересоваться, можно ли командой SYS установить на уже отформатированном диске новую версию ДОС? Ответ на этот вопрос отрицательный. Когда вы устанавливаете ДОС, автоматичес¬ кая программа SELECT запросит у вас, устанавливаете ли вы ДОС снова или заменяете старую ее версию. Если же по каким-то причинам вы заменяете существующую ДОС на более раннюю версию, не имеющую автоматической программы SELECT, для переноса скрытых файлов вам придется воспользоваться командой SYS. Это, однако, маловероятно. Копирование и сравнение дисков Кроме команды FORMAT существует и другой способ подготовки дискеты к использованию. Это команда DISKCOPY. Команда DISKCOPY DISKCOPY — это команда, считывающая все форматирование и данные с одной дискеты и записывающая все это на другую. В процессе работы она буквально делает дубликат оригинала. Каждый файл — в действительности, каждый символ каждого файла — будет иметь на копии то же самое положение, какое он имел на исходной дискете. Для использования команды DISKCOPY вы вводите имя команды, за которым указываете спецификацию дисковода для дискеты, с которой вы копируете и спецификацию дисковода для дискеты на которую вы копируете. Например, если дискета с 81
данными установлена в дисководе А и вы хотите сделать точную ее копию в дисководе В, команда должна быть такая: diskcopy а: Ь: DISKCOPY — это быстрый и эффективный способ создания копий дискет. Команда настолько быстра и эффективна, что вам все время будут рекомендовать ее. Но при использовании DISKCOPY возникают некоторые серьезные трудности, так что я рекомендую вам быть при ее применении очень осторожными. Предпочтительный способ копирования данных с диска — это команда COPY, которую вы уже изучили. Основной недостаток использования команды DISKCOPY заключается в том, что она не обрабатывает плохие области на ваших дискетах. Если на любой из дискет, с которой вы копируете или на той, на которую вы копируете, имеются неиспользуемые плохие области (типа тех, что обнаруживает команда FORMAT), то команда DISKCOPY будет работать неправильно. С другой стороны, команда COPY — предпочтительный способ копирования данных — отлично работает и с плохими участками на дискетах. Другое преимущество команды COPY над DISKCOPY заключается в том, что COPY может улучшить использование пространства дискеты, a DISKCOPY не может. Это случайный и полезный побочный эффект того, как работает команда COPY. И, наконец, DISKCOPY сотрет все, что было на дискете назначения, в то время как COPY, добавляя информацию на дискету совместит старые и новые файлы. Существует несколько причин не использовать команду DISKCOPY, но есть и причины ее использовать. С одной стороны, если данных на дискете много, DISKCOPY работает быстрее чем COPY. Если на дискете мало данных, команда COPY может работать быстрее, так как она копирует только данные, в то врертя как DISKCOPY будет упорно копировать и неиспользуемое дисковое пространство. Другая причина применения команды DISKCOPY — проверка дискеты на физические повреждения. Если вы можете копировать дискету командой DISKCOPY без сообщений об ошибках, то дискета, вероятно, не повреждена. Этр делает применение команды DISKCOPY быстрым и простым способом проверки этого свойства. Подтверждение того, что DISKCOPY точна Когда вы делаете копии файлов или дисков, вам может понадобиться подтвердить, что копия сделана правильно. Мы уже знаем о команде СОМР, позволяющей произвести сравнение файлов после того, как сделаны копии одного или нескольких файлов командой COPY. Как я уже упоминал, мало смысла проверять 82
только что сделанную копию — процесс копирования очень надежен, и маловероятно, что при копировании возникнут ошибки, если, конечно, процедура копирования сама не сообщила об ошибках. В то время, как команда СОМР позволяет вам сравнивать файлы, команда DISKCOMP позволяет вам сравнивать целые диски для того, чтобы убедиться, что они идентичны. В основном, команда DISKCOMP полезна как средство проверки результатов работы команды DISKCOPY, так как DISKCOMP сообщит о том, что две дискеты различны даже в том случае, если на них содержатся те же данные и они функционально эквивалентны, но различаются самым незначительным образом, таким, как порядок, в котором хранятся данные. Если у вас есть хотя бы малейшее сомнение в том, что две дискеты идентичны, обязательно используйте команду DISKCOMP. Если же вас интересует, содержат ли дискеты одни и те же файлы, и вы хотите быть уверены в том, что файлы имеют те же временные отметки, либо сравните листинги каталогов дискет, либо используйте команду СОМР с указанием тех файлов, которые вы хотите проверить. Команду DISKCOMP легко понять и использовать. Для этого вы вводите имя команды, за которым указываете спецификации дисководов для двух дискет. Обе дискеты прочитываются от начала до конца и сравниваются, а о всех различиях сообщается. Вот типичный пример использования сравнения дисков: diskcomp а: Ь: В процессе сравнения двух дискет DISKCOMP сообщает о местонахождении любых найденных различий сообщениями такого вида: Compare error on side 0, track 7 Compare error on side 1, track 8 и т.д. Так же как и отчет команды СОМР, выдаваемый в шестнадцатеричных кодах, сама информация мало что для вас значит. Даже одно такое сообщение скажет вам, что ваши дискеты не идентичны. 83
Глава 10 ОСНОВЫ КОМАНДНЫХ ФАЙЛОВ Командные файлы — это одно из самых полезных и мощных свойств ДОС, и в этой главе мы познакомимся с ними. Сначала мы познакомимся с самой иДеей командных файлов, а затем узнаем о некоторых хитростях их использования. И наконец, я закончу главу предложениями и примерами, которые помогут вам воспринять командные файлы в терминах вашей работы и ваших потребностей. Прежде чем мы непосредственно приступим к изучению, давайте начнем с некоторых рассуждений — рассуждений о черном ящике. Грубо говоря, существует два способа использования персонального компьютера: специалист и потребитель. Специалисты знают, что они делают (или думают, что знают), и им обычно нравится быть вовлеченными в механику того* как выполняется работа. Те из нас, которые используют подход потребителя, не^Ънают, что происходит, и, вероятно, и не хотят знать — нас интересует результат, и мы не хотим быть вовлеченными в механику того, как этот результат достигается. Для потребителей действия компьютера должны выглядеть как то, что называется черным ящиком. Пока мы уверены, что он делает работу правильно, нам не требуется знать, как ящик выполняет работу. Хорошо, конечно, иметь технические знания спе¬ циалиста, но для большинства пользователей компьютеров чем больше компьютер функционирует как надежный черный ящик, тем лучше для всех заинтересованных сторон. Одно из свойств ДОС, позволяющее ей работать как дружественный черный ящик — это использование командных файлов. Причина, по которой я объясняю это так тщательно — укоренить в вас понятие о том, что командные файлы — это гораздо больше, чем просто удобный, эффективный и безопасный способ управления действиями компьютера. Командные файлы — это также ключ к построению черного ящика, позволяющего сделать использование вашего компьютера менее техницизированным. Когда вы усвоите эту идею, она направит вас на наилучшее использование командных файлов. Знакомство с командными файлами Основная идея командных файлов проста и гениальна: если вам требуется заставить компьютер выполнить стандартное задание, то почему вам необходимо вводить все подробности? Пусть компьютер узнает, что ему надо делать, прочитав команды из файла. При работе с командным файлом ДОС не выполняет наши команды экспромтом. Вместо этого она читает их из списка, оставляя ваше время вам. Существует несколько интересных подробностей относительно того, что могут делать командные файлы, но давайте начнем с основ. Во-первых, пакетная обработка всегда выполняется с 84
помощью командного файла, имеющего расширение .ВАТ. Этот файл должен быть простым, неформатированным текстовым файлом (также называемым ASCII файлом), что значит, что он должен содержать только стандартные символы. Если вы не знакомы с неформатированными файлами, мы рассмотрим их в гл. 13 ”Диски”. Сейчас же вам надо запомнить следующее: вы можете создать неформатированный (или ASCII) файл простым текстовым редактором, таким как редактор EDLIN (который поступает вместе с ДОС) или редактор Norton Editor. Для создания командного файла вы можете воспользоваться и текстовым процессором, но вам придется использовать текстовый процессор в режиме ”недокумента” или ’’неформатированном” режиме, так чтобы файл получился в виде простого неформатироваиного текста. (Руководство по вашему текстовому процессору подскажет, как сделать это.) Внутри командного файла находятся обыкновенные команды ДОС, буквально в том же виде, в котором вы могли бы ввести их с клавиатуры. В файле может быть одна или несколько команд. Каждая команда должна находиться на отдельной строке. Вы запускаете командный файл, задавая ДОС его имя как команду. Это происходит точно так же, как и с программами. Вы вводите имя программы, а ДОС находит и запускает ее. В случае командного файла ДОС начинает поиск файла, и когда определяет, что файл имеет расширение ВАТ, начинает выполнять программы, содержащиеся в этом файле. Как обрабатывается командный файл Самый простой способ понять идею командных файлов — это посмотреть, что происходит при их работе. Так что давайте взглянем на очень простой командный файл. Допустим, вы создали файл по имени D.BAT. Обратите внимание на то, что файл имеет нужное расширение ВАТ. Так как само имя файла это D, то для того, чтобы запустить эту команду обработки командного файла, необходимо ввести всего-навсего D. Чтобы начать без ошибок, давайте сделаем содержимое этого командного файла очень простым — единственной строкой, DIR. (Вы помните, что так называется команда, выдающая список содержимого диска.) И вот как будет выглядеть ваш командный файл. Вот его имя: D.BAT и вот то, что он содержит: DIR 85
Теперь, после того, как мы создали этот командный файл, что же случится, если мы введем имя файла (букву D) и нажмем клавишу Enter ? Сначала ДОС будет искать файл по имени D. Когда она найдет файл D, она также обнаружит, что его расширение ВАТ. Так как расширение ВАТ указывает ДОС на то, что надо выполнять команды из этого файла, ДОС начнет исполнять все команды, которые она обнаружит в файле D. Так как она обнаружит только команду DIR, ДОС выдаст вам список каталога. Этот пример настолько короток и прост, насколько только можно себе представить, и вы можете подумать, что это совершенно искусственный пример безо всякойх практической ценности. Удивительно, но существует применение такого рода командных файлов. Что по сути делает эта команда, так это позволяет вам использовать D как сокращение от DIR. На первый взгляд это может показаться не таким большим достижением, но это вдвое сокращает число нажатий на клавиши, с четырех до двух (учитывая клавишу Enter). Это одна из основных целей командных файлов — упростить ввод, который вам необходимо произвести для того, чтобы заставить компьютер что-то сделать. Таким образом, одно из наилучших применений командных файлов — это просто сделать удобные сокращения команд. Давайте немножко расширим наш простой командный файл. Допустим, что мы хотим, чтобы перед выводом каталога ДОС переключилась на дисковод А. Тогда в файле D.BAT должно содержаться две команды: одна для изменения дисковода, а другая — для вывода каталога. Файл будет выглядеть так: dir Сейчас мы подходим к одной очень умной вещи, которую делает ДОС при работе с командными файлами: следит за тем, где она находится в файле. Так что когда в файле больше одной команды, ДОС знает, с какого места продолжить работу. После окончания выполнения каждой команды ДОС возвращается к командному файлу, прочитывает команды, которые она уже исполнила, а затем запускает следующую команду. Таким образом, в нашем командном файле из двух строк ДОС прочитает первую команду, А:, выполнит ее, вернется к файлу, пропустит первую команду и выполнит вторую, DIR. Теперь вам ясна наиболее важная причина того, почему хорошо иметь командные файлы. Даже до того, как мы перейдем к усложненному материалу, из этого примера видно, что эти файлы не только позволяют вам создавать сокращения имен команд — они позволяют вам группировать несколько команд в одну функци¬ ональную единицу. 86
Очень часто для выполнения рутинной работы вам надо произ¬ вести несколько действий. Представим себе, например, что вы много работаете с электронными таблицами и текстовым процессором. Не¬ которые ваши документы имеют расширение DOC (документ), а другие имеют расширение XLS (электронные таблицы Excel). Пе¬ риодически вы делаете копии ваших файлов на архивные дискеты, и при этом для того, чтобы убедиться в том, что все в порядке, просматриваете каталог копии. Процедура никогда не меняется: сору с:* doc а: сору с:*.хIs а: dir а: За вас это может сделать ДОС. Вы можете поместить эти команды в командный файл по имени COPIES.BAT и хранить этот файл на каждой вашей дискете с данными. Когда бы вам ни потребовалось сделать копии, поместите отформатированную дискету в дисковод А и просто введите: copies Но самая важная причина использования командных файлов — это возможность собрать вместе под одним именем все отдельные шаги, необходимые для выполнения задания. Причина этого зак¬ лючается как в однообразии и полноте, так и в удобстве и простоте. Вне зависимости от задания, помещение всех шагов в командный файл означает, что оно будет выполнено одним и тем же образом. Очень часто для выполнения одного задания вам требуется проделать несколько операций. Например для написания слов, которые вы сейчас читаете, я использовал командный файл, который состоял из четырех шагов. Первый запускал мою программу текстового редактора, так чтобы я мог напечатать эти слова. Второй запускал программу проверки правописания, чтобы проверить, что я написал; Третий опять запускал мой редактор, так чтобы я мог исправить ошибки, и, наконец, четвертый помещал на дискету запасную копию того, что я написал. Каждый раз, когда я что-нибудь пишу, я мог бы делать эти шаги раздельна, но решил поместить их все в один командный файл. Это сделало для меня две полезные вещи. Во-первых, мне не надо беспокоиться о том, чтобы запустить каждый отдельный шаг. Во- вторых, что самое Равное, это установило для меня стандартный порядок действий. Каждый раз, когда я пишу, я проверяю правописание и делаю запасную копию на дискете. Ни лень, ни нехватка времени не помешают мне выполнить ни одно из этих важных действий. Таким образом, повторяю, самое важное преимущество использования командных файлов — это возмбжность собрать 87
вместе под одним именем все отдельные шаги, необходимые для выполнения задания, и причина делать так — однообразие и полнота, удобство и простота. Использование командных файлов для защиты данных Существует еще одна причина использования командных файлов — безопасность. В ДОС нам доступны несколько безумно опасных команд, которые то мгновение ока могут стереть наши данные. Та¬ ких команд три: DEL/ERASE, которые удаляют данные, COPY, ко¬ торая может написать поверх хороших данных плохие, и FORMAT, которая может полностью стереть все содержимое диска безо всякой надежды на восстановление. Командные файлы могут уменьшить опасность неправильного использования этих команд, конечно не умышленного. Ведь у каждого из нас бывают плохие дни, когда наши мысли наполовину заняты чем-то другим. Вот вам пример. Допустим, что вы обыкновенно удаляете файл DATA.OLD, сохраняя в то же время файл DATA.NEW. Если каждый раз вы вводите команду DEL DATA.OLD то существует вероятность того, что однажды по рассеянности вы введете NEW вместо OLD. Это будет ужасно, не так ли? Но если бы у вас был командный файл с командой DEL, вам не пришлось бы беспокоиться о такого рОда ошибках. И действительно, вы можете создать командный файл, который, не доставляя вам беспокойства, может безопасно и надежно стирать любые файлы. Если вы правильно построите командный файл, то каждый раз команды будут правильными и без опечаток. Вы даже можете назвать командный файл смысловым и легко запоминаемым именем, например KILL-OLD.ВАТ (УБИТЬ-СТАРЫЕ) Специальный командный файл AUTOEXEC.BAT Оставшуюся часть главы мы посвятим командам ДОС, созданным специально для использования в командных файлах. Перед тем, как мы перейдем к ним, давайте приостановимся и познакомимся со специальным командным файлом по имени AUTOEXEC.BAT. Ковда ДОС начинает свою работу, она готова выполнить любые начальные команды, что может быть очень удобно: ведь команды можно использовать для того, чтобы подготовить для себя программное окружение. Механизм очень прост: когда ДОС загружается, она всегда проверяет, имеется ли на диске, с которого она загружается, командный файл по имени AUTOEXEC.BAT. Если 88
да, ДОС начинает выполнять команды из этого файла так, как если бы первой командой ДОС вы бы ввели команду AUTOEXEC. Когда вы устанавливаете ДОС (см. гл.5), программа SELECT создает файл AUTOEXEC.BAT и помещает его в главный каталог вашего загрузочного диска (обычно дисковода С). Вы можете использовать файл AUTOEXEC.BAT в том виде, какой есть* или отредактировать его по своему вкусу. Вы также можете в любой момент ввести команду AUTOEXEC. Особенность файла AUTOEXEC.BAT заключается в том, что если ДОС найдет этот файл, она обязательно выполнит все его команды. В случае, если при включении компьютера вам надо произвести некоторые начальные операции, это может быть очень полезно. Вы можете использовать AUTOEXEC.BAT для выполнения любых начальных команд, и при этом данный файл не обязан быть ни длинным, ни запутанным. Например, вы можете создать файл AUTOEXEC.BAT только для того, чтобы запустить наиболее часто используемую программу. Существуют и более экзотические применения команды AUTOEXEC, которые мы рассмотрим позднее. Первые две команды — REM и PAUSE Некоторые встроенные в ДОС команды существуют только для того, чтобы улучшить обработку командных файлов. К этим командам относятся команды REM и PAUSE. Команда REM предназначена для того, чтобы вводить в командный файл комментарии. Такие комментарии могут быть полезным напоминанием о том, что происходит. Они могут сообщить любому, кто прочтет их: ’’Вот что й делаю”. Когда вы включаете комментарий в командный файл, строка должна начинаться словом REM. Если комментарий длиннее, чем строка, каждая последующая строка также должна начинаться с REM. Вот простой пример: rem Показать текущий каталог жесткрго диска dir с: Когда бы ДОС ни встретила в командном файле команду REM, она пропускает слова комментария и переходит к следующей команде, которую может выполнить. (Существует и другой, более простой способ ввести комментарии, которые ДОС выведет на экран. Он называется командой ECHO, и мы доберемся до него в следующем разделе.) В нашем примере за командой REM следовала команда DIR. Команда DIR может показать нам так много файлов каталога, что REM-комментарий переместится за границу экрана. Это может создать сложности. Конечно, не в нашем примере. Но если бы комментарий содержал нечто важное, такое, что мы обязательно 89
должны увидеть, нам потребовался бы способ остановить вывод так, чтобы эти комментарии можно было бы прочитать. Это делается с помощью команды PAUSE. Примерно так: rem Показать текущий каталог жесткого диска pause Использование команды PAUSE Что же делает команда PAUSE? По сути, команда PAUSE — это просто другая форма команды REM. Вместо того, чтобы комментировать то, что происходит, она приостанавливает выполнение командного файла до тех пор, пока вы не нажмете на клавиатуре клавишу — любую клавишу. Вы видели вид команды PAUSE в переключателе /Р команды DIR, переключателе, который останавливает вывод списка каталога после заполнения экрана и ждет, пока для продолжения вывода вы не нажмете клавишу. Команда PAUSE хороша для двух целей. Как в этом примере и команде DIR, она помогает удержать на экране полезную инфор¬ мацию. С командой PAUSE в командном файле вы можете сколько угодно смотреть на то, что находится на экране, а компьютер будет ждать, пока вы не разрешите ему продолжить работу. Другое использование этой команды связано с вопросами безопасности. Если какая-то команда в командном файле может сделать нечто, потенциально угрожающее вашим данным, то для проверки того, что все идет правильно, очень хорошо использовать команду PAUSE. Это может быть особенно ценно перед командами, которые могут стереть ваши данные или написать что-то поверх них (команды ERASE и COPY). Но если вы используете команду PAUSE таким образом, что же делать, если вы не хотите продолжить работу командного файла, как прервать командный файл? Очень просто — нажмите на клавиатуре клавишу Control-Break или ее эквивалент, комбинацию клавиш Ctrl-C. Любой из этих способов, Control-Break или Ctrl-C, остановит работу командного файла. После этого командный файл не выполнит ни одной команды. Команда PAUSE дает вам возможность нажать эти клавиши в нужный момент. Вы определите, что ДОС ждет нажатия клавиши, по сообщению, выдаваемому командой PAUSE: Press any key to continue... (Для продолжения нажмите любую клавишу) Более ранние версии ДОС выдают похожее, но более неуклюжее сообщение: 90
Strike a key when ready... (При готовности ударьте по клавише) Вот искусственный пример того, как команду PAUSE можно использовать в целях безопасности: COPY DATA.NEW DATA.OLD (сделать аапасную копию старых данных) PROCESS DATA.NEW (запустить программу, создающую новые данные) DIR DATA.NEW (проверить в каталоге информацию о новых данных) PAUSE (если все в порядке, удалить старые данные, иначе нажать Ctrl-Break) DEL DATA.OLD (стереть старые данные) Как сделать командные файлы более привлекательными Прежде чем мы закончим обсуждение комментариев, я научу вас удобному и весьма элегантному способу включения в командный файл многострочных комментариев. Вместо того, чтобы начинать каждую строку командой REM, поместите весь комментарий в отдельный файл и выводите его на экран командой ТУРЕ. Вот пример ситуации, которую я имею в виду. Допустим, у вас есть примерно такой комментарий (маловероятно, что вы включите в файл такой слово обильный комментарий, но идея должна быть ясна): REM ЭТОТ КОМАНДНЫЙ ФАЙЛ КОПИРУЕТ ФАЙЛЫ С РАСШИРЕНИЕМ NEW REM И ДАЕТ ИМ РАСШИРЕНИЕ OLD REM КОГДА КОПИРОВАНИЕ ЗАКАНЧИВАЕТСЯ, ОН ПОКАЗЫВАЕТ REM КАТАЛОГ КОПИЙ Чем забивать ваш командный файл такими строчками, вы можете поместить все замечания в файл по имени NOTES.REM и сделать изменения в основном командном файле: ТУРЕ NOTES.REM PAUSE 91
Замечание: в ДОС имеется несколько символов, которые при появлении в командах и командных файлах имеют специальное значение. Эти символы — это знак больше, знак меньше и вертикальная полоска: < > I Их значение разъясняется в гл. 16. Если вы используете эти символы в комментарии, то, чтобы показать ДОС, что это не специальные символы, их надо заключить в кавычки. Например: REM Это знак меньше-чен "<” Использование команды TYPE Как мы видели в гл.8, команда TYPE просто копирует на экран дисплея содержание указанного файла. Это может быть очень удобным способом вывода на экран последовательности комментариев. Использование команды TYPE имеет два преимущества перед использованием набора команд REM. Во- первых, вместе с выводимыми комментариями команда REM выдает подсказку ДОС, а также выводит после каждой строки комментария пустую строку, что просто занимает место на экране. Во-вторых, команда TYPE обычно выводит комментарии быстрее. С другой стороны, в использовании команды TYPE есть и недостаток. С ней вам надо следить еще за одним файлом, в котором находятся комментарии. Команда CLS Допустим, вы создаете командный файл, который выдает список каталога. Пока ваш файл сделан правильно, ДОС будет показывать каталог вне зависимости от того, что в настоящее время находится на экране. При коротком каталоге и уже загроможденном экране вам придется смотреть на большое количество ненужной инфор¬ мации. Но есть способ быть уверенным в том, что перед выводом ка¬ талога экран будет аккуратным и чистым. Это использование коман¬ ды CLS. Вот, например, как вы можете использовать команду CLS в нашем предыдущем примере с командой PAUSE: COPY DATA.NEW DATA.OLD PROCESS DATA.NEW представляет нашу рабочую программу CLS подготовить экран DIR DATA.NEW вывести каталог PAUSE DEL DATA.OLD 92
Теперь для удобства прочтения каталог появится на пустом экране. Вот еще одно замечание относительно командных файлов и вашего экрана. Когда ДОС пробирается по командному файлу, она выводит команды так, как если бы вы вводили их с клавиатуры. Это и хорошо и плохо. Это хорошо потому, что точно показывает вам, что происходит. Это плохо потому, что заполняет экран посторонней информацией. В конце концов, одна из целей создания командных файлов — это превратить несколько команд в одну объединенную операцию. Когда вы исполняете программу, исходный текст программы на экране не появляется. Так почему же должен выводиться исходный текст командного файла? Команда ECHO Хорошо, что у нас есть эти два способа выдачи комментариев, и мы можем выбирать тот, который нам подходит более. Вскоре мы узнаем еще об одном способе, которым мы можем вывести комментарии на экран дисплея. Но сначала давайте посмотрим, как можно улучшить вид экрана при работе командного файла. Этот конфликт разрешается с помощью команды ECHO. Команда ECHO используется для того, чтобы сообщить ДОС надо или не надо выводить на экран каждую исполняемую команду командного файла. Команда ECHO сама контролирует вывод команд на экран: ECHO ON показывает каждую команду, которую выполняет ДОС ECHO OFF не показывает каждую команду По умолчанию в ДОС установлено ECHO ON, так что она показывает каждую команду, которую выполняет. Выключить эхо на экран можно следующим образом: ECHO OFF COPY DATA.NEW DATA.OLD PROCESS DATA.NEW CLS DIR DATA.NEW ECHO ON PAUSE DEL DATA.OLD Любая команда, выполненная между OFF и ON, не будет появляться на экране, т.е. не будет появляться сама команда. Если программа команды производит вывод на дисплей, как это делает команда DIR, этот вывод будет виден на экране. 93
Что команда ECHO OFF действительно "подавит”, так это вывод комментариев команд REM и PAUSE. Но мы можем захотеть, чтобы какие-то комментарии все-таки появились на экране. Чтобы это стало возможным, у команды ECHO кроме опций ON и OFF существует третья опция. Если за именем команды ECHO следует нечто, отличное от ON или OFF, то то, что следует за ECHO, появляется на экране как комментарий. Команда вводится следующим образом: .ECHO СООБЩЕНИЕ и работает с любым сообщением, не начинающимся с ON или OFF. В предыдущем примере это может помочь напомнить, что нажатие клавиши Break предотвратит стирание файла DATA.OLD. Это можно сделать так: ECHO OFF COPY DATA.NEW DATA.OLD PROCESS DATA.NEW CLS DIR DATA.OLD ECHO Press Control-Break to cansel deletion of DATA.OLD or PAUSE DEL DATA.OLD Слово ”ог” в конце сообщения команды ECHO предназначено для работы с сообщением ДОС в команде PAUSE. Все сообщение будет выглядеть так: Press Contгоl-Break to cansel deletion of DATA OLD or Press any key to continue . . (Нажмите Control-Break для предотвращения удаления DATA.OLD или) (Нажмите любую клавишу для продолжения ) Сообщения команды ECHO появляются и при включенном и при выключенном выводе команд, и в этом заключается действительное преимущество над командой^ЕМ. Когда мы используем команду REM, на экране появляется само слова ”REM”, что ничуть не облегчает понимание сообщения. В команде ’’ECHO с сообщением” появляется только сообщение, что чище и понятнее. Как скрыть команды командного файла При исполнении командного я строка командного файла, начинающаяся символом показана на экране. 94
Вот в чем заключается выгода: как я упоминал в предыдущем разделе, если вы не задали команду ECHO OFF, ДОС будет по мере исполнения команд командного файла показывать эти команды одну за одной. По этой причине многие помещают в начале каждого командного файла команду ECHO OFF. (Конечно, не делайте этого до тех пор, пока вы не отладили ваш командный файл, иначе вы не будете знать, что происходит.) Однако даже с командой ECHO OFF останется ядно утверждение, которое вы все еще будете видеть — саму команду ECHO OFF. Для того чтобы избежать этого, просто поставьте перед ECHO символ @. Вот пример: ©echo off rem Командный файл для проверки двух жестких дисков chkdsk с: chkdsk d: При выполнении этого командного файла вы увидите отчеты команд CHKDSK. Так как этот файл очень короток, другим способом опустить команду ECHO будет просто вставить перед каждой командой символ @: ©rem Командный файл для проверки двух жестких дисков ©chkdsk с: ©chkdsk d: Опять, все, что вы увидите, будут отчеты команд CHKDSK. Вот краткий совет. Допустим, у вас есть длинный командный файл, который ведет себя как-то странно, и вы хотите точно узнать, что же происходит. Если в начало файла вы поместите команду @ЕСНО OFF, то никаких команд* вы не увидите. Так что, пока вы не решите ваши проблемы с этим файлом, поместите эту команду в комментарий: rem ©echo off После того, как вы заставите этот файл работать правильно, просто удалите слово ”rem”. Когда я пишу новые командные файлы, я начинаю их вышеприведенной командой. Затем, когда я убедился в том, что командный файл работает так, как мне бы хотелось, я убираю слово ”rem”. Если что-то работает не так или мне надо изменить командный файл, я временно ставлю ”гет” обратно. 95
Слегка усложненная пакетная обработка Вы помните, что я упоминал о том, как я использовал командный файл для написания этой главы. Файл мог называться WRITE.BAT, и, слегка упрощая, его содержимое могло бы выглядеть так: edit chapter.10 spelt chapter.10 edit chapter.10 save chapter.10 Но в этом командном файле есть что-то неправильное: он работает только с гл. 10. Для работы с любой другой главой мне надо будет изменять его, что связано со значительной тратой времени. В чем же решение проблемы? В параметрах. Когда я запускаю командный файл, то вместо просто ввода команды WRITE я буду задавать параметр, показывающий, над какой главой я намерен работать: write 10 В то же время внутри командного файла WRITE.BAT везде, где требовался номер главы, будет стоять специальный символ ”%Г\ который укажет ДОС подставить вместо него введенный мною пара¬ метр. Так что мой командный файл будет выглядеть примерно так: edit chapter.%1 spell chapter.%1 edit chapter.%1 save chapter.%1 Параметров может быть больше одного, так что после знака процента (%) стоит цифра, показывающая, какой параметр здесь используется. Для первого параметра используется % 1 после имени команды, для второго — %2, и т.д. до девяти параметров. (Если вам требуется примерно такое большое число параметров, то вы, вероятно, что-то чрезмерно усложняете.) Параметр с номером ноль, %0, используется для получения имени самого командного файла. Другие свойства пакетной обработки Прежде чем мы перейдем к дополнительным свойствам пакетной обработки ДОС, нам надо узнать некоторые дополнительные сведения о командных файлах в целом. Внутри командных файлов находятся команды, которые могут быть именами программ или именами других командных файлов. Если командой является имя 96
программы, то, когда программа завершится, мы можем продолжить обработку командного файлй. Но если командой является имя командного файла, управление никогда не возвращается к исходному командному файлу. В технических терминах это означает, что командные файлы сцепляются, но не вкладываются друг в друга. Если командный файл А запускает командный файл Б, то когда командный файл Б заканчивается, все останавливается, и командный файл А не продолжается. (Однако есть возможность встраивать командные файлы с помощью команды CALL. Мы узнаем о ней в следующей главе.) Одна из команд, которая может присутствовать в командном файле — это его собственное имя. Командный файл может запустить сам себя, начиная бесконечное повторение выполнение той же самой работы. В этом случае хорошо поместить перед самым началом повторения команду PAUSE. Программа также может управлять своей собственной судьбой. Это делается написанием содержимого командного файла, который будет исполнен после завершения работы программы. Это очень умный механизм, который позволяет использовать все богатство логических возможностей языка программирования для определения того, какие команды будут выполнены впоследствии. Это делается так: мы создаем командный файл, скажем, по имени А, который запускает нашу программу. После окончания программы наш командный файл А указывает ДОС запустить командный файл Б. Но программа, которую запускает командный файл А, сама создает командный файл Б. Таким образом, программа решает, что надо делать после ее окончания. Программа из командного файла А создает в командном файле Б все необходимые инструкции, которые надо выполнить. Если вы займетесь такими хитростями, то внимательно прове¬ ряйте свою работу и опасайтесь определенных ловушек. Например, для программы гораздо безопасней создавать командный файл, который, будет выполнен следующим, чем пытаться изменить командный файл, который уже исполняется. Это дает нам основы командных файлов. Теперь мы готовы для исследования некоторых более усложненных особенностей, а также некоторые хитростей с командными файлами. Все это — в следующей главе. 4 Зак 1807 97
Глава 11 ЕЩЕ О КОМАНДНЫХ ФАЙЛАХ До сих пор вы видели примеры командных файлов, которые выполнялись по порядку, последовательно, шаг за шагом. Но в конце предыдущей главы я упомянул о том, что вы можете управлять ходом исполнения командного файла — заставить командный файл повторить исполнение набора команд и т.д. Теперь давайте приоткроем завесу над всем волшебством командных файлов — научим командные файлы принимать решения. Усложненные команды Одно из украшений, которые предлагает нам ДОС — это логические возможности в командных файлах. Это означает, что команды в этих файлах могут реагировать на развивающуюся ситуацию в уменьшенном объеме тех логических возможностей, которые мы используем в компьютерных программах. К этим логическим возможностям относятся четыре команды: SHIFT, GOTO, IF и FOR. Полное описание этих команд — действительно слишком усложненная тема для этой книги, но я дам вам представление о том, что они могут делать. Команда SHIFT Давайте начнем с команды SHIFT. Если у вас есть командный файл, использующий несколько параметров (команда %), то для облегчения их обработки команда SHIFT позволяет сдвигать их один за одним. После выполнения команды SHIFT все значения параметров перемещаются на одну позицию, так что параметр %1 имеет значение, которое имел параметр %2, параметр %2 — значение, которое имел параметр %3, и т.д. Преимущество команды SHIFT заключается в том, что командный файл можно очень легко использовать для работы с набором файлов. Сначала вы обрабатываете одно имя файла, которое берете из параметра %1. Затем сдвигаете командой SHIFT список файлов и обрабатываете следующий файл, и опять сдвигаете список, если надо обработать и третий файл. Настоящая польза команды SHIFT становится явной, когда вы используете ее вместе с командами GOTO и IF, которые мы рассмотрим чуть позже. Но для понимания того, что же делает команда SHIFT, давайте рассмотрим искусственный пример. Допустим, вы хотите создать командный файл, который будет копировать (командой СОРУ) список файлов. Пусть он должен 98
копировать три заданные ему файла с диска А на диск В. Если имя вашего командного файла 3COPY, а имена копируемых файлов X, Y и Z, то вы можете скопировать файлы, введя имя командного файла, за которым как параметры следуют имена трех файлов: 3C0PY X Y Z Вот как с использованием команды SHIFT может выглядеть ваш командный файл 3COPY: COPY А:%1 В: это копирует первый файл, X SHIFT это сдвигает Y в позицию %1 COPY А:9И В: это копирует файл Y SHIFT это сдвигает Z в позицию %1 COPY А:%1 В: это копирует файл Z Так как каждая команда сдвига сдвигает все параметры, вторая и третья команды COPY получают имена файлов Y и Z в первом параметре (%1). Очевидно, что этот пример несколько искусственен, так как во второй и третьей командах COPY вы могли просто использовать параметры %2 и %3. Но этот пример подводит нас к более сложным вещам, в которых команда SHIFT имеет больше смысла. Команда GOTO Наш командный файл 3COPY будет копировать ровцр три файла, не больше. А что если вы захотите копировать больше файлов, без ограничений? В этом случае вы можете задать цикл, который бесконечно будет выполнять команды SHIFT и COPY. Для этого вы используете команду GOTO, которая заставит командный файл выполняться по кругу. На этот раз давайте до объяснения досмотрим на пример: :ONWARD COPY А:%1 В: SHIFT GOTO ONWARD Первая строка, которую вы здесь видите :ONWARD, — это метка, необходимая для того, чтобы команда выполнялась циклически. Метка начинается с двоеточия, которое определяет ее, и может содержать любое символическое имя, которое вы захотите. Я выбрал ONWARD (ДАЛЕЕ), но вы можете использовать любое другое короткое слово, такое как AGAIN (ОПЯТЬ) или CYCLE (ЦИКЛ). Между прочим, как вы видите на примере, метка должна быть на отдельной строке. 4* 99
За меткой следуют знакомые нам команды COPY и SHIFT. Основную работу выполняет команда COPY, а команда SHIFT перемещает параметры % на одну позицию для подготовки работы следующей команды COPY. Далее идет новая команда, GOTO. Команда GOTO требует, чтобы ДОС нашла метку, обозначенную вслед за командой GOTO, и с этого места продолжила обработку командного файла. Так как в этой строке командного файла написано GOTO ONWARD, ДОС вернется к метке ONWARD и опять станет исполнять команды.COPY и SHIFT. У нас получилась петля, которая заставляет ДОС работать по кругу. При каждом прохождении по этому кругу будет скопирован очередной файл, а список параметров будет сдвинут на один шаг. Как сделано в примере, эта петля будет продолжаться бесконечно — остановить ее нечем. Естественно, в какой-то момент времени список подлежащих копированию файлов иссякнет, но командный файл будет бесконечно продолжать вызывать команду COPY, которая будет только сетовать на то, что вы не сообщаете ей, какие файлы надо копировать. Метки и комментарии Для использования меток существуют только три правила: 1. Все метки должны начинаться с двоеточия. 2. Метка может содержать до 8 символов. Если вы укажете более длинную метку, ДОС будет использовать только первые 8 символов. 3. Метка должна находиться на отдельной строке. Когда бы ДОС ни обнаружила строку, начинающуюся с двоеточия, она обрабатывает ее как метку и не пытается исполнить ее. Это означает, что в такие строки вы можете поместить описательные комментарии. Например, вы можете использовать такую строку: :выполни следующую программу в качестве комментария в середине командного файла. Технически, однако, эта строка все-таки является меткой, и если окажется, что у вас есть метка :выполни вы нечаянно можете попасть в неприятное положение. Так как ДОС смотрит только на первые 8 символов, она подумает, что у вас заданы две одинаковые метки, и выдаст сообщение об ошибке. Я предложил бы вам начинать каждый комментарий с символов например: :^выполни следующую программу 100
Если вы не станете начинать настоящие метки с :* (что малове¬ роятно) , проблем с комментариями у вас не будет. Кроме того, как использовать комментарии, вы должны знать, что ДОС игнорирует пустые строки и пробелы в начале строки. Собрав все эти знания вместе, вы можете составлять командные файлы, которые легко и читать и понимать. Это особенно важно в случае больших командных файлов. Вот наш предыдущий пример, переписанный как законченный, хорошо прокомментированный командный файл. Хотя вы выработа¬ ете свой собственный стиль, этот пример показывает, что можно сделать при умелом использовании пробелов и комментариев. :* 3C0PY.BAT командный файл для копирования 3 файлов с А: на В: ©echo off :* Параметры: :* %1 = первый файл, %2 = второй файл, %3 = третий файл :* скопировать первый файл сору а:%1 Ь: :* скопировать второй файл shi ft copy а:%1 b: :* скопировать третий файл shift сору а:%1 Ь: Команда IF Для того чтобы предотвратить бесконечное зацикливание командного файла, можно использовать команду IF. Команда IF проверит некоторое логическое условие, и если его значение истинно, выполнит одну команду. Одна из проверок, которую можно выполнить командой IF — это определить, существует ли некоторый файл. Так что команде GOTO ONWARD вашего командного файла может предшествовать следующее высказывание: if exist %1 goto onward Это утверждение IF проверит, существует ли файл с именем, указанным параметром %1. Если такой файл существует, 101
управление перейдет к метке ONWARD и копирование продолжится. Но если файлов для копирования больше нет, команда IF не передаст управление на метку, и командный файл закончит работу. Еще о командах GOTO и IF У команд GOTO и IF имеется гораздо больше возможностей, чем вы видели до сих пор. Например, наша команда GOTO переходила к метке, которая находилась в командном файле раньше ее, но эта же команда может так же легко переходить и к метке, находящейся после утверждения GOTO. Эти два случая существенно различаются: переход к более ранней позиции в файле задает петлю, в то время как переход вперед к более поздней позиции в файле пропустит находящиеся между этими точками команды. В зависимости от ваших потребностей команда GOTO будет работать в обоих направлениях. Кроме проверки существования файла команда IF может проверить' еще два условия: первая проверка — на завершение какой-либо программы с кодом ошибки. Проверяется это следующим образом: IF ERRORLEVEL 1 GOTO КУДА-ТО Другое проверяемое условие — это сравнение строк, которое можно использовать для проверки определенного значения параметра. Например: IF %1==К0НЕЦ GOTO КУДА-ТО Для всех трех видов условий команды IF существуют соответствующие условия IF NOT. У команды IF существует гораздо больше сложных деталей, чем мы можем рассмотреть здесь. Если взглянуть на все, что может делать команда IF, то это окажется весьма усложненным предметом. Когда вы почувствуете, что готовы ко всем применениям этой команды, обратитесь к руководству по ДОС вашего компьютера. Существует еще одна усложненная команда, позволяющая повто¬ рять команды вашего файла другим способом — утверждение FOR. Команда FOR Команда FOR позволяет вам создать список, например список имен файлов, а затем выполнить команду с каждым именем списка. Это задействует формальную переменную, которая должна быть представлена единственной буквой, помеченную двумя символами процента: %%. Затем этой переменной по очереди присваивается значение каждого элемента списка. Вот пример: 102
for %%n in (abode) do copy a:%%n b: В этом примере команда COPY будет повторена с каждым из имен в списке (А, В, С, D, Е), подставленным вместо формальной переменной %%п. В результате эта команда FOR будет переведена в пять отдельных команд COPY: СОРУ А:А В: COPY А:В В: COPY А:С В: COPY A:D В: COPY А:Е В: Если вы изобретательны, то, используя команду FOR, вы можете создавать очень умные командные файлы. Так как весь процесс весьма рискован, с помощью этой команды так же легко создать и неразбериху. Каждая из увиденных вами здесь усложненных команд пакетной обработки имеет свое применение, но очевидно, что эти команды не для новичков. Даже если рассмотреть все аспекты, возникает ряд вопросов относительно того, насколько действительно полезными они могут оказаться и для опытных пользователей. Многое зависит от того, насколько вам по вкусу попытки применения сложных уловок. Если это вас устраивает, я не буду отговаривать от этих попыток, просто будьте осторожны. Между прочим, команду FOR можно использовать как обыкновенную команду, которую вы вводите после подсказки ДОС. Единственное отличие заключается в том, что в этом случае вы используете единственный символ ”%”. Например, допустим, вы хотите копировать те же пять файлов, которые мы использовали в предыдущем примере. В командном файле вы используете В качестве единственной команды после подсказки ДОС вы вводите: for %n in (а b с d е) do сору а:%п Ь: Будьте осторожны — легко наделать ошибок, если вы вводите команду непосредственно. Будьте особенно осторожны, если с командой FOR вы используете команду DEL (удалить). Один известный консультант, ошибочно введя в команде FOR ’’del” вместо ”dir”, умудрился стереть многие десятки важных файлов электронных таблиц. (К счастью, ему удалось восстановить эти файлы программой Unerase из пакета Norton Utilities.) юз
Вложение командных файлов с помощью команды CALL Теперь пришло время узнать одну из наиболее интересных и по¬ лезных хитростей, которую вы можете проделать с командными файлами. Многие из нас весьма редко используют командные файлы. Если вы станете приверженцем их применения, то можете дойти до такого уровня, что обнаружите: практически все, что вы стали делать с компьютером, находится внутри командного файла. Так как командные файлы предназначены для соединения нескольких команд в одну, ры можете добиться того, что операции, которые вам надо соединить вместе, также будут командными файлами. В этом случае мы производим вложение, запуская один командный файл из середины другого командного файла. Рассмотрим пример, в котором мы хотим исполнить программу, затем исполнить командный файл, а затем исполнить другую прог¬ рамму. Допустим, программы называются PROGRAM 1 и PROGRAM2, а командный файл называется BFILE.BAT. Мы можем использовать следующий командный файл по имени TRIPLE.BAT: :* TRIPLE.BAT командный файл для исполнения PROGRAM1, затем BFILE.BAT. затем PR0GRAM2 programl bf i le program2 Проблема в том, что когда ДОС встречает ”bfile”, она ветвится на BFILE.BAT и никогда не возвращается к TRIPLE.BAT. Это называ¬ ется сцеплением и бывает полезно, но только если вы действительно хотите перейти к командному файлу без возврата назад. В нашем случае мы хотим вернуться, чтобы исполнить PROGRAM2. Для этого нам надо использовать команду CALL. Это говорит ДОС о том, что надо начать второй командный файл, а когда он закончится, вернуться к следующей строке исходного командного файла. Измененный командный файл выглядит так: * TRIPLE.BAT командный файл для исполнения PROGRAM1. затем * BFILE.BAT, затем PR0GRAM2 programl call bfile program2 104
На этот раз, после того как ДОС выполнит BFILE.BAT, она вернется и выполнит PROGRAM2. Предложения и примеры хитростей командных файлов В этом разделе я хочу показать вам некоторые примеры и хитрости использования командных файлов. Но только сначала я должен предупредить вас о том, что некоторые примеры несколько сложны, и вы, возможно, можете в них запутаться. Если это случится, не беспокойтесь. Просто отложите их на время в сторону, а сами используйте командные файлы просто и немудрено. Позже, когда вы почувствуете себя готовыми биться над некоторыми из наиболее запутанных хитростей, вы можете вернуться к этому разделу. Ранее я уже упоминал идею использования командных файлов для того, чтобы действие компьютера выглядело как дружественный черный ящик. Поэтому, чтобы командные файлы работали подобным образом, надо писать их в таком стиле, чтобы они работали как можно более гладко и ненавязчиво. Некоторые свойства ДОС позволяют сделать такую ненавязчивую работу возможной. Одно из них — это команда ECHO, позволяющая подавить вывод на экран от выполняемых команд. Другое — это перенаправление вывода, которое мы вскоре детально рассмотрим. Иногда, например, вам требуется включить команду в командный файл, но вы не хотите, чтобы пользователь компьютера видел сообщения, которые эта команда выводит на экран. Простейший пример этого — команда CHKDSK, способная исправить перепутанное размещение файлов, создаваемое некоторыми программами. Если вы хотите использовать команду CHKDSK, но также хотите спрятать ее отчет за экран, вывод может быть перенаправлен следующим образом: chkdsk > пи I: Обратите внимание на то, что вы направляете вывод команды CHKDSK на пустое устройство — устройство, которого не существует. В результате весь вывод подавляется. Это удобный способ избавиться от лишнего вывода на экран. С другой стороны, вы можете решить, что вам лучше не отбрасывать весь вывод. Если произошел сбой, вы захотите вернуться и взглянуть на результаты. В этом случае вы можете предпочесть сохранить эту информацию в каком-нибудь файле, например так: chkdsk > файл_результата_проверки 105
Использование в командных файлах команд REM и PAUSE Две наиболее полезные вещи, которые вы можете поместить в командный файл — это с использованием команд REM и PAUSE задать комментарии и паузы. Удивительно легко запутаться в том, что именно вы делаете в настоящий момент. Это звучит глупо, но это правда, особенно, если вы опять и опять делаете одно и то же. Если вы перемещаетесь по списку файлов, очень легко потерять местоположение в этом списке. Эта проблема может быть решена использованием команды REM, показывающей вам, с какими параметрами работает ваш командный файл. Пример? Все мои командные файлы, запускающие мой текстовый редактор, заканчиваются такой командой REM: REM Редактировал файл по имени %1 И конечно, параметр % 1 показывает мне имя файла. То же самое можно сделать и с командой PAUSE, но кроме этого, команда PAUSE имеет некоторые дополнительные преимущества. Если с помощью командного файла вы исполняете что-то длинное и автоматическое, команду PAUSE можно использовать для приоста¬ новки действия. Затем вы можете просмотреть имеющиеся на экране сообщения и решить, выполнять или нет остаток командного файла. Если вы не хотите продолжать, вспомните, что нажатие на клавиши Ctrl-Break прекратит исполнение командного файла. Приостановка для подтверждения продолжения является очень важной частью любого командного файла, делающего что-то потенциально опасное. Например, у вас может быть набор программ, умышленно оставляющих на диске свои рабочие файлы для восстановления данных в случае, если что-то испортится. В конце такого командного файла вы можете задать команду ERASE для стирания этих файлов, а затем прямо перед командой ERASE вы можете задать команду PAUSE, которая перед уничтожением файлов даст вам возможность проверить, все ли в порядке. По поводу команды ERASE. Если в своих командных файлах вы используете команду ERASEXDEL, то прямо перед ней хорошо поместить команду DIR. При этом вы увидите список всех файлов, которые будут стерты. Так как вы в курсе происходящего, это хороший способ повышения безопасности. Хорошо использовать команду ECHO, за которой следует команда PAUSE с подавленным выводом. Это позволяет заменить сообщение команды PAUSE своим собственным сообщением. Например: :* Показать все удаляемые файлы dir Vbak :* Предупредить пользователя 106
echo Убедитесь, что это действительно те файлы, которые echo вы хотите удалить. Если это так, то для продолжения echo нажмите любую клавишу. Если нет, нажмите Ctrl-Break pause > nuI :* Удалить файлы deI *.bak Использование команд CHKDSK и DIR В ДОС имеется несколько команд, которые полезно использовать, но их ввод несколько утомляет. При помощи командных файлов вы с удобством можете использовать их, так как командные файлы делают за вас всю работу. Одна из наиболее важных — это команда проверки диска CHKDSK. Команду CHKDSK полезно помещать в командный файл по двум причинам. Во-первых, она показывает вам, сколько свободного пространства осталось у вас на диске. На это полезно глядеть почаще, так, чтобы как можно раньше получить предупреждение о том, что места остается мало. Команда CHKDSK также проверяет диск на некоторые логические повреждения (имеются в виду потерянные данные, а не физические повреждения) дискеты. Это хорошо делать чаще, даже несмотря на то, что потери случаются нечасто. Также полезно добавлять во многие ваши командные файлы команду DIR. Если вы укажете специальный режим (показывающий, о каких файлах вы хотите узнать), то увидите размер или дату и время последнего изменения ваших файлов. Вот несколько примеров: dir %1 dir *.bas Переключатели /W и /Р Для того чтобы посмотреть, что находится на используемом вами диске, можно применять показывающую-все-что-есть форму команды DIR. Если обычно файлов у вас много, то переключатель /W, задающий режим команды DIR, выведет их так, что они займут на экране меньше места. Если во время вывода вам надо приостановиться, то вместо этого переключателя используйте переключатель /Р. Например: DIR DIR *.* DIR *.* /W DIR /Р 107
Трубы С помощью труб вы можете отсортировать список файлов каталога, так что имена файлов будут появляться в алфавитном порядке. Читать их в таком виде гораздо проще. При длинном списке вы также можете останавливать вывод при каждом заполнении экрана. Это делается с помощью трубопровода, соединяющего команды DIR, SORT и MORE: DIR | SORT | MORE Детально я рассмотрю трубы в гл. 16. Подход А-В-С Кроме всего того набора удобств, которые вы имеете внутри командного файла, существуют некоторые полезные вещи, которые вы можете сделать вне его — это то, как вы называете и организуете командные файлы. Одна из самых удобных вещей такого рода это то, что я называю подходом А-В-С. Многое из того, что вы делаете с вашим компьютером, логически разбито на ряд шагов. Например, если вы пишете программы, то первым вашим шагом будет использование текстового редактора для написания исходного текста программы, а вторым и третьим — компиляция программы, а затем и проверка ее. Для управления каждым из этих шагов вы создаете командный файл. Вы можете дать каждому из этих шагов смысловые названия, например EDIT (РЕДАКТИРО¬ ВАТЬ), COMPILE (КОМПИЛИРОВАТЬ) и TEST (ТЕСТИРОВАТЬ). Очень хорошо дать этим командным файлам простые смысловые имена. С другой стороны, для удобства мы так же легко можем назвать эти шаги А, В и С или 1, 2 и 3. Подход А-В-С имеет два преимущества: имена команд короче и вводить их быстрее. Их легче комбинировать и легче запоминать имена комбинаций. В шагах, ко¬ торые вам надо сделать, существует логическая последовательность, поэтому ваши командные файлы могут просто отражать номер шага 1, 2 и 3 или в буквенном обозначении А, В и С. Таким образом, если шаг редактирования называется А, а шаг компиляции назы¬ вается В, то командный файл, который производит и редактирование и компиляцию, будет называться АВ. Это легко и запомнить и ввести. Но в этом подходе есть один очевидный недостаток. Вам придется запомнить, что А означает редактирование (или что-то другое) и т.д.. Это может смутить не только ваших коллег, но и вас самих. Но если у вас не возникнет сложностей с запоминанием смысла шагов, то^юдход А-В-С может быть весьма полезен. 108
Чтобы показать, как далеко вы можете зайти с таким подходом и как полезно это может оказаться, давайте посмотрим на то, что я делал, когда писал программы на языке Си. При создании программ на языке Си приходится выполнять четыре отдельных шага: редактирование, компилирование, компоновку, а затем проверку готовой программы. Для каждого шага я сделал отдельные командные файлы (которые я назвал 1 - 4, так как это меня устраивало), а затем сделал множество командных файлов для комбинаций этих шагов. В зависимости от типа программы, которую я писал, имело смысл использовать различные комбинации этих четырех шагов. Иногда я выполнял шаги по отдельности, а иногда соединял шаги один и два. Другие комбинации были удобны в других случаях. Из-за того, что у меня былй командные файлы для каждого шага и так много файлов для комбинаций шагов (что очень полезно), при написании этих программ я полностью контролировал ситуацию, и все делалось быстро и удобно. Эту же идею можно применить к любому состоящему из нескольких шагов процессу, который вам надо выполнить. Чем сложнее шаги, тем больше преимуществ в создании для управления ими такого типа командных файлов. Есть еще одна полезная операция, которую вы можете сделать, пользуясь этим подходом. Это — создание параллельных командных файлов для задач, которые похожи в общем, н6 отличаются в деталях. Опять обратимся к примеру программирования. Мне приходилось писать программы на четырех языках — Си, Паскаль, Ассемблер и Бейсик. Для каждого из них у меня был тот же набор имен командных файлов. Таким образом, редактирование програм¬ мы у меня всегда делалось командой Один, а компилирование или ассемблирование всегда начиналось командой Два. Что действи¬ тельно делает команда Один, в каждом случае было различно, но для меня это всегда означало одно и то же — это означало использование текстового редактора для написания программы. Версии командных файлов Другой удобный прием с командными файлами — это всегда иметь под рукой различные версии командного файла. Почему это может вам понадобиться? Позвольте мне опять привести пример из области программирования. Иногда я пишу программы на жестком диске, иногда мне удобнее перенести все на виртуальный жесткий диск. Поэтому я храню две версии командных файлов для программирования. Для работы в таких условиях существует два способа, и я считаю один из них действительно отличным приемом. Первый способ — это иметь две версии под несколько различающимися именами. Например, версия командного файла шага 1 для работы с жестким диском может называться 1Н.ВАТ, а 109
версия для виртуального диска — IV.ВАТ. Хотя это позволяет сразу же начать работу, мне приходится помнить, какую версию я использую. Это заставляет меня все время вводить правильную форму имени команды, что неудобно и ведет к ошибкам. Второй способ использует для решения этой проблемы хитрую схему. Хитрость заключается в том, чтобы хранить обе версии командного файла под именем имени файла, но с измененными расширениями. Версия первой команды для жесткого диска находится в файле 1.HAR. Как вы знаете, командные файлы имеют расширение ВАТ, так что сам по себе использовать файл HAR нельзя. Но его очень легко преобразовать в файл необходимого вида. Простой командой COPY можно задействовать сразу все файлы типа HAR: сору *.har *.bat Версии для работы с виртуальным диском имеют расширение VIR. Они активизируются следующей командой: сору *.vi г *.bat Таким образом, каждый набор командных файлов хранится со своим собственным расширением. Конкретная версия активизируется командой COPY, создающей рабочую версию и переписывающей ту версию, которая была рабочей до этого. Мне не приходится использовать различные имена команд — имена остаются теми же, но работают при этом разные версии. Естественно, мне не приходится каждый раз вводить команду COPY — за меня это делает другой набор командных файлов. Так как действительное волшебство командных файлов является следствием подгонки этих файлов для ваших собственных потребностей, мои примеры и предложения могут только затронуть верхушку этого айсберга возможностей и только намекнуть на некоторые вещи, которые, творчески применяя командные файлы, вы можете сделать сами. 110
Глава 12 ЗАГРУЗКА С AUTOEXEC Как вы уже видели, командные файлы — это один из наиболее полезных и мощных инструментов, которыми вооружает вас ДОС. В этой главе вы узнаете, как посредством AUTOEXEC.BAT, автоматически загружаемого командного файла ДОС, вы можете расширить использование командных файлов. Для чего нужен файл AUTOEXEC.BAT и где его использовать Когда бы ДОС ни начинала работу, интерпретатор команд COMMAND.COM проверяет, имеются ли для него какие-нибудь начальные команды. Он делает эту проверку путем поиска специ¬ ального командного файла AUTOEXEC.BAT. Если ДОС не находит файла с таким именем, она автоматически выполняет две начальные команды DATE и TIME. Если ДОС обнаруживает файл AUTOEXEC.BAT, она исполняет команды, находящиеся в этом ко¬ мандном файле, считая их частью процедуры загрузки. (В этом слу¬ чае ДОС не производит автоматического вызова команд DATE и TIME, так что если вы хотите установить дату и время, вам надо задать эти команды в файле AUTOEXEC.BAT.) Для того чтобы ваш файл AUTOEXEC.BAT работал, надо следо¬ вать двум простым правилам. Во-первых, так же как и любой другой командный файл, AUTOEXEC.BAT должен быть простым текстовым ASCII файлом, который вы можете создать любым редактором, включая и поступающий вместе с ДОС редактор EDLIN, или вашим текстовым процессором в режиме не-документа. Во-вторых, файл AUTOEXEC.BAT должен находиться там, где ДОС будет искать его, т.е. в корневом каталоге системного диска с ДОС, с которого вы запускаете ваш компьютер. Вот в основном, и все, что вам надо знать для того, чтобы ваш файл AUTOEXEC.BAT начал работать. На самом деле никакого специального волшебства в файле AUTOEXEC.BAT нет. Он работает точно так же, как и любой другой командный файл, и может быть таким сложным или простым, каким вы захотите. Единственным специальным свойством AUTOEXEC.BAT является то, что ДОС автоматически выполняет содержащиеся , в нем команды. Это может оказаться хорошей поддержкой для того, чтобы заставить ваш компьютер работать так, как вам надо. Как нам воспользоваться этой поддержкой, мы рассмотрим ниже. ш
Использование AUTOEXEC-ВАТ Сейчас мы рассмотрим предложения относительно того, что вы можете захотеть поместить в ваш файл AUTOEXEC.BAT. Но перед этим давайте рассмотрим вариант, о котором вы сами можете ни за что не догадаться: не содержащий совершенно ничего файл AUTOEXEC.BAT. Как я уже упоминал, если файла AUTOEXEC.BAT нет, то перед тем, как разрешить вам вводить команды, ДОС автоматически выполняет команды DATE и TIME. Эта привычка восходит к тем временам, когда в ПК не было встроенных постоянно идущих часов. Но сейчас многие ПК, но не все, имеют такие часы. Класс АТ персональных компьютеров поступает с такими часами. Кроме гого, многие другие ПК оснащены многофункциональными платами, содержащими такие часы. Очень хорошо, если ДОС знает правильную дату и точное время (помимо всего прочего, в этом случае она может пометить ваши файлы точными временными метками). Но если у вас есть такие часы, то вам больше нет необходимости беспокоиться об установке даты и времени. Часы делают это сами. И тем не менее, если у вас нет файла AUTOEXEC.BAT, ДОС будет продолжать запрашивать у вас дату и время. Для того чтобы обойти это небольшое, но непреодолимое другим путем неудобство, вьк можете создать не содержащий никаких команд файл AUTOEXEC.BAT. Того, что у вас имеется пустой AUTOEXEC.BAT, будет достаточно, чтобы сообщить ДОС о том, чтобы она не затрудняла себя исполнением стандартных начальных команд DATE и TIME. Как же создать пустой файл AUTOEXEC.BAT? Из корневого каталога вашей загрузочной или ДОС дискеты попробуйте выполнить следующую последовательность команд: EDLIN AUTOEXEC.BAT Е И это все, и вот какую пользу вы можете получить от пустого, не содержащего никаких команд, файла AUTOEXEC.BAT. Начальные команды в AUTOEXEC.BAT Как бы ни был удобен пустой файл AUTOEXEC.BAT, имеется множество полезных начальных команд, которые могла бы исполнить ДОС. Давайте посмотрим, что это за команды, которые мы можем поместить в наш файл AUTOEXEC.BAT. Мы рассмотрим их в том порядке, в котором появление их в AUTOEXEC.BAT было бы самым логичным. 112
В пфвую группу команд входят те, которые помогают ДОС (и другим программам) выполнять их работу. Первая из них — это команда PATH, с которой мы познакомились в гл.11. Вы помните, что крманда PATH указывает ДОС, где надо искать программы, которые будут исполнены в ответ на ваши команды. Так как вы будете задавать ДОС не одну команду (как в последующей части вашего файла AUTOEXEC.BAT, так и позже, когда вы будете вводить их с клавиатуры), вам действительно надо начать с того, что указать ДОС, где находятся программы ваших команд. Я всегда начинаю свой файл AUTOEXEC.BAT командой PATH. PATH С:PROGS\DOS;С:PR0GS\123;С:PROGS\MISC С командой PATH связаны две другие команды, которые вы также можете поместить в начало вашего файла AUTOEXEC.BAT. Одну из них -г- команду PROMPT, которую мы видели в гл.11, я считаю просто бесценной. Вы помните, что команда PROMPT позволяет вам задать подсказку ДОС, которая появляется тогда, когда ДОС готова принять от вас новую команду. Стандартная подсказка ДОС выгладит так: А> Но если вы работаете с подкаталогами жесткого диска, было бы более полезно, если бы в подсказке ДОС сообщала бы не только имя дисковода, но также и установленный в настоящее время маршрут. Если вы видите такую подсказку С:\DATA\123> то вы тут же знаете, где бы находитесь. Это может иметь огромную пользу, в особенности если вы работаете со многими подкаталогами и без такой подсказки очень скоро можете запутаться. Я рекомендую вам включить в ваш файл AUTOEXEC.BAT команду PROMPT $P$G которая прикажет ДОС выводить более информативную подсказку. (Кстати говоря, часть команды $Р указывает ДОС вывести вместе с именем дисковода и маршрут, а часть команды $G указывает ДОС вывести символ больше >, который нам так знаком.) Если вы действительно собираетесь включить команду PROMPT в файл AUTOEXEC.BAT, нет особой необходимости помещать ее в самом начале файла. Но если вы поместите ее вслед за командой PATH, это будет вполне разумно. из
В действительности команды PATH и PROMPT представляют со¬ бой специальные версии команды общего назначения SET, которая рассматривается в гл.14. Так же как ДОС использует команды PATH и PROMPT для того, чтобы знать, как ей следует выполнять некоторые операции, другие программы могут использовать для выполнения своей работы информацию, созданную командой SET. Какого вида эта информация — полностью зависит от потребности той программы, которая будет ее использовать. Обычно информация требуется для одной из двух целей: чтобы указать программе, где найти дисковые файлы, с которыми ей необходимо работать, и указать программе некоторые детали относительно компьютера, в котором она исполняется, такие как вид используемого дисплея. Если какие-либо из используемых вами программ для выполнения своей работы вызывают команду SET, вы можете сделать необходимые установки параметров SET автоматически в вашем файле AUTOEXEC.BAT. Я рекомендую вам поместить в файле ко¬ манду SET сразу же после команд PATH и PROMPT. SET FF=C:\DATA\COMMON Другими кандидатами на включение в ваш файл AUTOEXEC.BAT являются любые команды, помогающее вам задать режим работы вашего компьютера. Примером может служить команда MODE, которая используется для задания режима работы вашего принтера, а также задания работы экрана дисплея в цвете или в монохромном режиме. Я рекомендовал бы вам поместить в командном файле любые команды такого вида вслед за командой SET. MODE С080 Если вы лспользуете виртуальный диск, то каждый раз при начале работы компьютера вам может потребоваться загрузить его файлами. Если это те файлы, которые вы регулярно помещаете на данный диск, то перед вами еще один естественный кандидат для вашего файла AUTOEXEC.BAT. Это место в вашем командном файле хорошо подходит для такой команды: COPY PROGS\MISC\*.* Е Далее идут резидентные в ОЗУ программы, рассматриваемые в гл. 15: как те, что поступают вместе с ДОС, такие как PRINT, так и те, что вы покупаете отдельно. Ваш файл AUTOEXEC.BAT — это естественное и разумное место для активизации всех резидентных программ, которые вам всегда нужны в компьютере. Итак, следующая запись, которую я рекомендую сделать в вашем файле AUTOEXEC.BAT — это загрузка используемых резидентных программ. 114
Другое очевидное преимущество использования для их активизации командного файла заключается в том, что иногда эти программы должны быть загружены в определенном порядке. Конечно, после того, как вы выработали этот порядок, командный файл каждый раз будет выполнять все правильно. Если случится так, что какая-либо ваша резидентная программа будет активно использовать файлы с подсказками или данными на диске, вы можете захотеть хранить эти файлы на виртуальном диске. Поэтому я рекомендовал вам загружать виртуальный диск перед активи¬ зацией резидентных программ. На следующем шаге я мог бы предложить вам включить в ваш файл AUTOEXEC.BAT окончательную, или почти окончательную, подготовку того, чтобы ДОС передала управление вам. Это означает установку командой CD (или CHDIR) вашего текущего рабочего каталога. Если вы хотите сделать так, чтобы ваш компьютер работал в каком-то определенном каталоге, скажем, каталоге документов вашего текстового процессора, а не в корневом каталоге диска, то делать это надо именно сейчас, перед самым концом вашего файла AUTOEXEC.BAT. Самый последний шаг вашего файла AUTOEXEC.BAT нужен не всегда, но вы можете захотеть перед самым концом этого файла активизировать какую-нибудь программу, которой может быть обыкновенная прикладная программа, такая как 1-2-3, используемая постоянно. Если вы обычно после включения вашего компьютера сразу переходите к этой программе, то вы вполне можете запустить эту программу последним шагом вашего файла AUTOEXEC.BAT 123 Если же вы используете программу, помогающую вам взаимодействовать с ДОС и называемую оболочкой, то последним шагом вашего файла AUTOEXEC.BAT должен быть запуск этой оболочки. К таким оболочкам относятся программы Microsoft Windows, TopView фирмы IBM, Х-Tree и моя собственная программа Norton Commander. В любом случае, хотите ли вы запустить прикладную программу или оболочку (такую как Windows), самое подходящее место для этой команды — конец вашего файла AUTOEXEC.BAT. Причина того, что эта команда должна быть последней в том, что какую бы программу вы ни хотели запустить, это та программа, которую вы будете использовать после окончания AUTOEXEC.BAT. Вот краткий обзор команд, из которых вы можете составить ваш файл AUTOEXEC.BAT. Конкретный набор команд и порядок их расположения будет зависеть от ваших потребностей, ваших привычек и, конечно, вашего мастерства. Я надеюсь, что мои советы помогут вам в работе. 115
Кстати, вы можете включить в свой файл AUTOEXEC.BAT и команды DATE и TIME. Однако это необходимо только в том случае, если у вас очень старый компьютер, в котором нет часов на батарейке, и он не может следить за датой и временем, когда вы выключаете питание. Конструирование вашего файла AUTOEXEC.BAT Когда вы устанавливаете ДОС, программа установки SELECT создаст для вас и файл AUTOEXEC.BAT. Если у вас такой файл уже имеется, то SELECT создаст другой файл и назовет его AUTOEXEC.400 (названый по имени DOS 4.00). Вы можете просмотреть файл AUTOEXEC.400 и включить команды из него в ваш уже существующий файл AUTOEXEC.BAT. В предыдущих главах мы обсуждали команды, которые могут понадобиться вам в вашем файле AUTOEXEC.BAT. Давайте разобьем их на группы, а затем взглянем на образец файла AUTOEXEC.BAT, который создает ДОС. А закончим мы тем, что по¬ кажем, как, взяв сгенерированный ДОС файл AUTOEXEC.BAT, мы превратим его в понятный персонифицированный командный файл. Вообще говоря, вот те функции, которые ДОС могла бы выполнять автоматически каждый раз, когда мы начинаем работу: задать строки окружения; задать предпочтения; задать ДОС маршрут Поиска; задать подсказку ДОС; инициализировать резидентные в памяти программы; показать используемую версию ДОС; автоматически запустить программу. Конечно, вы приспособите ваш файл AUTOEXEC.BAT так, чтобы он устраивал вас. Например, последний шаг полезен только в том случае, если каждый раз, когда вы загружаете ДОС, вы начинаете работу с одной и той же программой. Однако, как мы увидим из этой главы, это происходит не так редко, как вы можете подумать. Типичный файл AUTOEXEC.BAT, сгенерированный ДОС Ниже приведен листинг типичного файла AUTOEXEC.BAT, который был автоматически создан программой установки SELECT. Чтобы вам было легче следить за рассуждениями, я снабдил строки примера номерами. (Конечно же, эти номера в настоящем файле отсутствуют.) 1. ©echo off 2. set comspec=c:\dos\command.com 3. verify off 4. path c:\dos 5. append /e 6. append c:\dos 7. prompt $p$g 8. c:\dos\graphics 116
9. ver 10. dosshell Строка 1 отключает вывод исполняемых команд командного файла на экран. Строка 2 задает переменную окружения по имени COMSPEC. Это специальная переменная, которую ДОС и другие программы используют для поиска командного процессора COMMAND.COM. Иногда программа, которой требуется много памяти, может высвободить некоторое пространство удалением части COMMAND.COM. Конечно, впоследствии программа должна восстановить COMMAND.COM, иначе потом ДОС будет работать неправильно. В таких случаях для того, чтобы определить, где хранится COMMAND.COM, программа будет искать среди переменных окружения переменную COMSPEC (Command Specification — спецификацию командного процессора.) Эта переменная не является обязательной, но если ее у вас нет, COMMAND.COM должен находиться в корневом каталоге вашего загрузочного диска. Если программа станет искать COMMAND.COM и не найдет его, вы увидите следующее сообщение: Invalid COMMAND.COM Cannot load COMMAND, system halted (неправильный COMMAND.COM ) (не могу загрузить COMMAND, система остановлена) Если это случится, вам придется нажать <Ctrl-Alt-Del> и перезагрузить систему. Сразу же сделайте изменения, иначе ситуация повторится. Строка 3 отключает опцию проверки. Однако эта строка не является обязательной, так как по умолчанию проверка автоматически выключена. Строка 4 задает ДОС маршрут поиска. Сейчас в маршруте указан только каталог DOS. Позднее мы дополним маршрут нашими собственными каталогами. Строки 5 и 6 задают маршрут поиска команды APPEND. Первая команда APPEND использует переключатель /е. Это говорит ДОС о том, что все последующие маршруты команды APPEND должны быть помещены в окружение ДОС. Однако, если у вас нет специальных причин, это не обязательно. В действительности вторая команда APPEND также не обязательна. Строка 7 задает подсказку ДОС. Заданная здесь подсказка представляет собой хорошее и простое решение: она показывает дисковод по умолчанию и текущий каталог, за которым следует символ >. Строка 8 запускает резидентную в памяти программу GRAPHICS. Это позволяет вашему принтеру работать с графическими образами. Обратите внимание на то, что в этой строке перед именем файла указан маршрут (C:\DOS). По правде говоря, это не обязательно, так как тот же самый каталог указан в маршруте поиска ДОС, а команда PATH уже исполнена. Однако указание в файле AUTOEXEC.BAT полных маршрутов является хорошей привычкой. Строка 9 задает команду VER, которая показывает номер версии ДОС. Опять это не обязательно, но некоторым нравится видеть номер версии. Последняя строка запускает программу, которая называется DOS Shell. "Shell” (оболочка) — это неофициальное название программ, которые замещают командный процессор. COMMAND.COM все еще находите^ в памяти, но оболбчка как бы сидит 117
на нем и показывает пользователю совсем другое лицо. Почти всегда использовать оболочки проще, чем обычный интерфейс ДОС. Начиная с версии 4.00, программа DOS Shell поставляется как часть ДОС. Во время установки ДОС вы можете сообщить программе SELECT, что планируете использование DOS Shell. Если это так, то для автоматического вызова DOS Shell при каждой загрузке ДОС программа SELECT поместит в конце вашего файла AUTOEXEC.BAT команду DOSSHELL. Тогда DOS Shell станет вашим основным средством взаимодействия с ДОС. Оболочка DOS Shell, так же как и другие оболочки, обсуждается позже, в гл.26. Настройка вашего файла AUTOEXEC.BAT Превращение созданного ДОС файла AUTOEXEC.BAT в понятный образец программирования командных файлов выполняется весьма просто. Все, что нам требуется, — это опустить ненужные команды и применить руководства, с которыми мы ознакомились в гл. 10 и 11. Обратите внимание, для того чтобы отразить маршрут поиска, который мы использовали ранее, я также расширил команду PATH. :* AUTOEXEC.BAT ©echo off :* задать строки окружения set comspec=c:\dos\command.com :* задать маршрут поиска path=c.\dos;с:\norton,с \ut iIi ty :* задать подсказку ДОС prompt $p$g .* инициализировать резидентные в памяти программы с:\dos\g raph i cs :* показать версию ДОС ver :* запустить оболочку ДОС tiossheI I Конечно, вы захотите приспособить свой файл AUTOEXEC.BAT для удовлетворения своих потребностей. Вы можете использовать показанный выше пример командного файла и добавить к нему нужные вам команды. Что бы вы ни делали, запомните, что ваш файл AUTOEXEC.BAT — это ваш самый важный командный файл. Пусть это отнимет у вас несколько лишних минут, но сделайте так, чтобы читать и воспринимать этот файл было как можно проще. 118
Глава 13 ДИСКИ Теперь, после того, как мы имеем в своем распоряжении набор из наиболее полез¬ ных команд ДОС, пришло время заглянуть внутрь работы наших дисков. Понимание того, как работают диски, — это ключ к пониманию сути наиболее мощных дисковых команд ДОС, с которыми мы познакомимся в этой части книги. Эта глава в основном посвящена тому, как работают диски, но в ней вы узнаете об одной специальной команде по имени RECOVER, которая работает с испорченными дисками. Что находится на диске Давайте начнем с того, что кратко подытожим все, что мы узнали о дисках. Дисковая память используется для хранения нужных вам данных. Так же как и стеллаж с папками, диск представляет собой безопасное место для хранения информации. Он имеет большую, но ограниченную емкость. И точно так же, как содержимое стеллажа организовано в обложки папок, данные на диске организованы в файлы. Файлы на дискете различимы, и каждый содержит свои собственные данные. Файлы различаются по их именам. На каждом диске каждое имя файла должно быть уникально, но на различных дисках могут находиться файлы с одинаковыми именами. Так как файлы .различаются по имени файла, хорошо убедиться в том, что на всех дисках все файлы имеют совершенно уникальные имена, кроме случаев, когда имеются веские основания для повторного использования имени файла. Например, если файл на диске существует только как резервная копия файла на другом диске, то это серьезная причина дублирования имени файла. И даже в этом случае, для того чтобы отличать оригинал от копии, хорошо дать файлам различные имена. Основное пространство диска отведено для хранения данных, но ДОС использует некоторую часть пространства для своих служебных целей, таких как поддержание каталога файлов на диске. В каталоге ДОС запоминает все, что ей надо знать о дисковых файлах, включая заметки самой себе относительно того, как найти содержимое файлов. Большинство из этой информации бесполезно для нас, но ДОС позволяет нам знать о файлах три вещи. Первая — имя файла, включая и расширение. Вторая — размер файла. Третья — временная метка, показывающая дату и время последнего изменения файла. Если файл не изменялся, временная метка показывает, когда файл был создан. 119
Временные метки Что необходимо знать о временных метках? Во-первых, если мы копируем файл, то копия получает ту же метку, что и оригинал. Во- вторых, невозможно определить, соответствует временная метка созданию или последнему изменению файла. В-третьих, хотя временные метки показываются с точностью до минуты, в действительности они вычисляются с точностью до двух секунд относительно точного времени. При необходимости, полная временная метка может быть получена с помощью углубленных методов программирования. Эти временные метки на файлах могут быть очень полезны при контроле безопасности ваших данных. Глядя на метку, вы можете ответить на вопросы: Над какими из этих файлов я работал вчера? Соответствует ли резервная копия моему основному файлу? Поэтому очень важно быть уверенным в том, что ваша система всегда знает правильные дату и время. Большинство персональных компьютеров автоматически следит за датой и временем. Однако, если у вас более старый компьютер, которому при включении надо каждый раз давать эти сведения, я призываю вас никогда не лениться и каждый раз вводить правильные дату и время. Выгоды от того, что ваши файлы будут иметь правильные метки, могут быть огромны. Иногда они могут быть такими же ценными, как страховой полис. Другие части дисковой памяти На диске расположены три части недоступного для хранения пространства, включая каталог. Так как вы можете случайно встретить упоминание о них, вам стоит узнать, что они представляют собой. Первая из них называется загрузочной записью и содержит очень короткую программу, которая нужна для запуска с диска опе¬ рационной системы DOS. На каждом диске есть загрузочная запись вне зависимости от того, содержит ли он остальные части ДОС. После загрузочной записи на диске размещена таблица, которую ДОС использует для контроля з^ доступным пространством на диске. Эта таблица называется Таблицей размещения файлов, или сокра¬ щенно FAT (от File Allocation Table). В FAT записано, где располо¬ жен каждый файл, так что она представляет собой нечто вроде ука¬ зателя диска. В ней также записаны все неиспользуемые части дис¬ ка. Когда команда CHKDSK сообщает нам о том, какое пространство доступно на диске, информация берется из FAT этого диска. Третья и последняя часть недоступного для хранения данных пространства на диске — это каталог, который содержит список всех 120
файлов на диске. Мы уже обсуждали каталог и знаем, что его содержимое имеет для нас большое значение. Все вместе эти три части диска: загрузочная запись, FAT и каталог — занимают на диске очень мало места. Остальная часть пространства используется для хранения данных. Все об именах файлов У файлов есть имена, и чем лучше вы понимаете их, тем меньше вероятность того, что вы запутаетесь в них. Во-первых, простая механика. Имя файла состоит из двух частей: самого имени файла и расширения имени файла. Имя файла может иметь длину до восьми символов. Вот несколько примеров: А FILENAME 1234 АВ_34 Расширение имени файла именно это собой и представляет — расширение к имени файла. Расширение может иметь длину до трех символов. В то время как имя файла должно состоять по крайней мере из одного символа, расширение может не содержать ни одного символа. Когда имя файла имеет расширение, две эти части соединяются точкой. Вот несколько образцов имен файлов с расширениями: JANUARY.85 (ЯНВАРЬ.85) PROGRAM.BAS CHAPTER.2-3 (ГЛАВА.2-3) 1985-12.25 Существуют несколько правил относительно того, что является правильным именем файла. Имя файла и расширение могут состоять из любых комбинаций разрешенных символов, к которым относятся: буквы алфавита от А до Z; цифры от 0 до 9; знаки препинания: $&#!%’_()- Можно использовать любой из этих символов в любой комбинаций, но нельзя использовать пробелы. Использование экзотических символов может показаться непривычным, но некоторые из них отлично выступают в роли знаков препинания в имени файла. Например, ЯНВ_МАЙ. Вы заметили, что в именах файлов и расширениях нельзя использовать некоторые обычные (и некоторые необычные) символы. Они зарезервированы для других применений. В табл. 13.1 показаны символы и их использование. 121
В действительности, в именах файлов используются только заглавные буквы. ДОС по-дружески позволяет нам вводить имена и строчными буквами, но автоматически преобразует их в заглавные. Поэтому вы обнаружите, что ДОС всегда выводит имена файлов заглавными буквами. Вы можете обнаружить, что существуют уловки, позволяющие подсунуть ДОС неправильные имена файлов. Например, можно создать файл, который в середине имени будет иметь пробел (типа ”АА ВВ.ССС”), или создать файл, имя которого будет записано строчными буквами. Не играйте в эти опасные игры, вы непременно будете сожалеть об этом. Таблица 13.1. Символы и их применение Символ Применение * и ? зарезервированы для обобщенных имен используется для разделения имени и расширения используется для обозначения дисководов и устройств \ используется для маршрутов / используется для переключателей < и > используется для перенаправления данных , и ; используются для обозначения списка параметров = используется для обозначения списка параметров + используется для обозначения списка параметров 1 используется для труб [ и ] зарезервированы зарезервирован Имена устройств Одним из способов, которыми ДОС делает нашу жизнь удобной и легкой, является то, что мы можем обращаться к частям компьютера, таким как принтер, по простым именам, похожим на имена файлов. Эти имена называются именами устройств, так как относятся к устройствам или частям компьютера. Для того чтобы реализовать это, ДОС резервирует эти имена для специального использования, так что существует короткий список имен, которые вы не можете использовать в качестве имен своих файлов. Ниже в табл. 13.2 приведен список имен и их назначение. За исключением этих специальных имен устройств, вы можете дать вашим файлам любые имена, удовлетворяющие грам¬ матическим правилам для имен файлов (от одного до восьми симво¬ лов и т.д.). Почти так же, но не совсем, обстоит дело и с рас¬ ширениями имен файлов. Мы рассмотрим это в следующем разделе. 122
Есть еще две вещи, которые вы должны знать относительно имен файлов, и которые мы рассмотрим в следующих двух разделах: что действительно означают расширения имен файлов и как используются обобщенные имена файлов. Таблица 13.2. Имена устройств Имя Назначение AUX Линия связи или порт асинхронной связи CLOCKS Драйвер системных часов С0М1 Первая из нескольких возможных линий связи. Для обозначения остальных линий используются COM2, COM3 и COM4. C0M1 это то же самое, что и AUX CON Консоль пользователя; обозначает одновременно и клавиатуру (ввод данных) и экран (вывод данных) LPT1 Первый из нескольких возможных принтеров; для обозначения остальных принтеров используются LPT2 и LPT3. LPT1 это то же самое, что и PRN LST Используется только в MS-DOS NUL Нулевое устройство или пустой файл. Если программа пытается читать из NUL, то обнаружи¬ вает пустой файл. Данные, записанные в NUL, отбра¬ сываются . Это пустое или нулевое устройство време¬ нами может быть очень полезно PRN Печатающее устройство Важность расширений имен файлов Вы можете давать расширения вашим файлам так же свободно и произвольно, как вы даете имена вашим файлам. В действи¬ тельности даже свободнее, так как зарезервированные имена файлов существуют, а зарезервированные расширения — нет. Расширения типа СОМ и ВАТ зарезервированы в том смысле, что они представляют определенные типы файлов, но в подходящих случаях вы можете использовать их. Для расширений имен файлов существует совершенно определен¬ ная цель. Они показывают категорию и классификацию файлов. К 123
несчастью, важность и полезность расширений имен файлов подчеркиваются нечасто, и многие пользователи ДОС не до конца понимают их. В этом разделе мы узнаем, что означают расширения имен файлов. Расширения имен файлов предназначены для того, чтобы классифицировать файлы и разбить их на категории так, чтобы можно было просто и легко определить назначение файла. Присвоение стандартных расширений имен файлов весьма нерегулярно, и достаточно полно ни в каком из известных мне источников не объясняется. Это ведет к некоторому замешательству среди пользователей. Существуют два основных типа расширений имен файлов: те, которые вы присваиваете, и те, которые используют программы — все виды программ от ДОС до приложений и языков программирования. В ДОС вы чаще всего встречаете расширения СОМ и EXE, которые обозначают обычно используемые части ДОС, а также ВАТ, обозначающее файлы для пакетной обработки. В области приложений вы можете встретить множество различных расширений, так как эти программы используют для своих файлов собственные расширения. Ниже приведено несколько примеров распространенных программ и используемых в них расширений. dBASE фирмы Ashton-Tate DBF (файл базы данных) DBT (текстовый файл базы данных для комментариев) FMO (форма экрана: объектный код) FMT (форма экрана: сгенерированный исходный код) FRG (отчет: сгенерированный исходный код) FRM (отчет: эскиз формата) FRO (отчет: объектный код) LBL (этикетка: файл формата) LBT (этикетка: сгенерированный исходный код) LBO (этикетка: объектный код) HEM. (переменные в'памяти) NDX (единичный индекс) MDX (множественный индекс) PRG (исходная программа dBASE) SCR (форма экрана: эскиз формата) TXT (текстовый вывод в формате ASCII) Exqel фирмы Microsoft XLS (электронная таблица) XLM (макроопределения) XLC (диаграммы) XLW (рабочее пространство) 124
Norton Utilities ВАК (резервные данные) DAT (данные) DBO (база данных для демонстрации) FI (комментарии к информации о файле) HLP (данные для подсказок) I OX (индекс) INI (данные для инициализации) NCD (информация о каталогах) Lotus 1-2-3 FNT (шрифт) HLP (текст подсказок) PIC (графики) pm (файл для печати в ASCII) WKS (рабочие таблицы, версии 1, 1А) WK1 (рабочие таблицы, версии 2. 2.01, WK3 (рабочие таблицы, версия 3) XLT (файл преобразования) Ниже приведены стандартные применения расширений имен файлов. Исполняемые программные файлы имеют расширение EXE или СОМ. Существует два формата файлов программ (которые мы рассмотрим позже), так что для них используются два различных расширений имени файла. Исполняемые командные файлы имеют расширение ВАТ. Когда программа создает вывод для печати, который надо сохранить в файле, обычно используют расширения PRN и LST. Редакторы и текстовые процессоры используют некоторые стандартные расширения. Когда для надежности сохраняют старую версию редактируемого файла, ей дается расширение ВАК. Для текстовых файлов в текстовых процессорах часто используется расширение DOC. Некоторые текстовые процессоры в качестве расширения для отредактированных данных предпочитают использовать TXT. Когда программа использует файл данных своего собственного формата, часто используется расширение DAT. Когда программе требуется временный рабочий файл, часто, используется расширение, начинающееся с $; но иногда вместо этого используется ТМР. Перед завершением работы программа должна удалить эти временные рабочие файлы. Если вы когда-либо обнаружите файл с расширением $хх или ТМР, то это верный признак того, что что-то испортилось, и вам следует потратить время и разобраться, в чем дело. Языки программирования используют несколько стандартных имен файлов. Для исходных текстов в каждом языке применяются 125
различные расширения: ASM для ассемблера, BAS для Бейсика, С для языка Си, СОВ для Кобола, FOR для Фортрана и PAS для Паскаля. Для объектного кода в каждом языке используется одинаковое расширение OBJ. Расширение для библиотечных процедур — это LIB. Когда Бейсик использует формат BLOAD, применяется расширение BLD. Чем более точно вы будете соблюдать систему расширений имен файлов, тем легче ваши файлы подойдут для широкого использования компьютером. Это один из многих способов, которым можно обезопасить эффективную работу компьютера. Обобщающие символы и их использование С темой имен файлов связано использование глобальных символов имен файлов, часто называемых шаблонами, которые используются как общие имена файлов. Шаблон — это неспецифическая часть спецификации файла, удовлетворить которой может более одного определенного файла. У каждого файла есть специфическое допустимое недвусмыслен¬ ное имя (и расширение), но часто при помощи использования шаб¬ лона в имени файла вы можете одновременно обратиться более чем к одному файлу. Существуют два обобщающих символа — знак вопроса ? и звез¬ дочка *. Когда в спецификации файла используется знак вопроса, например этоимя? то он удовлетворит любому символу, находящемуся в этом месте имени файла. Так что спецификации ЭТОИМЯ? удовлетворит любой из следующих файлов: ЭТОИМЯ ЭТОИМЯ1 этоимя$ Это происходит до тех пор, пока все остальные позиции в имени файла точно совпадают. Как ожидается, обобщающие символы мож¬ но использовать и в имени, и в расширении полного имени файла. Обобщающий символ * представляет собой просто краткую форму для нескольких знаков вопроса. В то время как вопросительный знак позволяет находиться в этом месте имени файла одному любому символу, звездочка позволяет быть любыми всем символам, начиная с этой позиции и до конца имени файла или конца расширения. Звездочка действует так, как если бы стояло столько вопросительных знаков, сколько позиций осталось в имени файла 126
или расширении. Звездочка в имени файла ’’оканчивается” в конце имени файла, а не в конце расширения. Если вы используете вопросительный знак, вы можете определить последующие символы имени. Со звездочкой вы не можете сделать этого. Если вы попробуете это сделать, то все, что находится после звездочки, будет проигнорировано без предупреждения. Любое из этих обобщенных имен файлов * * ????9?9? ?9? означает любое имя файла с любым расширением. Обратите внимание на то, что они в точности обозначают одно и то же, тек как звездочка * — это просто краткая форма для последовательнос¬ ти вопросительных знаков. Эти обобщающие спецификации в основном используются с че¬ тырьмя командами: списка каталога DIR, командой стирания файлов DEL/ERASE, командой изменения имени файла REN/RENAME, и командой COPY. Они также используются специальным образом при копировании и конкатенации командой COPY, о чем я уже упоми¬ нал в разделе о комбинировании файлов командой COPY в гл.8. (Слово конкатенация означает соединение двух файлов в один файл.) Кроме уже указанных команд (DIR, DEL/ERASE, REN/RENAME и COPY), большинство программ, требующих спецификацию файла, не станут воспринимать обобщенное имя файла, даже если этому обобщенному имени будет в конце концов соответствовать единственное имя файла. Существуют специальные технологии программирования, облегчающие программам активное использование обобщенных имен, а ДОС именно с этой целью предоставляет программам некоторые специальные услуги. Хорбшо, когда программы используют эти услуги и могут воспринимать обобщенные имена файлов. Но так делают не все программы, и вы не должны разочаровываться, если ваша программа не воспринимает имена файлов с обобщающими символами. И наконец, прежде чем мы закончим это обсуждение, я дам вам совет из одного слова: остерегайтесь. Использование обобщенных имен может быть очень опасным. Многие и многие пользователи ДОС, нечаянно используя не те шаблоны, стирали файлы, совсем не предназначенные для стирания: А задание обобщенного имени программе, которая не ожидает этого, может вести и к другим несчастьям. 127
Форматы дисковых файлов и что -они для вас значат Желательно знать, на что похожи данные на вашем диске — как они структурированы, как они выгладят и как они хранятся. В этом разделе мы рассмотрим форматы дисковых файлов. Во-первых, как хранятся данные на диске? Схема проста и эффективна. Как видит это ДОС, пространство для хранения данных на диске состоит из фрагментов фиксированного размера, называемых секторами. Размер сектора может отличаться у дисков разных типов, но в пределах одного диска все секторы имеют один размер — обычно 512 байт. Для того чтобы эффективно управлять дисковой памятью, ДОС при необходимости поочередно размещает пространство в кластеры. Размер кластера соответствует размеру диска. Например, для жесткого диска в 120 Мбайт ДОС использует 8 секторов на кластер, а для 3i/2-дюймовые дискеты объемом 1.44 Мбайт ДОС использует только 1 сектор на кластер. В действительности, узнать об этом просто интересно, но знать совсем необязательно. Дисковая операционная система читает и пишет данные на диск секторами фиксированного размера и размещает это пространство по одному или по нескольку секторов одновременно. Мы и наши программы совсем не видим этих секторов фиксированного размера. Вместо этого ДОС позволяет хранить наши данные в файлах любого удобного для нас размера. ДОС беспокоится о помещении наших данных в секторы фиксированного размера и делает это так эффективно и ненавязчиво, что нам никогда не надо беспокоиться о механизме того, как хранятся данные. Размещение наших данных в секторы фиксированного размера — это работа для ДОС, а не для нас или наших программ. Это очень хорошо, так как создает явное разделение труда: ДОС заботится о том/ где и как сохранить наши данные, а все, о чем остается заботиться нашим программам, это как использовать данные. Обычно для хранения наших данных на диске используется четыре формата файлов — три специальных формата и один, хранящий любые данные. Форматы СОМ и EXE Два из трех специальных форматов используются для хранения исполняемых программ. Форматы различаются по их стандартным расширениям имен файлов — СОМ и EXE. Файлы типа СОМ используются для хранения полностью готовых для исполнения программ. Это формат образа памяти. Содержимое файла на диске идентично тому, что находится в памяти компьютера во время исполнения программы. Формат EXE более сложен. Программы в 128
формате EXE во время загрузки с диска в память требуется слегка настроить. Эта настройка, в основном, включает в себя размещение программы в нужное место в памяти, при этом программе надо сообщить, куда ее поместили. Формат ЕХЕ обычно используется для более сложных программ, создаваемых компиляторами. Из-за дополнительного заголовка программы в формате ЕХЕ при хранении на диске несколько более громоздкие, но в памяти компьютера они могут быть такими же компактными, как программы типа СОМ. Ничего практически пригодного в этих двух специальных форматах программных файлов для нас нет. В действительности, основное, что надо знать о файлах программ типа СОМ и ЕХЕ, это просто расширения имен файлов. Шйдя файлы типа СОМ и ЕХЕ, вы можете* увидеть, какие исполняемые программы имеются на вашем диске. Форматы Бейсика Язык программирования Бейсик является исключением из многих правил. Это же верно и по отношению к программным файлам. Если у вас есть Бейсик программы, исполняемые интерпретатором языка Бейсик, то эти программы хранятся в файлах с расширением BAS. Вы можете подумать, что это исполняемые программы, и с вашей точки зрения они таковыми и являются, но с точки зрения ДОС программа 'на языке Бейсик в файле типа BAS — это просто данные, которые интерпретатор языка Бейсик читает для того, чтобы определить, что ему делать. Это технический момент, но его стоит знать. Как видят это ДОС и компьютер, настоящей программой является интерпретатор Бейсика, а файл типа BAS — это просто данные. Поэтому интерпретатор языка Бейсик хранится в файле типа СОМ как настоящая программа. Формат ASCII Другой специальный формат файла, который будет вам особенно интересен, это формат ASCII текстового файла. Это тот формат, который используется для хранения ваших текстовых данных, таких как почта, отчеты и исходные тексты программ. Такой формат файлов называют различными терминами. Иногда его называют текстовым файлом, или ASCII файлом. Я обычно называю его текстовым ASCII' файлом. Текстовые ASCII файлы используют формат, который очень гибок и хорошо приспосабливается для многих целей. Вероятно, это наиболее широко используемый формат данных компьютера. И конечно же, он универсален для персональных компьютеров и рабочих станций. Аббревиатура ASCII относится к кодовой таблице, которую использует компьютер для распознавания букв, чисел и символов, составляющих файл с текстом. ASCII — это сокращение от названия 5 За к 1807 1
” Американский стандартный код для обмена информацией” (American Standard Code for Information Interchange) и является стандартным кодом, используемым для символов компьютера. Попросту говоря, буквы ASCII означают написанный текст. Текстовый ASCII файл состоит, в основном, из потока записанной информации: букв алфавита, чисел и знаков препинания, которые составляют то, что мы обычно пишем. То, что вы читаете в этой книге, — типичное содержание текстового ASCII файла, и в действительности, эти самые слова хранятся на диске моего компьютера в текстовом ASCII файле. Кроме слов или текста текстовый ASCII файл также содержит некоторую форматирующую информацию, которая делает текст более пригодным для чтения. В конце текстового ASCII файла располагается маркер конца файла. (Это символ из таблицы ASCII под номером 26, который иногда называют Ctrl-Z.) Внутри самого текстового ASCII файла текст разбит на строки двумя форматирующими символами, находящимися в конце каждой строки. Эти два символа известны как возврат каретки (символ ASCII номер 13) и перевод строки (10). Обычно это все форматирующие символы, которые находятся в текстовом ASCII файле — возврат каретки и перевод строки в конце каждой строки и маркер конца файла, конечно же, в конце файла. Других форматирующих символов в текстовых ASCII файлах обычно не бывает — ни маркеров параграфа, ни маркеров страниц. Но в таблице символов ASCII есть форматирующие символы, которые можно использовать для этой цели. В таблице имеются и многие другие форматирующие символы. Я называл некоторые специальные символы по их ASCII кодам. Например, код 13 — это символ возврата каретки. Все внутри компьютера представлено в виде чисел, так что каждый символ имеет численный код, является ли он буквой алфавита, как заглавная буква А с кодом 65, или специальным символом, как маркер конца файла с кодом 26. Если вы знаете или будете изучать язык программирования Бейсик, то узнаете, что Бейсик обращается к этим числовым кодам символов так: CHR$(26). Все программы, известные как редакторы или текстовые редакторы, работают с текстовыми ASCII файлами. Сама ДОС поступает с простым, но мощным текстовым редактором EDLIN. (Детально мы рассмотрим EDLIN в гл.23.) Другим текстовым редактором является Norton Editor. Текстовые процессоры также обычно работают с обыкновенными текстовыми ASCII файлами. Однако сложные текстовые процессоры, такие как WordPerfect и Microsoft Word, требуют более сложной форматирующей информации, чем может содержать простой текстовый ASCII файл. Поэтому для того, чтобы хранить требуемые им данные, они слегка расширяют и слегка нарушают правила. В связи с этим текстовые файлы текстовых процессоров несколько отличаются от обычных 130
традиционных текстовых ASCII файлов. Но в то же время в основе файлов текстовых процессоров лежат простые текстовые ASCII файлы. Что особенно интересно и важно относительно текстовых ASCII файлов, это то, что они наиболее общие и позволяют производить обмен из всех форматов файлов. Это означает, что если у вас есть программное средство, использующее текстовые ASCII файлы, то вы можете ожидать, что вам удастся передать данные от этой программы другим программам, использующим ASCII файлы, с минимумом суеты и сложностей. Эта возможность переноса может дать огромное преимущество в гибкости. В связи с этим выгодно иметь как можно больше данных в формате ASCII или иметь возможность преобразовывать данные в формат ASCII, как это делает большинство текстовых процессоров. Заключение таково: если вы программируете или заказываете программы, рассмотрите возможность использования формата текстовых ASCII файлов, даже если для ваших программ это и не самый удобный формат. С течением времени выгоды от этого могут быть весьма значительными. Общие файлы данных После этих трех специальных форматов файлов — программных файлов типа СОМ, программных файлов типа EXE, тестовых ASCII файлов — мы переходим к собирательному формату общих файлов данных. Если файл не имеет специального формата, он содержит просто сохраненные на диске данные. Обычно файлы данных состоят из частей фиксированной длины, называемых записями. Длина записи может быть от одного символа до любой заданной вами величины. Чтобы прочитать такой файл данных, программа сообщает ДОС основную информацию об этом файле, такую как длина записи. После этого ДОС находит расположение каждой записи — в какой части какого сектора диска находится эта запись. О файлах, состоящих из записей фиксированной длины, стоит знать одну специальную вещь. Так как все записи имеют одинаковую длину, с помощью простой арифметической формулы можно вычислить, где хранится каждая запись. Это означает, что в файлах из записей фиксированной длины можно осуществить прямой доступ, произвольно перемещаясь от одной записи к другой. Файл из записей фиксированной длины можно обрабатывать либо последовательно, одну запись за другой, либо прямыми выборками. Это является огромным преимуществом над текстовыми ASCII файлами, которые надо прочитывать и записывать последовательно, от начала и до конца и только в этом порядке. Когда вы размышляете о файлах и думаете, что можно сделать с ними, вы должны иметь в виду специальную возможность прямого доступа, которой обладают файлы из записей фиксированной длины. 131
Рискованное восстановление файлов программой RECOVER Сейчас мы вернемся к ДОС и мощной, но опасной программе восстановления файлов по имени RECOVER. Данные на вашем диске могут быть потеряны или повреждены множеством способов, и вея тема восстановления является очень важной, но более обширной, чем мы можем рассмотреть в этой книге. ДОС дает нам немного в смысле защиты и восстановления файлов, но в ее составе имеется одна команда, RECOVER, которая делает два ограниченных вида восстановления файлов. Если часть диска была повреждена таким образом, что частично файл можно прочитать, а частично — нет, команда RECOVER удалит нечитаемую часть так, чтобы вы могли использовать то, что осталось. В зависимости от вида файла оставшаяся часть может быть и полезна и нет. Обычно этот тип восстановления файлов работает только с текстовыми ASCII файлами, содержащими письменный материал. Чтобы использовать RECOVER таким образом, вы вводите команду, за которой указываете имя файла, который надо проверить на наличие читаемых и нечитаемых частей. .Второй тип восстановления файлов командой RECOVER полностью отличается от первого. К сожалению, эти два типа очень легко спутать, как раз в этом и заключается опасность. При этом втором типе восстановления файлов, RECOVER полагает, что весь каталог диска поврежден и содержит чепуху. Команда отбрасывает весь каталог и заменяет его новым, содержащим данные, которые RECOVER обнаружила на диске, и организованные в файлы так, как их удалось организовать. Но новый каталог содержит файлы с произвольными именами, которые им присвоила команда RECOVER. После этого вашей задачей становится как можно лучше угадать, что есть что. Для тзого чтобы использовать RECOVER таким образом, вы вводите команду без указания имени файла. Но запомните, что данная форма команды полностью стирает весь ваш каталог. Если вы ею пользуетесь, будьте осторожны и внимательны. Она может быть чрезвычайно опасна, в чем смогли удостовериться многие мои коллеги. На самом деле в целях безопасности лучше полностью избегать использования команды RECOVER. Но наилучшим способом обработки поврежденных файлов является использование специальных программ, написанных именно для этой цели. По этой причине я разработал пакет Norton Utilities. В нем есть несколько таких программ для восстановления потерянных файлов и каталогов, для реформатирования отформати¬ рованных дисков и даже для восстановления после команды RECOVER из состава ДОС. 132
Глава 14 УСТАНОВКА ЖЕСТКОГО ДИСКА Первые компьютеры имели только дисководы для гибких дисков. Но сейчас в большинстве компьютеров установлены жесткие диски. Кстати говоря, если вам не требуется машина для специальных целей (например, рабочая станция для локальной сети), я настоятельно рекомендую вам покупать компьютеры только с жесткими дисками. В этой главе вы узнаете о специальных требованиях к памяти на жестких дисках, но перед тем, как мы вплотную займемся этим, рассмотрим несколько вспомогательных вопросов. Во-первых, в центре практической ценности компьютера находится его дисковая память. Это может показаться неразумным; в конце концов, вычислительная мощность — вот то, для чего вы используете компьютер. Кроме того, многие пользователи чаще бывают заинтересованы в качестве экрана (может ли он воспроизводить графику высокого разрешения или легко ли глядеть на него?) или принтера (насколько он быстрый, может ли он печатать курсивом?). Хотя мы можем все время рассуждать о скорости вычислений нашего компьютера или формате его дисплея и качестве печати, в целом применение компьютера концентрируется вокруг его дисковой памяти. В самом начале широкое распространение персональных компьютеров и их операционных систем, таких как ДОС, основывалось на гибкой дискете — и для этого были веские причины. Дискеты дешевы, надежны и гибки более, чем в одном смысле. Их техническая гибкость позволила легко использовать их во всех видах компьютеров. Их гибкость использования, легкость помещения в дисковод и вынимания из него, легкость хранения и пересылки по почте значительно увеличили практичность выполнения работ с помощью маленьких компьютеров. Но у гибких дискет имеются два крупных недостатка: низкая скорость и маленькая емкость. Давайте взглянем на каждый из этих аспектов. Скорость вычислений Компьютер состоит из набора компонентов, которые работают все вместе. Каждая составная часть имеет определенную скорость выполнения своей задачи. Грубо говоря, можно сравнить отдельные скорости различных компонентов и определить, соответствующим ли образом они подобраны. Если составные части компьютера согласуются друг с другом, это хорошо. Давайте рассмотрим, что произойдет, если одна составная часть будет или очень быстрой или очень медленной. Допустим, что одной части нашего компьютера требуется ровно 10% всего времени, необходимого для выполнения некоторой рабо¬ 133
ты. Если мы заменим эту часть другой, работающей в 10 раз бы¬ стрее, то новой составной части потребуется для работы всего 1% исходного времени, а весь наш компьютер будет работать на 9% быстрее. Одна часть улучшается в 10 раз, а в целом улучшение меньше 10%. Если же мы теперь заменим нашу составную часть другой, работающей в 10 раз медленнее исходной, _ то для выполнения одной части работы ей потребуется 100% исходного времени. Весь компьютер теперь будет работать на 90% медленнее, почти вдвое уменьшив свою эффективную скорость благодаря всего лишь одному медленному компоненту. Смысл всего этого следующий. Мало преимущества в том, чтобы иметь один непропорционально быстрый компонент, но в одном непропорционально медленном компоненте заключен огромный недостаток. Вопрос заключается в балансе и наличии узких мест. Если по отношению к остальной части компьютера одна часть работает медленно, она становится узким местом, способным привести в негодность весь компьютер. Временные испытания Если бы вам пришлось использовать компьютер без жесткого диска, вы бы обнаружили, что дисководы для дискет являются самым узким местом всей работы компьютера. Это утверждение не абсолютно верно, но обычно верно. Насколько оно может быть для вас верным, зависит от двух параметров: во-первых, относительного баланса скоростей частей вашего компьютера и, во-вторых, относительного баланса того, как ваша работа использует части компьютера. Если у нас с вами одинаковые компьютеры, но вы практически не используете диски, для вас они не станут узким местом. Но если я использую диски очень активно, то они, очевидно, станут для меня узким местом, так что здесь абсолюта нет. Однако для большинства пользователей персональных компьютеров диски явно представляют собой узкое место — ограничивающий фактор скорости работы всего компьютера. Давайте взглянем на некоторые показательные числа, и вы поймете, о чем я говорю. Компьютер, на котором была написана эта книга, использовал как дискеты, так и память на жестком диске. Во время моих собственных временных испытаний я обнаружил, что жесткий диск работает со скоростью в 5-10 раз большей, чем дискеты. Но мои временные испытания проводились для исклю¬ чительно дисковых операций, а не для всего компьютера. Что это означало на практике? Есть ли здесь узкое место? Для того чтобы проверить это, я испытывал наиболее времяпоглощающую работу, которую я делаю на своем компьютере — я проверял написанное мною на синтаксические ошибки. 134
Я знал, что моя программа проверки производит много вычислений, а также активно работает с диском, но я не знал соотношения между этими процессами. Я также не знал, где при выполнении этой конкретной задачи находится узкое место. Я выбрал для проверки большой фрагмент текста и использовал все три возможных среды хранения: дискету, жесткий диск и электронный диск. При использовании дискеты операция заняла примерно три минуты. Затем я испытал жесткий диск, который сам по себе в пять раз быстрее дискеты. Когда для проверки на синтаксические ошибки я использовал жесткий диск, время сократилось почти до двух минут. Это существенное улучшение — на целую треть. Затем я продолжил испытания, чтобы убедиться, является ли скорость диска узким местом даже при использовании жесткого диска. Я проделал это с электронным диском, используя в качестве диска электронную память компьютера (ОЗУ). Но несмотря на то, что электронный диск работает во много раз быстрее жесткого диска, его использование для проверки правописания сократило время всего на шесть секунд. Таким образом было доказано, что для этой работы мой жесткий диск был достаточно быстрым и не являлся для данной задачи узким местом. Мои собственные временные испытания убедительно продемон¬ стрировали решение вопроса о скорости с обеих сторон. До некоторого момента более быстрый диск может помочь вам, но затем определяющей будет уже не скорость диска. Ваши потребности или проблемы со скоростью будут исключительно вашими, но обычно они будут аналогичны моим. Для большинства пользователей персональных компьютеров узким местом становятся обыкновенные дискеты, а все, что в несколько раз быстрее их, преодолевает это узкое место. Емкость диска Давайте рассмотрим другую характеристику памяти — емкость. Для дисковой памяти используется много различных форматов, так что различные диски имеют различные емкости. Емкость дискет, используемых в персональных компьютерах, простирается от низкой — около 360 Кбайт (для двусторонних Ji/4-дюймовых дискет двойной плотности) до высокой — около 1.44 Мбайт (для 31/2- дюймовых дискет высокой емкости). Когда вы используете дискеты, которые не могут вместить всех ваших данных, вы сталкиваетесь с тремя трудностями. Во-первых, раздражает тасование дискет, когда вы устанавливаете один набор дискет для одного вида работы, а другой набор для другого. Это не только неудобно, ведь манипулирование дискетами значительно увеличивает опасность повреждения данных. Во-вторых, вам может 135
понадобиться иметь одновременно доступ к большему количеству данных, чем может одновременно поместиться в дисководах для дискет — тяжело совмещать информацию на трех дискетах, когда дисководов для дискет только два. В-третьих, дискеты устанавливают весьма низкий предел того, насколько большим может быть ваш самый большой единственный файл, так как никакой файл не может быть больше диска, на котором он находится. Жесткие диски Системы с жесткими дисками решают все эти три проблемы. Они устраняют тасование дискет, позволяют одновременно использовать большое количество данных, а также позволяют файлам быть действительно очень большими. Если у вас нет жесткого диска, вы можете засомневаться относительно того, насколько сильно он вам нужен, или какого размера диск вам следует приобрести. (В конце концов, если вы приобретете слишком маленький диск, перед вами опять встанут те же проблемы, что и с дискетами.) Если вы можете оценить свои потребности в хранении данных, это хорошо, если же нет — вот мое правило: для компьютера при персональном или профессиональном использовании без большого количества данных, вполне вероятно, что будет достаточно жесткого диска объемом 40 млн. байт. Для профессионального пользователя или деловых приложений с умеренным количеством записей может подойти диск объемом 100 млн. байт. Для пространных деловых записей, большой исследовательской базы данных или чего- либо подобного может потребоваться емкость в несколько сотен млн. байт. (В моей машине установлен 120-мегабайтный диск, и я никогда не жалел о том, что он такого большого размера.) Если вы выбираете жесткий диск, более безопасно выбрать дшск большего объема, нежели меньшего. Если вы знаете, что впоследствии можете добавить дисковую память, то можете начать и с малого жесткого диска. Организация жесткого диска Составляет ли объем вашего диска 10 или 500 Мбайт, важно, что у вас имеется большой объем дисковой памяти, в которую вы можете непринужденно "швырять” свои программы и данные. Проблема заключается в том, что если вы ничего не сделаете для организации этих файлов размером в миллионы байт, запись ваших файлов на диск будет эквивалентна швырянию их в черную дыру. Как вы потом собираетесь найти их? 136
Мы оставим детали организации ваших файлов для следующей главы, так как именно в ней вы все узнаете о некоторых командах, которые позволят вам обращаться с вашим жестким диском как с гигантским стеллажом с папками. Но прямо сейчас требуется небольшое вступление. В основном, вы можете обращаться с жестким диском так, как если бы это был огромный склад с перемещающимися перегородками внутри: вы ставите и ставите перегородки до тех пор, пока ваши файлы (вещи, которые вы храните) не станут аккуратно организованными и легко доступными. Эта аналогия со складом весьма полезна (и несколько отличается от традиционной аналогии жесткого диска со стеллажом с папками). Вы можете рассматривать ваш жесткий диск как складское здание. Большое здание с огромным числом комнат, но потенциально хаотичное, если товары в нем не организованы правильно. В вашем складе есть одна основная область (давайте назовем ее приемной), где контролируется весь приход и вся убыль. На вашем жестком диске этой "приемной областью” является специальный каталог, называемый корневым. Пройдя приемную область, вы можете отделить одно от другого, устанавливая перегородки. На вашем жестком диске вы можете делать то же самое, создавая электронные перегородки, называемые каталогами. Так же, как и в вашем складе, для хранения однотипных товаров вы можете разделить выделенную область на меньшие области. То же самое происходит и на жестком диске, только меньшие перегородки называются там подкаталогами. Ваш склад, или каталог, вы можете делить вновь и вновь до тех пор, пока товары (файлы) не будут храниться там, где вам надо. И, наконец, чтобы закончить нашу аналогию со складом, когда вам больше не нужна эта разделенная область, вы можете удалить стены или полки и поместить на то же место новые товары. И опять то же самое делается и с жестким диском. Именно эта идея лежит в основе организации жесткого диска. Не ДОС, а вы решаете, какие надо создать каталоги и как их надо назвать, вы разделяете каталоги на более мелкие фрагменты, или подкаталоги, и вы указываете ДОС, в каком каталоге/подкаталоге следует хранить ваши файлы. Закончив это общее введение в потребности и использование жестких дисков (а’ также виртуальных дисков, так как многое из того, что мы говорили о скорости и емкости, применимо и к ним)' давайте перейдем к специальным вопросам. Ключевые команды для жесткого диска Если в вашей системе имеется жесткий диск большой емкости, то это добавляет вашей системе дополнительную мощь и возможности. 137
Это также требует некоторого специального обслуживания, а для того, чтобы удовлетворить эти требования, ДОС предоставляет четыре специальные команды, созданные для работы с жесткими дисками (хотя, кроме FDISK, они работают и с дискетами). Команды называются FDISK, BACKUP, RESTORE и ATTRIB. Мы уже обсуждали команду FDISK и разделы жесткого диска. Кроме этого обсуждения, есть некоторые дополнительные наблюдения: продолжая нашу аналогию жесткого диска и склада, создание разделов, диска похоже на деление его на несколько меньших складов. Как я объяснял в гл.4, есть три причины, по которым вы должны создать разделы жесткого диска: установить на вашем компьютере более одной операционной системы, организовать ваши данные в отдельные файловые системы* а также преодолеть ограничение в 32 мегабайта, существовавшее в ранних версиях ДОС. Важно понять, что каждый раздел, каждый отдельный склад поддерживает свою собственную файловую систему. Если у вас более одного раздела ДОС, вы можете обращаться к ним как к дисководам С, D и т.д. Если у вас более одной операционной системы, каждая будет хранить свои файлы различным образом. Как правило, системы типа Unix (Unix, AIX, Xenix) имеют специальные команды для чтения и записи файлов из разделов ДОС. ДОС, однако, не в состоянии работать с файлами из раздела Unix. Если вы будете использовать более одной операционной системы, вам, скорее всего, придется установить сначала не-ДОС систему. Если ДОС уже установлена на вашем компьютере, вам придется зарезервировать (сохранить на дискетах, см.ниже) все ваши файлы с жесткого диска, удалить все разделы, установить не-ДОС систему (оставив некоторое место для ДОС), вновь установить ДОС и восстановить сохраненные на дискетах файлы. О том, как хранить файлы для резервирования, мы поговорим в следующем разделе. Защита ваших данных Начав использовать систему с жестким диском, вы, скорее всего, начнете загружать ее многими и многими данными — для этого жесткий диск и предназначен. Как вам обезопасить эти данные? С одной стороны, вы должны периодически делать резервные копии данных с вашего жесткого диска, и здесь появляются команды BACKUP и RESTORE. 138
Команда BACKUP Команда BACKUP создана для копирования данных с жесткого диска на такое число дискет, которое необходимо для ваших данных. Вы можете использовать команду BACKUP для копирования с диска любого типа на любой тип диска. Вы даже можете сохранить дискету на жестком диске. В действительности, если у вас больше одного раздела жесткого диска, вы можете сохранить один раздел жесткого диска на другом. Конечно же, хорошо иметь возможность перемещать данные в любом направлении, но главная цель команды BACKUP заключается в копировании данных , с жесткого диска на дискеты для резервного хранения. В команде BACKUP имеется несколько опций, облегчающих контроль процесса копирования данных и того, какие данные вы копируете. Если вы хотите переписать на дискеты (допустим, что они находятся в дисководе А) все содержимое жесткого диска (будем полагать, что это дисковод С), то следует использовать команду BACKUP следующим образом: BACKUP С:\ A: /S Вот основные составляющие этой команды: параметр С:\ указывает команде BACKUP, что надо начать с корневого каталога (это основной каталог — приемная область в нашей аналогии со складом) дисковода С:. Переключатель /S указывает команде BACKUP, что надо копировать как основной каталог, так и все подкаталоги. Тем, что надо начинать с корневого каталога и включить все подкаталоги, вы задали BACKUP копирование всего, что имеется на диске. Если бы вы хотели, вы могли бы задать BACKUP копирование содержимого одного конкретного каталога или подкаталога. Вы бы сделали это, указав ДОС, как добраться до каталога, который вы хотите скопировать. Этот указанный вами путь называется маршрутом каталога и является способом, которым вы говорите ДОС следующее: ” Переместись в каталог X, затем найди подкаталог Y и скопируй все находящиеся там файлы1'. Используя эту форму команды, вы укажете подкаталог следующим образом: BACKUP C:\X\Y Если вы также используете опцию /S BACKUP C:\X\Y /S то включите все дополнительные подкаталоги внутри выбранного вами каталога. 139
Команда BACKUP достаточно умна и работает с таким количеством дискет, которое необходимо для записи всех указанных нами файлов, и даже при необходимости может распространять файлы более чем на одну дискету. Если вы будете записывать содержимое целого жесткого диска, то обнаружите, что это длительный процесс, требующий большого числа дискет. К счастью, существует несколько приемов, способных уменьшить время и число участвующих в этом процессе дискет. Приемы работы с командой BACKUP После того, как сделана резервная копия диска, вам, в действительности, некоторое время можно не делать повторную копию всего диска. Периодического копирования всех файлов, которые вы добавили или изменили будет вполне достаточно. ДОС следит за тем, какие файлы были изменены и не были скопированы. И если попросить программу BACKUP, то и она определит эти файлы. Это делается с помощью переключателя /М, который указывает BACKUP копировать только те файлы, которые были изменены с момента последнего запуска этой команды. Что я делаю со своим жестким диском и что я рекомендую делать и вам, так это снимать полную копию вашего жесткого диска так часто, как вы считаете разумным. Я думаю, что это хорошо делать раз в месяц, но должен признать, что сам добираюсь до этого только раз в несколько месяцев. Между полными копированиями делайте ’’нарастающие” копирования, во время которых копируйте только файлы, измененные после полного копирования. Это стоит делать гораздо более часто — ежедневно или, по крайней мере, еженедельно. Если вы будете следовать этим предложениям, то обнаружите, что ваша процедура копирования будет очень практичной и не такой нудной. Как напоминание, вот две команды для копирования файлов: BACKUP С:\ А: (для полного копирования) BACKUP С:\ А: /М (для нарастающего копирования) Другие переключатели в команде BACKUP Вы должны знать, что в команде BACKUP имеются еще два переключателя. Один из них — это опция даты, /D. Так же как и опция /М (означающая, что надо копировать модифицированные файлы), опция даты позволяет вам выбрать файлы для копирования, но в этом случае выбор основывается на том, была ли дата (отметка, показывающая, когда файл был изменен последний раз) до или после даты, заданной команде BACKUP. Это позволяет нам выбрать для копирования недавние материалы вне зависимости от того, были 140
ли они скопированы до этого или нет (что использует опция /М). Это удобная альтернатива. Вот форма команды, использующая переключатель /D: BACKUP С: /D:MM-DD-YY (для всего диска) BACKUP C:\DIRECTORY\SUBDIRECTORY /О MM-DD-YY (для каталога или под-каталога) Восстановление данных на жестком диске Естественно, существует команда, соответствующая BACKUP — команда RESTORE. Действие команды RESTORE противоположно операции копирования и имеет те же свойства. Существует одно практическое неудобство, о существовании которого вы должны знать. Ситуация, когда вы хотите восстановить предварительно скопированный файл, но при этом поместить его в другой каталог, вероятно затем, чтобы работать с ним отдельно от основной копии, возникает значительно чаще, чем вы можете подумать. К сожалению, команда RESTORE будет восстанавливать файлы именно в те каталоги, из которых они были скопированы. При выборочном восстановлении файлов имейте это в виду. Если вам действительно необходимо поместить файл в отдельный каталог, практически единственным способом сделать это является использование команды СОРУ. Замечание. Как правило, если вы сохраняете файлы с помощью команды BACKUP, следует пользоваться программой RESTORE из той же версии ДОС. Сохранение больших систем В настоящее время многие жесткие диски так велики, что сохранение их на дискетах доставит вам слишком много сложностей и будет слишком трудоемко. Это особенно верно для компьютерных сетей, имеющих огромные объемы дисковой памяти. Обычным решением является использование системы с магнитной лентой. К сожалению, для накопителей на ленте стандартов нет. Хотя используются всего несколько типоразмеров лент, каждая отдельная система хранит данные собственным образом. Это означает, что вы можете восстановить данные с ленты только с помощью той же системы, с помощью которой вы их сохранили. Система сохранения данных на ленте состоит из нескольких компонентов; лентопротяжного устройства, платы адаптера для вашего компьютера (к которой присоединяется лентопротяжное устройство) и специального программного обеспечения. 141
Когда вы используете систему с лентой, вы не можете работать с обычными командами BACKUP и RESTORE. Вместо них вы используете программы, поставляемые вместе с накопителем на ленте. Перед тем, как вы выберете систему с лентой, я рекомендую вам очень внимательно ознакомиться с этими программами и документацией. Не делайте свой выбор только на основании соображений об аппаратном обеспечении. Если у вас жесткий диск среднего размера, альтернативой накопителю на ленте (который может оказаться весьма дорогим) может быть использование дискет, но при этом купите специальную программу, которую вы будете использовать вместо BACKUP и RESTORE. Такие программы обычно предлагают повышенную скорость и большую гибкость, чем команды ДОС. Однако у команд BACKUP и RESTORE есть два основных преимущества: во-первых, они не требуют дополнительных затрат; во-вторых, они имеются в компьютере у каждого пользователя. Эти команды являются удобным способом для перемещения больших объемов данных от одного компьютера к другому. Глава 15 РАБОТА С ПОДКАТАЛОГАМИ Благодаря концепции подкаталогов и маршрутов, которые мы кратко рассмотрели в предыдущей главе, диски, а особенно жесткие, можно использовать в ДОС разнообразными и сложными способами. Давайте поближе взглянем на каталоги и посмотрим на них с точки зрения того, что мы теперь знаем о дисках. Все дискй — дискеты ли это, жесткие ли диски, оптические или виртуальные — имеют каталог файлов фиксированного размера. Он называется корневым или основным каталогом. Это не единственный каталог, который может быть на диске. В корневом каталоге диска могут быть подкаталоги, и каждый из них также может содержать в себе смесь из файлов и подкаталогов. По способу хранения на диске подкаталоги представляют собой файлы, такие же, как и остальные, которые вы храните на диске. Но ДОС помечает подкаталоги специальным образом так, чтобы обращаться с ними как с частью структуры каталогов. Таким образом, подкаталоги — это уникальные гибриды: обычные файлы по способу хранения на диске, но совершенно особенные файлы по тому, что они из себя представляют и что содержат в себе. Из всего сказанного можно сделать некоторые интересные и важные выводы. Во-первых, подкаталог может увеличиваться в размерах, так же как мож^т расти и любой файл. В этом заключается основное различие между корневым каталогом и подкаталогом. Расположение и размер корневого каталога фиксированы. Таким образом, существует определенный верхний предел числа записей, которые он может 142
содержать. С другой стороны, подкаталог ограничен только наличием пространства на диске, и потому не существует предопределенного предела числу содержащихся в нем записей. Второе практическое следствие того, что подкаталог хранится на диске так же, как и любой другой файл, не является таким выигрышным. В поисках подкаталога ДОС приходится просматривать диск, а это занимает больше времени для доступа к нему. Корневой каталог диска всегда располагается в самом начале диска рядом с таблицей (FAT), следящей за использованным и свободным пространством на диске. Когда вы указываете ДОС обработать файл, зафиксированный в корневом каталоге, вся информация, необходимая ДОС для поиска этого файла — запись в каталоге и расположение записи самого файла на диске — расположены рядом друг с другом, и ДОС может быстро ее найти. С подкаталогом дело обстоит совсем не так. Допустим, у вас имеется набор подкаталогов, расположенных примерно так (мы всегда начинаем с корневого каталога, так как все остальное находится в нем): Корневой_каталог Подкаталог АА Подкаталог ВВ МОЙФАЙЛ Для того чтобы работать с файлом МОЙФАЙЛ, находящимся в подкаталоге ВВ, ДОС сначала надо пробраться через маршрут подкаталогов, ведущих к этому файлу. Маршрут здесь следующий: Корневой каталог — АА — ВВ — МОЙФАЙЛ. Каждый подкаталог хранится на диске на некотором расстоянии от таблицы размещения файлов (официально известной как FAT). Проход по маршруту каталога и "метание” от каждого подкаталога к таблице и обратно добавляет к работе, которую должна сделать ДОС, значительную часть. Если диск быстрый (как современные жесткие диски и виртуальные диски), то проблем здесь не возникает. Однако с дисководами для дискет или старыми медленными жесткими дисками дополнительная работа может значительно замедлить работу вашего компьютера. В некоторых случаях длинные, сложные маршруты каталогов могут сделать вещи значительно хуже. Каталоги с древовидной структурой Как я уже упоминал, на каждом из ваших дисков имеется корневой каталог, к которому вы можете добавить другие каталоги. Каждый новый каталог ответвляется от родительского каталога, и каждый в свою очередь может иметь внутри себя сколько угодно других каталогов. Такой тип ветвления называют иерархической или древовидной системой каталогов. Можно ответвлять каталоги от каталогов без ограничений, создавая сложную древовидную структуру. Вы можете захотеть использовать эту способность для создания детальной логической структуры ваших файлов. Идея весьма привлекательна: вы создаете основные каталоги для основных областей применения, а внутри них 143
подкаталоги для большей детализации. Например, вы можете создать каталог* для всех бухгалтерских данных с подкаталогами для расчетов по каждому году. Или вы можете захотеть создать основные каталоги для каждого человека, использующего компьютер, а внутри него подкаталоги по видам работ. Возможностей здесь очень много. Как вы видите, существует много способов для организации древовидных структур. Так как это является очень важной темой, я рассмотрю ее более детально в следующей главе. Сейчас же давайте продолжим изучение каталогов и команд, необходимых для их поддержания. Когда вам нужен подкаталог? В действительности, подкаталоги предназначены для использова¬ ния только в системах с высокоскоростными жесткими дисками очень большой емкости. Пока на вашем диске нет большого числа файлов, нет необходимости организовывать подкаталоги и изо¬ лировать в них группы файлов. Более важно, что дополнительная работа, которую требуют подкаталоги, может разрушить работу мед¬ ленной дисковой памяти типа дискет. Подкаталоги практичны толь¬ ко с высокоскоростными системами жестких дисков, работающих от пяти до десяти раз быстрее обычных систем с дискетами. Как правило, вам требуются подкаталоги только если у вас имеется система с жестким диском емкостью во много Мбайт. Кроме того, вы можете позволить себе дополнительные затраты работы с подкаталогами, только если у вас имеется жесткий диск. В противном случае использовать их не стоит. Из моего собственного практического опыта я бы рекомендовал вам создавать столько подкаталогов, сколько вам нужно, но при этом делать структуру дерева каталогов как можно проще. Поместите все ваши подкаталоги в корневой каталог диска. И не создавайте ветвлений ни из какого каталога кроме корневого, если для этого у вас нет действительно важных причин. Принятие решения о том, стоит ли вообще создавать подкаталог — это отдельный вопрос. В создании большого числа каталогов есть и преимущества и недостатки. Когда у вас имеется много каталогов, каждый из которых содержит мало файлов, легче следить за файлами, принадлежащими какой-то конкретной категории. Но од¬ новременно использовать файлы, находящиеся в различных катало¬ гах, более сложно, так что разбиение ваших файлов на множество каталогов может стать неудобным. К тому же чем больше у вас под¬ каталогов, тем сложнее управлять всем количеством ваших файлов. Как вы создаете и используете ваши подкаталоги, будет зависеть от ваших потребностей и вкуса. Я же порекомендую то, что хорошо работает у меня. Во-первых, как я уже упоминал, у меня имеется 144
только один уровень дерева каталогов. Все мои подкаталоги ответвляются от корневого каталога диска, а дальнейших подкаталогов нет. Когда я создаю дерево каталогов, я спрашиваю себя, для чего подкаталоги мне действительно нужны. Ответ: мне нужны подкаталоги, чтобы следить за моими данными, а не за моими программами. Так что я помещаю все мои программы, включая все программы ДОС и другие программы, которые я написал или купил, в корневой каталог. Там они легко доступны, а также могут обслужить каждый подкаталог, но они не загромождают каталоги, в которых я храню данные. Маршруты к каталогу Если ветвящиеся каталоги с древовидной структурой слишком сложны, вам требуется способ определения и контроля за тем, где вы находитесь. Кроме того, вам требуется способ указания того, какая часть дерева вам нужна. Вам требуется нотация, способ указания положения на дереве. То, как вы (или ДОС) пробираетесь к определенному подкаталогу на диске, называется путем. Путь отслеживает перемещение от корневого каталога диска до некоторой точки ветвящегося дерева каталогов. Описание пути называется маршрутом. Давайте возьмем предыдущий пример, в котором у нас были подкаталоги АА и ВВ, ведущие к файлу по имени МОЙФАЙЛ. Во главе всего находится диск, на котором, конечно же, есть корневой каталог. В корневом каталоге имеется подкаталог с именем АА, который, в свою очередь, содержит подкаталог с именем ВВ. И наконец, в подкаталоге ВВ находится файл МОЙФАЙЛ, к которому мы хотим обратиться. Чтобы найти дорогу к файлу МОЙФАЙЛ, мы должны примерно так описать путь: Начиная с КОРНЕВОГО_КАТАЛОГА,- найти подкаталог по имени АА; затем в подкаталоге АА найти подкаталог по имени ВВ* затем в подкаталоге ВВ найти файл по имени МОЙФАЙЛ. Маршруты можно записать и таким образом, но все длинные сло¬ ва можно заменить короткой и простой обратной косой чертой (\), так что наше словесное описание пути сокращается до следующего: \АА\ВВ\МОЙФАЙЛ Обратите внимание, вам ничего не надо говорить о том, что надо начинать с корневого каталога — это обозначает первая косая черта. Если маршрут начинается с обратной косой черты, то это говорит ДОС: ’’Начни путь с корневого каталога”. Записав маршрут таким образом, мы можем указать ДОС, в каком месте любого дерева 145
каталогов диска мы хотим работать. И наоборот, ДОС может сообщить нам, где мы находимся. Разобравшись с подкаталогами и маршрутами, давайте посмотрим, как создавать и управлять каталогами. Создание каталогов командой MKDIR Для получения новых каталогов мы пользуемся командой создания каталогов, которая вводится с клавиатуры либо как MKDIR, либо как MD. Например, добавление к корневому каталогу каталога LETTERS (ПИСЬМА) делается следующей командой: md letters После того, как каталог создан, он пуст за исключением двух кратких ссылочных записей, единственной точки (.) и двойной точки (..), которые ДОС использует для определения того, где она находится и откуда она пришла. Например, список каталога нашего примера покажет эти записи так: Volume in drive С is NORTON (Том в дисководе С NORTON) Volume Serial Number is 3746-1AF3 (Порядковый номер тома 3746-1AF3) Directory of C:\LETTERS (Каталог C:\LETTERS) .<DIR> 6-25-87 11:25a .. <DIR> 6-25-87 11:25a 2 file(s) 10813440 bytes free (2 файла 10813440 байт свободно) После того, как каталог создан, в него можно помещать файлы (или другие каталоги). Внутри определенного диска или раздела все имена в одном каталоге —• имена файлов или имена подкаталогов — должны быть уникальны в пределах данного каталога, но эти же имена можно использовать в других каталогах. Если вы хотите добавить подкаталог к другому каталогу, включите в вашу команду путь к нему. Например, следующая команда создаст в каталоге LETTERS подкаталог А_М другим способом. Как сделать это, вы узнаете, когда мы перейдем к команде смены каталога: HD \LETTERS\A_H 146
а если вы запросите листинг каталога, ДОС выдаст вам что-то вроде этого: Volume in drive С is NORTON (Том в дисководе С NORTON) Volume Serial Number is 3746-1AF3 (Порядковый номер тома 3746-1AF3) Directory of C:\LETTERS (Каталог C:\LETTERS) <DIR> 6-25-87 11:25a <DIR> 6-25-87 11:25a A_M <DIR> 6-25-87 8 23a 3 file(s) 10809344 bytes free (3 файла 10809344 байт свободно) Удаление каталога командой RMDIR Если вы можете создавать каталоги, вы также должны иметь возможность удалять их. Именно для этого и предназначена команда RMDIR или RD. Эту команду так же легко использовать, как и MKDIR, но чтобы файлы и каталоги не остались бездомными, RMDIR не срабатывает до тех пор, пока каталог не будет пустым. Если вы попытаетесь удалить каталог, содержащий какие-либо файлы или подкаталоги, ДОС выдаст содержательное сообщение: Invalid path, not directory (Неверный путь, не каталог) or directory not empty (или каталог не пуст) Если вы увидите это сообщение, посмотрите (с помощью команды DIR) на файлы в этом каталоге. Если вы хотите сохранить то, что находится там, воспользуйтесь для перемещения файлов в другие каталоги командами COPY и DELETE. Если вы хотите иметь подка¬ талог, дважды подумайте, действительно ли вы хотите удалить каталог. Другое ограничение команды RMDIR заключается в том, что вы не можете' удалить каталог, в котором находитесь, или каталог,находящийся между вами и корневым каталогом. Если бы вы сидели на настоящей ветке настоящего дерева, это правило гласило бы, что не надо*рубить сук, на котором сидищь. Например, если текущим каталогом является \LETTERS\A_M и вы хотите удалить его, то вы сначала должны переместиться в каталог \LETTERS или ”\” (корневой каталог). Если вы действительно попытаетесь удалить текущий каталог, ДОС выдаст сообщение: Attempt to remove current directory 147
(Попытка удалить текущий каталог ) Замечание. Это новое сообщение в DOS 4.x. В более ранних версиях ДОС вы получите то же сообщение о неправильном маршруте, которое вы уже встречали ранее. Смена каталога командой CHDIR Если собираетесь работать с различными файлами, находящимися в подкаталоге, таком как наш пример подкаталога \AA\BB, то ввод перед каждым именем файла \AA\BB будет для вас большим неудобством. Более чем вероятно, что вы когда-нибудь ошибетесь. Чтобы избавить вас от этого неудобства, ДОС следит за тем, что называется текущим каталогом. Если вы обращаетесь к файлу просто по имени, без указания маршрута к нему, ДОС полагает, что этот файл находится в текущем каталоге. Вы можете управлять тем, какой каталог ДОС будет считать текущим. Это делается с помощью команды смены-текущего- каталога CHDIR, которую сокращенно можно задать как CD. Например, чтобы сделать \AA\BB вашим текущим каталогом, надо ввести следующую команду: CHDIR \AA\BB Если вы захотите вернуться в корневой каталог, вам всего-навсего потребуется ввести CHDIR \ так как в соответствии с сокращениями ДОС обратная косая черта означает корневой каталог. И опять, если вы когда-нибудь забудете, в каком каталоге вы находитесь, команда CHDIR без параметров покажет вам текущий каталог. Например, если, находясь в подкаталоге ВВ, вы введете CHDIR, то ДОС сообщит: С:\AA\BB и покажет вам, где вы находитесь. Более того, если вы захотите создать каталог внутри другого каталога, то вы можете сделать это, используя команды CHDIR и MKDIR следующим образом: 148
CHDIR \AA (чтобы сделать подкаталог АА текущим каталогом) И MKDIR NEWDIR чтобы создать подкаталог NEWDIR внутри подкаталога АА. И наконец, чтобы работать было совсем просто, ДОС следит за отдельными текущими каталогами для каждого имеющегося у него дискового устройства. Если у вас есть дисковод С и дисковод D, то для каждого из них можно независимо задать текущий каталог: CHDIR C:\WR1\DIR2 CHDIR D:\D1R3 И теперь, когда бы вы ни обратились к дисководу С, ДОС будет искать файлы в каталоге \DIR1\DIR2. А если вы обратитесь к дисководу D, ДОС будет искать их в каталоге \DIR3 этого диска. Если вы зададите такую команду копирования: COPY С:*.* D: то файлы из каталога \DIR1\DIR2 дисковода С будут скопированы в каталог \DIR3 дисковода D. Никакие другие файлы и никакие другие каталоги не будут затронуты. Поиск ветвлений командой TREE Так как на диске могут находиться многочисленные подкаталоги, ответвляющиеся от корневого каталога, вам требуется способ определения всех ветвей этого дерева. Делает это команда TREE. Команда TREE показывает список всех ветвей дерева каталогов для любого диска. Для того чтобы использовать эту команду, просто напечатайте ’’TREE” и укажите маршрут к тому месту, с которого вы хотите начать. Например, чтобы увидеть все дерево, начинающе¬ еся с корневого каталога, введите tree \ Вы увидите примерно следующее: Directory PATH listing for Volume NORTON Volume Serial Number is 3746-1AF3 (Список маршрутов каталогов для тома NORTON) (Порядковый номер тома 3746-1AF3) 149
С: \ -ACCOUNTS SMALL MEDIUM LARGE -INVOICES CURRENT PAST DUE -LETTERS PERSONAL BUSINESS (СЧЕТА) (МАЛЕНЬКИЕ) (СРЕДНИЕ) (БОЛЬШИЕ) (НАКЛАДНЫЕ) (ТЕКУЩИЕ) (ПРОСРОЧЕННЫЕ) (ПИСЬМА) (ЛИЧНЫЕ) (ДЕЛОВЫЕ) Если вы хотите увидеть только часть дерева, укажите маршрут к каталогу, с которого вы хотите начать. Например, если вы введете tree \accounts то увидите: Volume Serial Number is 3746-1AF3 С:\ACC0UNTS SMALL MEDIUM LARGE Если вы хотите, то в качестве маршрута можете указать определенный диск: tree d:\ Если вы не укажете маршрут, ДОС начнет с текущего каталога дисковода по умолчанию. В команде TREE имеются два переключателя: переключатель /f вместе с именами каталогов укажет также и имена всех файлов, а переключатель /v будет рисовать дерево с помощью обыкновенных символов (+, | и -) вместо специальных символов для рисования линий. Замечание. Команда TREE — это то место, в котором PC-DOS фирмы IBM слегка отличается от MS-DOS. Как я упоминал, в случае PC-DOS, если вы не укажете маршрут, TREE автоматически начнет работу с текущего каталога. В случае MS-DOS, если вы не укажете маршрут, TREE всегда будет начинать с корневого каталога. Приемы указания маршрута Если вы укажете маршрут, начинающийся с косой черты, то этим вы сообщите ДОС, что маршрут начинается с корневого каталога. Но существуют и другие способы указания перемещения по ветвям дерева. Если впереди маршрута не стоит косая 150
черта, то путь начнется прямо там, где вы находитесь — в текущем каталоге. Таким образом, такой маршрут указывает ДОС начать с корневого каталога: \АА\ВВ\МОЙФАЙЛ в то время как этот маршрут указывает ДОС начать с текущего каталога: АА\ВВ\МОЙФАЙЛ Существуют еще два специальных ’’хитрых” имени, помогающие нам перемещаться по ветвям дерева каталогов. Это уже упомянутые выше точка . и двойная точка ... Эти специальные имена используются для обращения к текущему каталогу . и каталогу, называемому родительским каталогом и находящемуся на один уровень выше текущего каталога ... Например, если вы находитесь в каталоге АА и хотите просмотреть список каталога ВВ, то можете ввести: DIR \ВВ вместо DIR \AA\BB С первого взгляда может показаться весьма глупым вводить точку, которая просто обозначает каталог, в котором вы уже находитесь. Зачем надо иметь имя каталога, которое фактически означает: ’’ничего не делай — не перемещайся к другому каталогу”? Причина становится явной, когда вы начинаете обдумывать некоторые сложные способы использования каталогов в командных файлах, которые мы рассматривали в гл. 10 и 11. Если вы можете обозначить каталог в середине маршрута, например так: \КАТАЛОГ\, то вы должны быть в состоянии заменить имя КАТАЛОГ пустышкой. Именно это и делает точка . вот так: \.\. Без точки у вас получится вот что: \\. А эти две косые черты безмерно смутят ДОС. Обозначение родительского каталога, две точки .., используется для указания пути назад от текущего каталога. Давайте вернемся к нашему первому примеру: CHDIR \AA\BB Теперь вы находитесь в каталоге \AA\BB. Но представим себе, что вам надо найти файл MEMO, находящийся в каталоге \АА — родительском по отношению к текущему каталогу. Вы можете указать путь к нему так: . ДМЕМО Применение двух точек .. для указания родительского каталога может быть использовано во всевозможных сложных уловках. Но имейте и виду, что это буду! уловки, а если это так, го каждая использующая их программа будет рискованной и потенциально ведущей к ошибкам. Хорошо знать, что означают две точки, но лучше 151
всего держаться подальше от всего этого дела. В конце концов, если у вас есть сложный маршрут, ведущий и вперед и назад, например такой: .Д..\AA\BB\..\СС\ФАЙЛ то вам придется тщательно прослеживать ваш путь вверх и вниз по дереву каталогов, и очень вероятно, что вы либо неправильно поймете, либо неправильно запомните его. Нет никакого смысла вводить ненужные усложнения. Давайте взглянем на список каталога LETTERS, который мы использовали в начале главы: Volume in drive С is NORTON Volume Serial Number is 3746-1AF3 Directory of C:\LETTERS <DIR> 6-25-87 11:25a .. <DIR> 6-25-87 11:25a 2 file(s) 10813440 bytes free (2 файла 10813440 байт свободно) Теперь вы понимаете, почему в каждом новом каталоге автоматически будет по крайней мере две записи: текущий каталог (.) и родительский каталог ... Маршруты, программы и данные Есть еще одна очень интересная вещк касающаяся перемещений по ветвям дерева каталогов, и это то, как мы находим программы и как мы находим данные. Когда программы и данные хранятся на диске, они не отличаются друг от друга — это просто дисковые файлы, содержащие один или другой вид информации. Но для поиска программ ДОС все же использует одни методы, а для поиска данных — другие. Сначала это обескураживает, но на все имеются веские основания, и это оказывается очень удобным. Когда вы указываете ДОС найти файл данных, она ищет его только в одном месте — в текущем каталоге. (Если с именем файла вы укажете и маршрут, ДОС будет искать файл не в текущем каталоге, а по указанному маршруту. Но все равно, она будет искать файл только в одном месте.) Это верно и при указании для поиска определенного дисковода, и при использовании дисковода по умолчанию. Каждый дисковод имеет свой текущий каталог (которым, если BbivHe сменили каталог командой CHDIR, является корневой), что также верно независимо от того, используете ли вы для обращения к файлу команду из состава ДОС, такую как COPY, или используемая вами программа просит ДОС найти ей файл данных. Если ДОС попросили найти файл данных, то она ищет его только в одном каталоге — текущем каталоге или каталоге, указанном в маршруте перед именем файла. Для программ зто несколько не так. Когда вы даете ДОС команду, вы указываете ей найти программу с указанным именем, а затем исполнить ее. Программа команды 152
может быть встроенной командой ДОС, что мы уже обсуждали, а может быть внеш¬ ней, что означает, что программа, выполняющая эту команду, находится на диске. Когда ДОС для выполнения команды начинает искать программный файл, она •мотрит не только в текущем каталоге. Вместо этого, если ДОС не находит ее в те¬ кущем каталоге, она начнет искать ее в таком количестве мест, какое вы ей зададите. Как вы задаете ДОС проделать этот расширенный поиск программных файлов ко¬ манд? Это делается с помощью команды PATH, которую мы объясним в следующей главе. Команда PROMPT Сама по себе ДОС будет выводить очень простую подсказку, имя текущего дисковода, за которым будет идти символ >. Например: С> Однако используя команду PROMPT, вы можете изменить подсказку по своему вкусу. Команду легко использовать — просто укажите подсказку, которую вы желаете. Например, для того, чтобы изменить подсказку на "Привет”, введите: prompt Привет Конечно, от подсказки типа "Привет” помощи мало. Команда PROMPT становится удобной, когда вы используете некоторые из ее встроенных возможностей. Чтобы сделать это, надо использовать специальные двухсимвольные коды, каждый из которых начинается с $. Ниже приведены наиболее полезные из этих кодов (в вашем руководстве по ДОС приведен полный список): Таблица 15-1. Коды подсказок $d дата $д символ больше чем (">") $n (name имя) дисковод по умолчанию $р (path путь) дисковод по умолчанию и текущий каталог $t время $v номер используемой версии ДОС $_ начать новую строку Вот несколько примеров: 1. Чтобы выводился дисковод по умолчанию и символ >, введите: prompt $n$g Подсказка будет выглядеть так: с> 2. Чтобы выводился дисковод по умолчанию и текущий каталог, введите: prompt $p$g Если, например, вы находитесь в каталоге \LETTERS\PERSONAL, подсказка будет выглядеть так: С.\LETTERS\PERSONAL> 153
Вот искусственная подсказка, которая может помочь, когда вы обучаете кого-нибудь работать с ДОС: prompt $_Текущее время $!$_Сегодня $d$_Bw используете $v$_MapujpyT $p$g Попробуйте эту подсказку сами. Обратите внимание на то, как $ в нескольких местах использовал $_ для разбивания подсказки на несколько строк. $_ в самом начале отделяет подсказку от того, что могло быть выведено на экран перед подсказкой. Настоящая подсказка выглядит так: Текущее время 11:24 06:23 Сегодня Fri 12-21-1992 Вы используете IBM DOS version 4 00 Маршрут C:\LETTERS\PERSONAL> Как я упоминал, пока вы ничего специально не зададите ДОС, она выводит простую подсказку — дисковод по умолчанию, за которым идет символ больше-чем. Другими словами, $n$g. Многие считают подсказку $p$g наилучшей. И действительно, когда вы устанавливаете ДОС, программа SELECT автоматически помещает в ваш файл AUTOEXEC.BAT (командный файл, который автоматически исполняется каждый раз при запуске ДОС) команду: prompt $р$д Таким образом, во многих системах уже задана эта подсказка даже без участия пользователей и без их понимания команды PROMPT. Если вы используете более старую версию ДОС (до 4.x), где нет сложной программы установки, вам придется самому поместить эту команду в файл AUTOEXEC.BAT. Одно последнее замечание: если вы введете команду PROMPT саму по себе: prompt ДОС изменит подсказку обратно на $n$g. Это удобно, если вы экспериментируете и каким-то образом создали неработоспособную подсказку, которую хотите удалить. 154
Глава 16 ОРГАНИЗАЦИЯ ЖЕСТКОГО ДИСКА На вашем жестком диске будет находиться много файлов — вероятно, даже несколько тысяч. Влияние организации ваших файлов на возможность ежедневного управления таким большим количеством данных будет огромным. Более того, хорошая организация облегчит введение вами системы резервирования файлов. Я обещаю вам: однажды ваш диск испортится. Это не вопрос о том, произойдет ли это. Это вопрос о том, когда это произойдет. Не будьте зависимыми от специальных служебных программ — даже моего пакета Norton Utilities. Это не защитит вас при отсутствии организации и планирования. Ваша единственная надежная защита от выхода аппаратуры из строя — хорошо организованная структура каталогов и частое создание резервных копий командой BACKUP. В данной главе мы рассмотрим различные способы организации жесткого диска. Затем мы узнаем о командах, которые мы используем для того, чтобы ДОС знала об организации диска и, когда это ей надо, могла бы найти нужные ей файлы. Зачем организовывать жесткий диск По сути дела, здесь существует проблема: наш мозг может оперировать с задачами ограниченной сложности. И действительно, частью человеческого состояния является продолжающаяся борьба за то, чтобы избавить человеческий мозг от рутинной нагрузки. В более старых компьютерах мы использовали исключительно дискеты, а дискеты могут хранить только малое количество данных. Не часто возникали проблемы, связанные с большим числом файлов на одной дискете. В настоящее время стало естественным разбиение файлов на группы и использование для каждой группы отдельной дискеты. Например, вы можете хранить каждую программу и связанные с ней файлы на отдельной дискете. Вы можете также хранить отдельные наборы дискет для различных типов данных: электронные таблицы в одном наборе, документы в другом и т.д. С появлением жестких дисков все радикально изменилось. Основное преимущество использования большого жесткого диска заключается в том, что все наши файлы доступны все время без необходимости постоянно менять дискеты. Однако то, что на одном диске находится очень много файлов, требует от нас применения некоторой организации. Очевидно, не¬ возможно использовать единственный каталог, содержащий тысячи файлов. Возникает необходимость в разделении пространства диска на логически осмысленные подкаталоги, т.е. мы должны разработать план такой структуры каталогов, с которой нам удобно работать. У такой системы два преимущества: во-первых, ..^гда нам надо, мы можем найти свои файлы; во-вторых, мы можем найти файлы, 155
которые нам не нужны, если они устарели. Это позволяет нам уничтожать файлы, которыми мы. больше не пользуемся, освобождая пространство и сохраняя наше дерево каталогов очищенным и здоровым. Рекомендации по организации структуры дерева Как мы уже знаем, подкаталоги жесткого диска образуют древовидную структуру, выходящую из единственного корневого каталога. Вопрос в следующем: как много нам надо подкаталогов и куда их надо поместить? Так как потребности у всех различные, то жестких правил нет. Но есть две важные рекомендации, которых надо придерживаться: 1. Каталог должен содержать либо файлы, либо другие катало¬ ги, но не то и другое вместе. Другими словами, не смешивайте вместе файлы и каталоги. Это единственное правило сделает очень много для того, чтобы все было просто и управляемо. Но в этом правиле должно быть одно исключение: корневой каталог, который содержит все ваши подкаталоги первого уровня, должен также содержать и небольшое число файлов. Это объясняется в следующем разделе. 2. Храните ваши программы отдельно от ваших файлов. Например, храните программу текстового процессора отдельно от документов. Отделение программ от данных имеет два важных преимущества: во-первых, так как после установки программы уже не меняются, для них не надо делать более одной резервной копии до тех пор, пока вы не установите новые программы. Во-вторых, файлы данных надо копировать регулярно, так как данные изменяются при каждом сеансе работы. В настоящее время программы могут быть очень большими, и резервное копирование занимает много времени. Сконцентрировав ваши усилия по копированию там, где это надо — на ваших данных, вы сбережете значительное время. А -все, что сберегает время, позволяет надеяться, что вы действительно будете делать резервные копии. Кроме того, время от времени вам потребуется установить новые версии ваших программ. Хранение их отдельно от данных позволит обновлять ваше программное обеспечение без ’’перетряски” рабочих областей. Какие файлы должны быть в корневом каталоге Как я упомянул в предыдущем разделе, некоторые файлы должны находиться в корневом каталоге — в действительности этих файлов пять. Точнее, эти файлы должны быть в корневом каталоге того диска, с которого загружается ДОС. Если у вас больше одного 156
раздела жесткого диска, эти файлы должны быть только на диске С. При работе со всеми остальными дисководами вы должны следовать вышеизложенному правилу и хранить в корневом каталоге только подкаталоги. Первые три файла — это файлы ДОС IBMBIO.COM, IBMDOS.COM и COMMAND.COM. (Если у вас установлена MS- DOS, этими файлами будут IO.SYS, MSDOS.SYS и COMMAND.COM.) Как я объяснял, эти три файла содержат основную часть ДОС и помещаются в корневой каталог программой FORMAT, когда вы используете переключатель /s. IBMBIO.COM и IBMDOS.COM — скрытые файлы. Это означает что они не появляются в списке каталога и вы не можете случайно стереть или изменить их. Единственный способ увидеть их с помощью команды ДОС — использование команды CHKDSK с переключателем /v. В этом случае CHKDSK покажет все файлы, которые обнаружит на диске. COMMAND.COM не является скрытым и будет виден в списке каталога. Вообще, вы можете хранить COMMAND.COM и в другом месте, но для этого нужно сделать специальные установки, но я не рекомендую делать этого. Другие два файла AUTOEXEC.BAT и CONFIG.SYS должны быть в корневом каталоге вашего загрузочного диска. AUTOEXEC.BAT — специальный командный файл, который ДОС исполняет каждый раз, когда происходит загрузка. CONFIG.SYS — специальный файл конфигурации, который говорит ДОС о том, как вы хотите настроить вашу систему. Вскоре мы детально обсудим эти два файла. Когда вы устанавливаете ДОС, программа SELECT автоматически создает файлы AUTOEXEC.BAT и CONFIG.SYS и помещает их в корневой каталог вашего загрузочного диска. Вы, конечно же, будете время от времени изменять эти файлы в соответствии с вашими потребностями. Только убедитесь в том, что они остаются в корневом каталоге, иначе ДОС не сможет найти их. Кроме этих пяти специальных файлов (два из которых скрытые) в вашем корневом каталоге могут быть и другие, которые помещают туда различные программы. Например, некоторым из программ пакета Norton Utilities требуется хранить техническую информацию в файлах, которые должны быть в корневом каталоге. Однако в интересах хорошей организации стремитесь содержать ваш корневой каталог настолько пустым от файлов, насколько возможно. Куда поместить программы Мы уже обсудили две рекомендации по организации вашего жесткого диска: 157
1. Каталог должен содержать либо файлы, либо другие каталоги, но не то и другое. 2. Храните ваши программы отдельно от ваших данных. Вопрос о том, где хранить программы, подводит нас к третьей рекомендации: 3. Храните каждую программу в отдельном каталоге. Для каждой программы используйте подкаталог, названный по имени программы. Например, когда вы устанавливаете пакет Norton Utilities, поместите программы в каталог по имени \NORTON. Существуют два способа, которыми вы можете устанавливать новое программное обеспечение: во-первых, большинство пакетов поступает с программами установки. Все, что вам требуется сделать, это запустить данную программу и следовать инструкциям. В половине случаев установка определяется командным файлом с именем типа* INSTALL.BAT (УСТАНОВКА). Обычно вы вставляете первую дискету программного продукта в дисковод А, переключаетесь на дисковод А: а: а затем запускаете установку вводом instaI I (Конечно, у каждой программы своя собственная установка, и вам для уточнения деталей придется справиться в руководстве.) Суть заключается в том, что в процессе работы вам придется указать, где вы хотите установить программу. Как я упоминал, наилучший способ — это поместить ее в отдельный каталог, обычно новый, и программа установки сама создаст его. Второй способ установки программного обеспечения — это самому создать новый каталог, а затем скопировать в него с помощью команды СОРУ или XCOPY все программные файлы. Обычно вы делаете это только в том случае, если программное обеспечение поступает без собственной программы установки. Вот пример, опять использующий пакет Norton Utilities, который может быть установлен любым из этих способов. Все, что вам надо сделать — это создать каталог для программ: md \norton а затем, один за одним, скопировать все содержимое каждого программного диска в новый каталог, введя сору а * * c:\norton Некоторые важные каталоги программ Кроме того, что вам надо иметь отдельные каталоги для каждой программы, вам также надо создать некоторые стандартные каталоги. Во-первых, вам надо создать каталог \DOS, в котором будут находиться все файлы, образующие ДОС. Программа установки ДОС сама создаст каталог \DOS. Если вы используете старую вер¬ 158
сию ДОС, в которой нет программы автоматической установки, вам придется самим создать каталог \DOS и скопировать в него файлы. Во-вторых, следует создать каталог \BATCH, в котором будут находиться все ваши командные файлы. Это не те командные файлы, которые могут поступить с вашим программным обеспечением, а те файлы, которые вы можете написать сами. В-третьих, создайте каталог по имени \UTILITY, который будет содержать маленькие разнообразные программы. Например, вы может сами написать программу для фиксирования времени телефонных звонков, или ваш приятель может скопировать вам общедоступную программу, которую он /юлучил из компьютерной сети. Когда вы не знаете точно, куда стоит поместить программу, поместите ее в каталог \UTILITY. Ниже приведена часть древовидной структуры, иллюстрирующая то, о чем я говорил. Пример взят из компьютера, использующего для обработки текстов программу DisplayWrite, для электронных таблиц — Microsoft Excel, для работы с базами данных — пакет dBASE фирмы Ashton-Tate, и Norton Utilities для обслуживания дисков. BATCH DBASE DOS DW EXCEL NORTON UTILITY Указание на программные файлы — команда PATH Существуют два способа, которыми можно указать ДОС, где надо искать программные файлы. Во-первых, когда бы вы ни называли программу, перед ее именем можно указать маршрут или же надо быть уверенным в том, что программа находится в текущем каталоге. Допустим, например, что вы хотите запустить программу DisplayWrite версии 4. Имя программы DW4PG.COM, а находится она в каталоге \DW. Вы можете либо указать маршрут: с:\dw\dw4pg либо сменить перед запуском программы каталбг: с: cd \dw dw4pg Для большинства программ вы будете использовать варианты этого метода, причем сами команды будут находиться в командном файле. Ниже мы детально рассмотрим это, и я покажу вам, как создавать такие командные файлы. Другой способ указать ДОС, где находятся ваши программы, — это использовать команду PATH. Это можно сделать тремя 159
способами. Во-первых, вы можете указать список маршрутов к каталогам, разделенных точкой с запятой. Например: path с:\batch;с:\dos;с■\norton,с.\utiIity Обратите внимание на то, что в этой строке нет ни одного пробела кроме пробела, следующего за словом ’’path”. Такой список каталогов называется маршрутом поиска. Эта команда используется для того, чтобы указать ДОС, где искать исполняемые программы, отсутствующие в текущем каталоге. Допустим, например, что вы хотите запустить программу быстрого восстановления (QU.EXE), находящуюся в каталоге \NORTON. Что же случится, если вы введете qu Во-первых, ДОС проверит текущий каталог. Если программы там нет, ДОС в указанном порядке проверяет каждый каталог маршрута поиска. В нашем случае ДОС найдет программу в третьем каталоге — C:\NORTON. Если ДОС нигде не найдет эту программу, она выдаст сообщение об ошибке: Bad command or file name (Плохая команда или имя файла) Когда вы используете команду PATH , будьте внимательны и не делайте ошибок. ДОС не проверяет маршрут поиска до тех пор, пока действительно не воспользуется им в первый раз. Если вы указали неправильное имя диска, то увидите сообщение: Invalid drive in search path (Недопустимый диск в маршруте поиска) Но если вы допустите простую опечатку или укажете несуществующий каталог, ДОС вам ничего не скажет, и вам может понадобиться некоторое время, чтобы понять, почему ваши програм¬ мы не находятся. Второй способ использования команды PATH — это ввести имя команды само по себе для проверки текущего состояния маршрута поиска: path Дос откликнется примерно так: РАТН=С:\BATCH;С:\DOS.С \NORTON;С \U ГILITY И наконец, если вы введете имя команды только с точкой с запятой, ДОС сотрет маршрут поиска: path; Теперь, если вы введете: path ДОС сообщит: No Path (Нет маршрута) Теперь ДОС будет искать программы только в текущем каталоге. 160
Очевидно, команда PATH относится к такого вида командам, которые вам не хотелось бы вводить каждый раз, когда вы начинаете работу. С одной стороны, в такой команде очень легко допустить опечатку. Наилучшим решением было бы определиться с маршрутом поиска, а затем поместить соответствующую команду PATH в ваш файл AUTOEXEC.BAT, где она будет исполняться каждый раз при загрузке ДОС. В действительности, программа установки ДОС создает такую команду и помещает ее в файл AUTOEXEC.BAT. Это простая команда PATH, указывающая только на каталог с ДОС: path c:\dos (В конце концов, программе установки неоткуда узнать, какое программное обеспечение вы будете использовать.) Поиск исполняемых программ — файлов типа COM, EXE и ВАТ Как я объяснял, ДОС может исполнять программы (имеющие расширение СОМ и EXE) и командные файлы (которые имеют расширение ВАТ). Что же случится, если вы введете команду, а ДОС обнаружит более одного исполняемого файла с таким именем? Например, что будет, если у вас в текущем каталоге имеются файлы TEST.COM, TEST.EXE и TEST.BAT, и вы введете test Правило ДОС таково: сначала она ищет файлы СОМ, затем EXE, а затем ВАТ. В нашем случае будет исполнен файл TEST.COM, а остальные два файла будут проигнорированы. Если вы хотите, то можете обойти эту приоритетную схему, указав расширение. Например: test,bat В этом случае ДОС напрямую исполнит TEST.BAT. Однако задание расширений весьма неуклюже и используется редко. На практике единственным случаем, когда вы сталкиваетесь с этой проблемой, является написание командного файла, имеющего то же имя, что и программа. Например, вы можете захотеть создать командный файл, имеющий имя WORD.BAT, запускающий программу WORD.COM. Решить эту проблему можно, поместив все ваши командные файлы в отдельный каталог и указав имя этого каталога (например, \BATCH) в самом начале маршрута поиска. Это означает, что когда бы вы ни вводили команду, отсутствующую в текущем каталоге, ДОС сначала будет проверять командные файлы. Куда помещать файлы данных Я уже говорил о том, что программные файлы лучше всего помещать в отдельные каталоги. У вас будут отдельные каталоги для каждой программы, каталог с ДОС, 6 Зак 1807 161
каталог с командными файлами и смешанный каталог \UTIUTY. Но куда надо помещать файлы с данными? Из вышеприведенного обсуждения вы знаете, что их надо хранить отдельно от программ. Наилучший способ — это начать с одного каталога данных для каждой программы и расширять его по мере необходимости. Для примера давайте рассмотрим те же программы, которые мы обсуждали в предыдущем разделе — DisplayWrite, Excel и dBASE. Для хранения ваших файлов данных вы создадите три каталога с именами DW, EXCEL и DBASE. Но это, однако, создаст проблему: мы уже использовали эти имена для наших каталогов с программами. Хорошим решением будет собрать вместе все каталоги данных и поместить их в один каталог под названием \DATA (ДАННЫЕ). Таким образом, часть данных нашей древовидной структуры будет выглядеть так: 1 DATA -DBASE -DW -EXCEL а все дерево будет выглядеть так: -BATCH -DBASE -DOS -DW -EXCEL -NORTON -UTILITY -DATA -DBASE -DW -EXCEL Когда в одном каталоге данных окажется слишком много файлов, просто разделите его на один или несколько подкаталогов. Пусть у вас, например, всего несколько файлов dBASE, умеренное количество электронных таблиц Excel и много документов DisplayWrite. Вы можете хранить файлы Excel в двух подкаталогах, FAY (ПЛАТЕЖИ) и RECEIVE (ПОСТУПЛЕНИЯ), а файлы DisplayWrite — в трех подкаталогах, LETTERS (ПИСЬМА), MEMOS (ЗАМЕТКИ) и REPORTS (ОТЧЕТЫ): -BATCH -DBASE -DOS -DW -EXCEL -NORTON -UTILITY -DATA DBASE >W LETTERS MEMOS REPORTS EXCEL I——PAY 1 RECEIVE -uw 1 rR 162
Сообщение ДОС о нахождении файлов данных — команда APPEND Как вы знаете, команда PATH сообщает ДОС, где искать файлы, которых она не может найти в текущем каталоге. Но команда PATH работает только для исполняемых файлов — файлов с расширениями СОМ, ЕХЕ или ВАТ. Команда APPEND выполняет ту же самую функцию для всех файлов. Идея заключается в том, что ДОС использует команду PATH для поиска программы, которую надо исполнить, а команду APPEND для поиска файлов для всех других целей. Основные формы команды APPEND аналогичны формам команды PATH: для задания списка поиска команды APPEND надо ввести имя команды, за которым необходимо указать список маршрутов каталогов, разделенных точкой с запятой. Например: append c:\dw\letters;c:\dw\memos;с:\dw\reports Когда у вас есть программа, которой требуется неисполняемый файл, ДОС сначала проверяет ваш текущий каталог. Если файла в нем нет, ДОС начнет проверять каждый каталог из списка поиска команды APPEND в том порядке, в каком они указаны. В этом примере давайте допустим, что наша программа ищет файл по имени TEST.DOC. Если он не находится в текущем каталоге, ДОС будет искать: С:\DW\LETTERS\TEST.DOC С:\DW\MEMOS\TEST.DOC С:\DW\REPORTS\TEST.DOC и в таком порядке. Чтобы проверить, что находится в списке поиска команды APPEND, введите команду без параметров: append ДОС выведет список: APPEND=C:\DW\LETTERS;С:\DW\MEMOS;С:\DW\REPORTS Чтобы удалить список поиска команды APPEND, введите команду с единственной точкой с запятой: append; Если вы сейчас запросите список, ДОС выдаст: 6* 163
No Append (Нет присоединения) APPEND — это более сложная команда, чем PATH, и у нее есть несколько различных переключателей, с помощью которых можно заставить эту команду работать различным образом. Однако эти переключатели не описаны в данной книге. Детали вы можете посмотреть в своем руководстве по ДОС. Существуют два обычных способа использования команды APPEND. Один позволяет программе найти свои системные файлы, а второй позволяет программе найти ваши файлы данных. Вот два примера. Во-первых, предположим, что программные файлы пакета DisplayWrite находятся в каталоге \DW. Вы запускаете программу из другого каталога. Для того чтобы DisplayWrite мог найти свои программные файлы, перед запуском программы вы задаете команду: append \dw Во-вторых, ваши документы, написанные в DisplayWrite, находятся в каталоге \DOCUMENT. Вы можете работать в другом каталоге, но все же хотите, чтобы программа могла найти ваши документы. В этом случае, перед тем как запустить программу, вы задаете следующую команду: append \document Если вы хотите соединить оба списка поиска, команда должна быть такой: append \document;\dw На практике вы обычно будете встраивать команду APPEND в тот командный файл, задачей которого является запуск определенной программы. Более детально мы рассмотрим это ниже в данной главе. Но сначала давайте потратим несколько минут на обсуждение общей стратегии организации жесткого диска. Общая стратегия организации жесткого диска В этом разделе мы обсудим три общие стратегии организации вашего жесткого диска. Каждая из них использует те рекомендации, которые мы уже обсудили: хранить программы и данные в отдельных каталогах, и не смешивать вместе файлы и подкаталоги в одном каталоге. Каждая из стратегий имеет свои преимущества и 164
недостатки. Вы сами должны решить, какая их них подходит вам больше. Первая стратегия — это та, которую я уже описал. Храните каждую программу в своем собственном каталоге, а файлы данных поместите в свой собственный подкаталог каталога \DATA. Если взять пример из начала этой главы, то дерево будет выглядеть так: BATCH DBASE DOS DW EXCEL NORTON UTILITY DATA DBASE DW I LETTERS MEMOS 1 REPORTS EXCEL I—- PAY 1 RECEIVE Второй способ организации аналогичен первому. Единственная разница в том, что каталоги программ теперь собраны вместе в родительском каталоге \SYSTEM. При этой структуре дерево будет выглядеть так: ■SYSTEM BATCH DBASE DOS DW EXCEL NORTON UTILITY DW -DATA DBASE DW I- LETTERS MEMOS 1 REPORTS EXCEL t PAY 1 RECEIVE Эта стратегия имеет то преимущество, что изолирует программы в отдельной части дерева, что облегчает управление системой. Например, чтобы сохранить на дискетах все программы, вы можете указать вашей программе скопировать все, что находится в каталоге \SYSTEM, а чтобы сохранить все ваши данные, вы можете скопировать все из каталога \DATA. 165
Недостаток же в том, что маршруты поиска здесь длиннее. Например, маршрут, ведущий к файлам ДОС, — это \SYSTEM\DOS, а не просто \DOS. Третья стратегия соединяет в себе преимущества первых двух: изоляция программ от данных в соединении с короткими маршрутами. До сих пор мы применяли древовидные структуры, полностью находящиеся на одном диске, дисководе С. Третья стратегия включает в себя разбиение вашего жесткого диска на два раздела, дисководы С и D. Дисковод С предназначается для программ, а дисковод D предназначается для файлов данных. Для того чтобы сделать это, вам придется с помощью программы FDISK разбить ваш диск на два раздела. Вы можете сделать это при установке ДОС, а можете изменить то, что у вас уже есть. Если будете изменять ваш диск, убедитесь, что перед этим вы сохранили все ваши файлы: изменение разделов уничтожит все ваши данные. Использование для программ и данных отдельных разделов содержит значительные преимущества, вытекающие из того, что организация в этом случае проще. Однако здесь имеется и недостаток: вам заранее придется указать программе FDISK, какое пространство отвести под программы (дисковод С, ваш первичный диск), а какое пространство отвести под данные (дисковод D, ваш вторичный диск). Если вы являетесь опытным пользователем компьютера, просмотрите ваш диск и определите, какое пространство отведено каждой цели. Если вы не уверены, отдайте две трети пространства диска под программы и одну треть под данные. После того как вы воспользовались программой FDISK и создали два раздела, а также отформатировали их программой FORMAT (с переключателем /s для дисковода С), на каждом из них вы можете создать простые древовидные структуры. Программный диск — дисковод С: BATCH DBASE DOS EXCEL -NORTON UTILITY DW Диск данных — дисковод D: DBASE DW ■LETTERS -MEMOS -REPORTS EXCEL I——PAY I REHI -RECEIVE 166
Установка системы более чем для одного пользователя Если вашим компьютером будет пользоваться более одного человека, хорошо было бы дать каждому из них свои собственные наборы каталогов. Все, что вам надо сделать, это создать для каждого человека по каталогу, в которые вы поместите все их каталоги данных. Ниже приведен пример системы, которой будут пользоваться шесть различных пользователей. Некоторые из них будут применять все доступные программы, а другие — только одну или две. Часть дерева, отведенная для данных, выглядит так: -DATA -DIANNE ' DW -ERIC 1 DBASE -HARLEY DBASE DW -EXCEL -KEVIN LETTERS MEMOS REPORTS PAY RECEIVE -DBASt -EXCEL -PETER PROJECTS RESEARCH PROJECTS RESEARCH -DBASE 1 EXCEL -SCOTT 1 DBASE (ПРОЕКТЫ) (ИССЛЕДОВАНИЯ) Как показывает этот пример, вы можете сделать часть дерева каждого пользователя такой простой или сложной, какой требуется. Удобно создать командные файлы, названные по имени каждого пользователя. Например, HARLEY.BAT. Корда кто-нибудь начинает работу, то просто вводит свое имя. Это вызывает персональный командный файл, который, кроме всего прочего, может обращаться сразу к каталогу пользователя. В этом примере HARLEY.BAT может выполнить команду cd \data\harley 167
Тот же самый прием можно использовать для различных подразделений большой конторы. Например, вы можете иметь различные части дерева для бухгалтерии, перевозок и т.д. Использование командных файлов для запуска программ Наилучшим способом запуска ваших программ является использование командных файлов. Это позволяет вам приспособить окружение к каждой программе. В этом разделе я объясню, как использовать в таких командных файлах команду APPEND. Типичный командный файл делает следующее: 1. Устанавливает маршрут поиска команды APPEND на ката¬ лог программы. 2. Перемещает вас к вашему каталогу данных. 3. Запускает программу. 4. Удаляет маршрут поиска команды APPEND. Ниже приведены три примера, по одному для каждой из трех стратегий структуры дерева, описанных в предыдущем разделе. На примерах показан DW.BAT, командный файл, используемый для запуска текстового процессора DisplayWrite. Программой DisplayWrite является DW4PG.COM, находящаяся в программном каталоге DW. Данные находятся в \DATA\DW\MEMOS. Во-первых, вот как выглядит DW.BAT для первой стратегии: . * :* DW.BAT командный файл для запуска DisplayWrite . * ©echo off :* задать маршрут поиска APPEND append c:\dw :* переместиться к каталогу данные с. cd \data\dw\memos :* запустить программу с:\dw\dw4pg :* удалить маршрут поиска APPEND append; Я хочу, чтобы вы обратили внимание на нечто важное: впереди всех маршрутов я поставил с:, а также перед сменой каталога данных явно перешел на диск с:. Причина заключается в том, что 168
этот командный файл должен работать при любых обстоятельствах. В частности, нельзя полагать, что дисковод С всегда будет дисководом по умолчанию. Вы, например, могли перейти на дисковод А и работать с дискетой. Вот другая версия DW.BAT, соответствующая второй стратегии структуры дерева. Единственное отличие заключается в том, что все каталоги программ находятся в \SYSTEM: . * :* DW.BAT командный файл для запуска DisplayWrite . * ©echo off :* задать маршрут поиска APPEND append c:\system\dw :* переместиться к каталогу данных с: cd \data\dw\memos :* запустить программу с:\system\dw\dw4pg :* удалить маршрут поиска APPEND append; . * Третья версия DW.BAT показывает, насколько все упрощается в третьей стратегии структуры дерева, а именно, при различных раз¬ делах диска для программ и данных. Отметьте, как в этом случае для нахождения каталога данных мы должны перейти на дисковод D: . * :* DW.BAT командный файл для запуска DisplayWrite . * @echo off :* задать маршрут поиска APPEND append c:\dw :* переместиться к каталогу данных d: cd \dw\memos 169
:* запустить программу c:\dw\dw4pg :* удалить маршрут поиска APPEND append; . * • Должен вас предупредить о том, что ваши конкретные программные пакеты могут иметь запросы, требующие специальной обработки. Более того, когда вы звоните в компанию-разработчик программного продукта за консультациями, вы обнаружите, что многие из этих консультантов не понимают, как использовать команду APPEND. Наилучший совет, какой я могу вам дать, это внимательнее читать руководство по вашему программному обеспечению. Однако даже руководство может быть не в состоянии помочь вам. Компании, разрабатывающие программное обеспечение, редко предлагают использовать команду APPEND, так как они осознают, что многие пользователи до сих пор имеют старые версии ДОС, не поддерживающие эту команду. Использование APPEND для указания на файлы данных До сих пор мы использовали команду APPEND для того, чтобы показать ДОС, где надо искать неисполняемые программные файлы. Но как я упомянул ранее, вы можете также использовать APPEND, чтобы показать ДОС, где искать ваши файлы данных. Допустим, например, что вы используете DisplayWrite и у вас есть три каталога файлов данных — LETTERS, MEMOS и REPORTS. Все эти каталоги размещаются в каталоге данных DW. Вы хотите иметь возможность одновременно работать с файлами во всех трех каталогах без необходимости менять каталоги в среде DisplayWrite. Чтобы сделать это, надо добавить все эти три маршрута к команде APPEND. Вот как будет выглядеть командный файл DW.BAT после внесения соответствующих изменений: DW.BAT командный файл для запуска DisplayWrite ©echo off задать маршрут поиска APPEND append d:\dw\letters:d:\dw\memos;d:\dw\reports;с:\dw переместиться к каталогу данных d: 170
cd \dw :* запустить программу с:\dw\dw4pg :* удалить маршрут поиска APPEND append; . * У этого примера имеются две особенности: во-первых, маршрут поиска команды APPEND включает в себя три каталога данных, а идут они перед программным каталогом. И вот почему: вспомните, что ДОС будет просматривать каталоги в.указанном вами порядке. Некоторые программы поступают с примерами файлов данных. Если в каталоге C:\DW такие файлы имеются, и некоторые из них окажутся с теми же именами, что и ваши файлы, а C:\DW будет стоять э списке первой, то получится путаница. Каким бы невероятным это ни казалось, подумайте о том, сколько бы времени вам понадобилось для устранения этой проблемы, если бы она возникла. Второе изменение в командном файле заключается в том, что теперь перед началом работы мы перемещаемся в родительский каталог (D:\DW) наших каталогов данных. В большинстве* случаев запись в маршруте поиска команды APPEND нескольких каталогов работает хорошо, но вы должны быть внимательны и не должны использовать одно и то же имя файла более чем в одном каталоге. Вы должны также аккуратно проверить каждую конкретную программу, чтобы убедиться в том, что она использует маршрут поиска команды APPEND так, как вы предполагаете. В частности, вы должны убедиться, что программа помещает вновь созданные файлы в нужный каталог. Наилучший способ использования команды PATH Как я объяснял ранее, команда PATH указывает ДОС, где искать исполняемые файлы, которые находятся не в текущем каталоге. Наилучшим способом использования этой команды является размещение ее в вашем файле AUTOEXEC.BAT, где она будет исполняться каждый раз при запуске ДОС. Более того, вы должны указать только каталоги, содержащие программы общего назначения — те программы, доступ к которым вы хотите иметь в любое время. В общем, ваша команда должна выглядеть так же, как в примере в начале этой главы: РАТН=С:\BATCH;С:\DOS;С:\NORTON;С:\UTILITY 171
Каталог командных файлов, за ним каталог ДОС, затем каталог с утилитами. Некоторые руководства по программному обеспечению и программы установки предлагают добавить к маршруту поиска программный каталог, так чтобы вы могли исполнять программу из любого каталога. Это не лучшая идея. Оптимально будет иметь короткий маршрут поиска, а все ваши прикладные программы запускать из командных файлов. Как организовывать жесткий диск Чтобы обобщить все сказанное, ниже приведен краткий обзор того, что мы рассмотрели в этой главе. Когда вы действительно начнете работать с вашей собственной системой, пользуйтесь примерами, которые я дал вам в качестве прототипов. Шаги организации жесткого диска: 1. Выберите одну из трех стратегий организации древовидной структуры. 2. Если вы решите использовать отдельные диски для программ и данных, скопируйте в^е ваши файлы, а затем разбейте ваш диск на соответствующие разделы. 3. Создайте отдельные программные каталогй для командных файлов, ДОС, утилит и любых программ общего применения. 4. Создайте отдельный программный каталог для каждого программного продукта, который вы намерены использовать. 5. Создайте отдельные каталоги данных, по крайней мере, по одному для каждой программы. 6. Установите каждый программный продукт в его собственный каталог. 7. Поместите в ваш файл AUTOEXEC.BAT команду PATH. 8. Создайте командный файл для каждой программы, которую вы будете использовать. Поместите эти файлы в каталог командных файлов. 172
Глава 17 КОМАНДЫ ПОВЫШЕННОГО УРОВНЯ для РАБОТЫ С ДИСКАМИ В повседневной работе с дисками, особенно с жесткими и каталогами, по всей видимости, не требуется большего, чем команды ДОС, с которыми вы уже знакомы. Как мне кажется, в 80-90% для работы с дисками используются четыре основные команды — FORMAT, COPY. DIR и DELETE. Если у вас имеется жесткий диск, то вам придется расширить свой "репертуар” командами из предыдущей главы, в частности, APPEND, MKDIR, CHDIR, RMDIR и PATH. Но ДОС может делать больше, много больше. Поэтому давайте закончим в этой главе обсуждение работы с дисками рассмотрением дополнительных возможностей ДОС по их обслуживанию. Начнем с изучения возможности проверки в ДОС. Двойная проверка дисковых операций — команда VERIFY При записи информации на диск ДОС получает от дисковода подтверждение о том, что все прошло хорошо. В большинстве случаев это действительно так, поскольку дисководы, как правило, надежны. При .желании можно попросить ДОС проверить (верифицировать) все данные, записываемые на диск. Это делается командой VERIFY, которой можно включить или выключить проверку (верификацию). Обычно проверка выключена. Если вы обеспокоены, можно ее включить, но это прибавит время, затрачиваемое на работу с диском. Поскольку наши компьютеры и дисководы достаточно надежны, я лично не рекомендую использовать проверку. Я доволен тем, что она существует для тех, кому кажется, что она им нужна. Обычно, когда узнают о проверке, то преувеличивают ее возможности. Распространенное заблуждение заключается в том, что проверка данных, Записанных на диск, — это повторное чтение данных и сравнение с оригиналом, но это не так. Команда VERIFY просто требует от диска выполнение процедуры, которая ищет ошибки записи. Каждый дисковод имеет встроенный механизм самотестирования, который обнаруживает потерянные биты. Таким образом, процедура верификации проверяет корректность записи данных (на то, что нет потерянных бит), но не правильность самих данных. Хотя верификация — это не совсем то, что можно было бы 173
предположить, тем не менее это разумное средство защиты записи данных от ошибок. По желанию, можно с помощью команды VERIFY включать (VERIFY ON) или выключать (VERIFY OFF) проверку. Удобно иметь возможность включать или выключать проверку, поскольку она не всегда бывает нужна, но может понадобиться в какие-то критические моменты. Печатая команды verify on и verify off, можно легко управлять проверкой. По умолчанию проверка выключена. В качестве альтернативы можно использовать переключатель /V с командами COPY и XCOPY. (XCOPY — описывается позже в этой главе). С данным переключателем ДОС проверяет только во время выполнения команды. ’’Маскировка” диска ДОС включает в себя ряд команд, которые могут ввести программу в заблуждение, будто бы некоторый диск или каталог — это на самом деле совсем другой диск или каталог. Такая ’’маскировка” может произвести впечатление искусственного усложнения, но, как будет видно в дальнейшем, она иногда необходима и при некоторых обстоятельствах практична. Использование одного диска в качестве другого Некоторые программы выполняются только при определенных условиях. Так, например, возникает специфическая проблема, когда пытаются приспособить старую программу к компьютерам с новыми принципами технической реализации. Проблема заключается в том, что старые программы для персональных компьютеров были написаны в те времена, когда использовали гибкие диски малой емкости. Тогда обычный способ работы на персональном компьютере предполагал наличие двух дисководов и использование их следующим образом: дискета с программой находилась в дисководе А, дискета с данными — в дисководе В. Ничего плохого в этом способе работы нет. Многие современные компьютеры также имеют два дисковода гибких дисков А и В, используемых так как только что было описано. Проблема возникает из-за того, что практически все современные компьютеры имеют кроме того жесткий диск, который используется как дисковод С. Но некоторые программы, ранее созданные, могут работать только следующим образом: диск с программой должен устанавливаться в дисковод А и диск с данными — в дисковод В (или какой-нибудь другой). Возникает задача адаптации такой программы к работе с жестким диском. Команда ASIGN предназначена именно для такого случая. 174
Команда — ASSIGN Команда ASSIGN заставляет ДОС направлять запросы для одного дисковода другому, по существу, подменяя дисковод X дисководом Y. Например, если оба дисковода А и В присвоены жесткому диску С, то любая программа, которая обращается к дисководам А и В, будет в конце концов обманута ДОС и на самом деле обратится к жесткому диску С. Эта возможность позволяет перехитрить некоторые простые программы и оказывается во многих случаях очень полезной. Для осуществления этого надо ввести команду присвоения в таком виде: ASSIGN OLDDRIVE=NEWDRIVE (старый_диск) = (новый_диск) По желанию можно делать также присвоение для нескольких дисководов сразу. Вот, например, команда для присвоения дисководов А и В жесткому диску С: ASSIGN А=С В=С Для расторжения присвоения, т. е. для того, чтобы программа снова обращалась к А и В так же, как было первоначально задумано, надо ввести команду ASSIGN без параметров: ASSIGN Эта форма команды необходима по очень важной причине: дело в том, что команда ASSIGN потенциально очень опасна, так как она может переадресовывать как конструктивные, так и деструктивные операции — команды, подобнце командам DEL ** или FORMAT, так что можно стереть данные или переформатировать диск, не подозревая об этом. Во избежание этих неприятностей, я настоятельно рекомендую при использовании команды ASSIGN следовать некоторым правилам: 1. Применять ее только тогда, когда это действительно необходимо, и не использовать в обычных случаях. 2. Использовать ASSIGN только в командных файлах и предусмотреть автоматический сброс присвоений после того, как вы ими воспользовались. Следуя этим правилам, можно избежать многих неприятностей при работе с командой ASSIGN. Использование имени подкаталога вместо имени дисковода Перейдем к более сложной разновидности команды ASSIGN. Она называется SUBST (замена) и позволяет воспринимать подкаталог 175
как отдельный дисковод. Почему возникла необходимость в этой команде? Во-первых, некоторые программы не могут воспринимать подкаталоги как ветви корневого каталога диска. Поэтому они не смогут работать с подкаталогами, что вызовет осложнения, если жесткий диск представлен в виде четкого набора различных подкаталогов. Выходом из этого положения является команда SUBST. Во-вторых, это удобно. Если вы разделили и расщепили свой каталог и создали много великолепных деревьев, имена путей могут стать очень длинными и трудноуправляемыми, если только вы не очень большой специалист в машинописи. Это может привести к ошибкам набивки. И снова выходом из положения (кроме упрощения вашего дерева) является команда SUBST. В любом случае можно указать ДОС, чтобы она обращалась к подкаталогу как к дисководу. Основная форма этой команды: SUBST DRIVE: \pathname (дисковод) (путь_поиска) Например, если вашему текстовому процессору нежелательно работать с подкаталогом LETTERS, можно напечатать SUDST В: \LETTERS и тем самым заставить его обращаться к подкаталогу как к дисководу В. Точно так же, если имеется подкаталог с именем пути вроде: \CLIENTS\LETTERS\A_M\CLARK\MARCH вы можете ввести: SUBST В: \CLIENTS\LETTERS\A_M\CLARK\MARCH и имя дисковода В: станет краткой заменой для этого длинного имени. Когда вы закончите замену, не забудьте выключить ее командой: SUBST DRIVE: /О (дисковод) (D означает ’’delete”) Если вы хотите узнать, какие замены действуют в данный момент, введите только саму команду: SUBST и ДОС покажет что-то вроде этого: В: => \ LETTERS 176
Не используйте команду SUBST как единственную возможность для построения громоздких и сильно разветвленных каталогов. Вы не должны идти по этому пути. Подобно ASSIGN ее лучше всего использовать ограниченно, только тогда, когда это действительно необходимо — я имею в виду программы, которые не могут работать с подкаталогами. И еще: лучше всего использовать команду SUDST в командном файле, который задействует ее в начале работы программы и Цыключит в конце. Таким образом, вы обезопасите себя и ваши данные от забывчивости, которая всегда приносит одни огорчения. Существует ситуация, когда применение команды SUBST важно. Ранее мы рассматривали, как нужно организовать жесткий диск, чтобы он был разделен между несколькими пользователями. Предполагается, что каждому пользователю отводится свой собственный каталог, в котором должны храниться все его подкаталоги данных и файлы. Приведу пример одной из подобных древовидных структур каталога пользователей: 1 DATA —DIANME 1 DW ERIC 1 DBASE HARLEY -DBASE -DW 1 LETTERS I MEMOS 1 REPORTS EXCEL I PAY 1 RECEIVE KEVIN DBASE I PROJECTS I RESEARCH —EXCEL I PROJECTS 1 RESEARCH PETER DBASE EXCEL SCOTT 1 DBASE Я также упоминал, что вы можете предусмотреть командный файл для каждого пользователя с его (ее) именем — например, DIANNE.BAT — командный файл Дианны. Пользователю нужно сообщить, что для начала работы он (а) должен ввести свое имя и тем самым инициировать свой командный файл. Команда SUBST — это то, что вам желательно иметь в таком командном файле. Вы могли бы использовать ее, чтобы каждому подкаталогу присвоить имя как бы его собственного дисковода. 177
Рассмотрим, например, команды, которые можно было бы увидеть в файле инициации для пользователя Дианна — DIANN.BAT: SUBST е: c:\data\dianne е: cd \ Первая команда позволяет пользовательнице Dianne (имя Дианна) общаться со всеми каталогами данных и файлами, как если бы они были на ее собственном персональном диске Е. Вторая и третья команды изменяют имя дисковода по умолчанию на Е и соответственно устанавливают текущий каталог пользователя. Такой прием позволяет каждому пользователю иметь дело только со своей частью дерева. Например, если Дианна хочет записать файлы своих данных в свой каталог, ей необходимо только скопировать их на диск Е. Использование диска в качестве подкаталога В конце концов, вы можете и диск использовать фактически как подкаталог, с которым вы работаете. Это противоположно действию команды SUBST и осуществляется командой JOIN. В действительности, в этом нет особой необходимости. Это может быть удобно, особенно когда вы хотите объединить данные с нескольких дискет вместе и работать с ними и подкаталогами обычным образом. Чтобы использовать JOIN, наберите команду в следующем виде: JOIN DRIVE: DRIVE:\PATHNAME (дисковод) (имя_пути) Если, например, вы имеете диск с данными в дисководе А и хотите иметь доступ к этим данным во время работы с файлами через подкаталог CLIENTS, вам нужно набрать: JOIN А: C:\CLIENTS После работы вам надо расторгнуть этот ’’союз” командой: JOIN А: /О (/d означает, ’’расторжение” или, если хотите, ’’развод”). Если вам нужно увидеть, какие объединения действуют на данное время, введите саму команду JOIN, и ДОС покажет что-то вроде: А => C:\CLIENTS И снова мой совет — не используйте эту команду сплошь и рядом. Это команда специального назначения, лучше ее оставить на 178
те случаи, когда она действительно необходима. Например, если вы пользуетесь диском, который вы не можете или не должны копировать на другой диск. И подобно командам ASSIGN и SUBST используйте JOIN как часть командного файла, который будет автоматически сбрасывать команду после ее применения. Использование команд ASSIGN, SUBST и JOIN Я подчеркивал несколько раз, что команды ASSIGN, SUBST и JOIN не рекомендуется использовать как обычные команды, которые всегда под рукой, чтобы облегчить перескакивание с диска на диск или хотя бы сократить набор на клавиатуре. Это операции все потенциально каверзные. (Легко забыть, что вы переименовывали, объединяли и заменяли, и где вы все это делали.) Фактически для их использования должны быть действительно только серьезные причины: если программа не может работать с подкаталогами — используйте SUBST. Но в действительности, программы, которые не могут обращаться к подкаталогам — очень старые и все больше устаревают, так, что все реже и реже появляется необходимость искать выход из подобной ситуации. Особые способы копирования Мы уже обсуждали, как копировать файлы с помощью команды COPY, и уже говорили об одной особой команде копирования файлов, команде SYS, которая предназначена для переноса двух специально запрятанных файлов ДОС на системном диске. Сейчас настало время обсудить две команды, более специализированные на копировании файлов, REPLACE и XCOPY. Команда REPLACE Команда REPLACE (заменить) предназначена для того, чтобы помочь автоматизировать решение проблемы, с которой приходится сталкиваться от случая к случаю: освежение копий файлов, когда по некоторым причинам приходится хранить более одной копии файлов на одном диске. REPLACE выполняет эту задачу, отыскивая файлы с одинаковыми именами и копируя новые версии поверх более ранних. Она также выполняет некоторые сходные задачи, что будет более очевидно по мере их обсуждения. Форма представления команды REPLACE такая: REPLACE исходные_файлы путь_ назначения Исходным файлом является спецификация для новых файлов, которые надо заменить; это файловая спецификация, поскольку она 179
указывает, что именно надо записать. Часто достаточно бывает указать ♦.* или А:*.*, чтобы перенести все файлы с новой дискетки и записать поверх их старых копий. Путь назначения указывает, где нужно эти файлы разместить; это спецификация пути, поскольку она указывает, где (не что) производить замену. Например: REPLACE А:*.* С:\ Простая команда замены заменит файлы в одном каталоге (путь_назначения), но, возможно, нам захочется произвести замену файлов, в каком бы каталоге они ни находились. Для этого используем переключатель /S (или подкаталоги), который выдает команде REPLACE задание искать во всех подкаталогах путь, который мы определили. Вот как будет выглядеть наш пример уже с добавленным переключателем: REPLACE А:*.* С:\ /S В действительности, иногда мы не хотим заменять любой из всех имеющихся файлов, а хотим переписать только новые, у которых еще не было копий. Для этого REPLACE имеет переключатель /А (для добавлений). С переключателем /А команда REPLACE может переписывать только файлы, совершенно новые в каталоге назначения. (Если вы озабочены копированием файлов не вновь создаваемых, но более новых — имеется в виду с более новой датой, мы придем к этому в следующей команде, XCOPY.) Переключатель /А, между прочим, не может быть использован с переключателем /S. Имеются также некоторые другие переключате¬ ли для команды REPLACE. /Р, (пауза), этот переключатель выдает паузу для подтверждения ДА-НЕТ перед копированием любого фай¬ ла. Имеется также переключатель /R, позволяющий делать освеже¬ ние файлов с атрибутом ’’только для чтения”. И наконец, переклют чатель /W (Wait-ждать) выдерживает паузу перед тем, как начать поиск исходных файлов, так что можно использовать REPLACE при наличии одного дисковода (или дзух) по желанию. Это был рассказ о команде REPLACE. Сейчас мы перейдем к другой замечательной разновидности копирования, еще более мощной. Команда XCOPY Команда XCOPY, подобно REPLACE, является еще одним ’’мощным копировщиком”. Но в чем их различия? Прежде чем рассматривать детали этой команды, нам необходимо знать ее концепцию — так мы легче поймем ее особенности. В то время, как REPLACE является мощным копировщиком, который ориентирован на освежение копий, команда XCOPY ориентирована на сохранение копий и перенос файлов. 180
Если об этом помнить, то легко можно прочувствовать особенности XCOPY. (Между прочим, я предполагаю, что XCOPY мы произносим как "CROSS COPY”. По крайней мере, это поможет нам понять, чем эта команда полезна.) XCOPY будет копировать группы файлов, сохраняя (здесь играет роль ключ) целиком древовидные структуры файлов. Заметим, что в то время как REPLACE будет выискивать множество копий файлов с одинаковым именем в дереве назначения (и заменять все копии), исходными файлами REPLACE является единственный каталог (обычно дискета, которая используется для освежения жесткого диска). Но для XCOPY исходными для копирования могут быть все файлы в дереве каталога и команда XCOPY будет дублировать это дерево каталога на диск назначения. Основная форма представления XCOPY: XCOPY источник назначение где спецификации ’’источник” — и ’’назначение” могут либо указывать, какие именно файлы мы хотим копировать, или обозначать путь, указывающий все файлы в исходном каталоге и соответствующие им имена в каталоге назначения. Все разнообразие свойств команд копирования (по шаблону их имен, файлы назначения, имеющие имена, отличные от имен исходных файлов и т.д.) также применимо здесь, как и можно было бы ожидать.. Команда XCOPY интересна не только в своей самой простой форме, но еще больше своими альтернативными переключателями. Давайте посмотрим на них. Альтернативные переключатели Ключевым и наиболее важным переключателем является /S (подкаталог), который задает XCOPY выполнить копирование любого подкаталога исходного каталога. Команда XCOPY будет гарантировать, что соответствующий каталог будет заведен в пункте назначения — использует его, если он уже существует, создаст, если его нет. Заметим, что в то время как XCOPY будет дублировать структуру подкаталогов по нашему заданию, древовидная структура, в которую мы копируем, не должна быть той же самой. Например, нашим источником могут быть все подкаталоги в каталоге, названном \ACCOUNTS\CURRENT, в то время как ката/югом назначения может быть что-то вроде \DATE\LASTMNTH. Этот пример иллюстрирует наиболее важные причины для использования XCOPY. Она может быть легко использована для таких целей, как сохранение копий данных, которые будут потом изменены. Требуется ввести дополнение к переключателю /S для случая, когда имеются пустые каталоги. Если мы используем XCOPY с переключателем /S, она будет копировать только те каталоги, где 181
есть файлы, но не создавать пустые каталоги. Но если нам необходимо иметь точный дубль нашего источника (включая пустые каталоги, которые готовы к принятию файлов) XCOPY может выполнить и это, если мы укажем переключатель /Е (пустые каталоги). Эта особенность — создание пустых каталогов — может быть важной, потому что мы сможем копировать данные из программ, которые будут создавать файлы в этих каталогах, предполагая их наличие, неважно пустые они или нет. Другие переключатели для команды XCOPY перекликаются с тем, что мы уже встречали, рассказывая о других командах. Подобно команде BACKUP, XCOPY может использовать переключатель /М, копирующий только те файлы, которые были модифицированы (они отмечены битом в файле архива). Так же, как и в команде BACKUP, если мы используем переключатель /М, XCOPY будет восстанавливать архивный бит, который он задействовал. С другой стороны, если мы используем переключатель /А (архив), XCOPY будет копировать, но не восстанавливать никакого архивного бита, так что тот факт, что эти файлы изменялись, по-прежнему фиксируется. Отсюда переключатель /D (дата) позволит копировать только файлы, датированные указанной датой или следующими за ней. Так же как и в команде REPLACE, в XCOPY имеются переключатели /Р (пауза) и /W (ждать), которые дают вам возможность вмешательства во время процесса копирования. И, наконец, так же, как и в команде COPY, имеется переключатель /V (верификация), с помощью которого копии проверяются. Может показаться, что команда XCOPY очень похожа на команду BACKUP, но имеется несколько ключевых различий. Обе команды могут быть использованы для создания архива копий наших файлов, но команда BACKUP полностью ориентирована на это. Копии, которые она создает, не могут быть непосредственно использованы, но должны быть кодированы обратно с помощью команды RESTORE. Далее, BACKUP не воссоздает исходные структуры каталогов (это происходит, когда файлы воссоздаются из памяти). Но команда XCOPY дает нам точную копию немодифицированных файлов, и также дублирует структуру каталога, который содержит эти файлы. Мы использовали BACKUP для создания чистой архивной копии — такой, которая должна размещаться на дисках с меньшей емкостью, скажем, ддя переноса информации с большого жесткого диска на менее емкие гибкие диски. Но чтобы сделать полные рабочие копии файлов в контексте их каталогов, вам следует использовать XCOPY. Теперь, после знакомства с развитыми дисковыми командами, мы готовы перейти к следующей теме, так называемой конвейеризации. 182
Глава 18 ТРЮКИ С КОНВЕЙЕРИЗАЦИЕЙ В этой главе вы узнаете о двух интересных возможностях ДОС, известных как перенаправление и конвейер. Они взаимосвязаны и позволяют нам осуществлять довольно полезные и удобные трюки, к тому же еще и забавные, как вы увидите. Идея перенаправления — одна из наиболее интересных частей ДОС, в общих чертах она позволяет вам действовать, подобно инженеру путей сообщения, переводя поезда с одного пути на другой. Начнем сначала. Во-первых, легко видеть, что ДОС направляет информацию к определенным, заранее предусмотренным местам. Оставим в стороне команды обращения с дисками и всякую всячину Вообразите, что происходит, когда ш*. набираете команду ДОС. Предположим, что вы набираете команду DIR. ДОС запомнит ваши удары по клавишам и осмыслит их где-то внутри* вашего компьютера. Но когда она выполнит вашу команду DIR, то ав¬ томатически направит результат этой команды на экран. Это подобно поезду, идущему от станции А к станции Б без возможности "перевода стрелки" между ними. В терминологии ДОС это означает, что информация переносится из своих стандартных входных устройств (в данном случае, клавиатуры) к одному из его стандартных выходных устройств (экрану). Знакомство с перенаправлением Предположим, что вы хотите вместо того, чтобы видеть список файлов на экране, напечатать его. Можно ли сделать это? Несомненно. Сообщите ДОС о том, что надо перевести список на принтер вместо экрана. Это аналогично тому, что вы переводите поезд на другой путь так, что он проходит где-то в другом месте. Это и есть идея перенаправления: отправление своей информации по другому, чем обычно, назначению. Пользуясь лаконичным языком общения с ДОС, вы можете перенаправлять свою информацию, используя любой из двух небольших символов: >, означающий куда послать данные, <, означающий откуда посылать данные в указанное место. Символы перенаправления обычно используются так: если надо изменить вывод результатов работы программы (которые обычно появляются на экране) так, чтобы вместо выдачи на экран они направлялись в файл (который назовем OUTFILE), мы должны сделать что-нибудь вроде: PROG > OUTFILE (программа) (выходнойфайл) 183
В свою очередь, если мы хотим изменить вход данных программы так, чтобы вместо поступления их с клавиатуры, они поступали из файла (например, INFILE) нам следуют поступить так: PROG < INFILE (программа) (входнойфайл) Как и следует ожидать, можно сделать оба действия за один раз: PROG > OUTFILE < INFILE Прежде чем слишком обнадеживаться относительно перспектив использования подобных команд, важно знать, что они работают с некоторыми ограничениями на информацию. Можно перенаправлять выход таких программ, у которых обычно данные появляются на экране строка за строкой (как огородные грядки). Но нельзя перенаправлять файловые данные из электронных таблиц (потому что это не построчный вывод на экран) и нельзя «перенаправлять, скажем, изображение с экрана дисплея для программ, использующих весь экран в произвольном порядке (не в виде грядок). Подобным образом для ввода информации можно перенаправлять входные данные, вводимые только с клавиатуры и используемые в программе обычным образом. Короче, только определенные виды очень простых входных данных могут быть перенаправлены и только, если программа, которая с ними работает, создана так, что разрешает ДОС выполнить это перенаправление. Вы не можете сказать заранее, будет ли работать перенаправление, когда вам это будет нужно, вы должны поэкспериментировать со своей программой, чтобы увидеть удастся это или нет. Поскольку ДОС является операционной системой — программой, предназначенной для поддержки ваших рабочих программ — пере¬ направление не самый лучший способ посылать данные в любой угол вашей компьютерной системы. Фактически перенаправление работает только с определенными видами данных, являющихся выхбдными в командах ДОС. Таким образом, перенаправление используется в основном в пределах действия ДОС и с программами, сделанными с учетом этой возможности. Но там, где это все же возможно, перенаправление удобно и часто его действие вызывает восхищение. Например, я упоминал о том, что вместо экрана можно послать список файлов на принтер. Команда для этого очень простая: DIR > PRN: (PRN: — название принтера в ДОС.) В результате действия этой команды на экране ничего не появится, но принтер немедленно 184
начнет выдавав список файлов запрашиваемого каталога. Однако прежде чем ввести эту команду, следует убедиться, что принтер подсоединен и готов. Если это не так, то ДОС остановится и будет ждать. Можно также переслать список файлов в дисковый файл следующей командой: DIR > (имяфайла) Копирование с клавиатуры с использованием CON: В следующем разделе я покажу вам полезный пример с применением перенаправления. Но сначала остановимся ненадолго, чтобы обсудить быстрый и простой способ создания коротких файлов, который будем использовать в дальнейшем. В гл.12 я объяснял, что клавиатура и экран представляют для ДОС одно устройство с именем CON:(консоль). Точно так же, как мы можем послать данные непосредственно на принтер, адресуя их к PRN:, мы можем читать и писать непосредственно с консоли, используя ее имя CON:. Например, можно копировать данные с клавиатуры в файл, используя такую команду: copy con: имяфайла ДОС будет копировать все, что вы наберете на клавиатуре непосредственно в файл, который вы укажете. Если такого файла не существует, ДОС создаст его. Будьте осторожны: если такой файл уже существует, ДОС заменит его (как это бывает с любой командой COPY). Конечно, если вы "набиваете” файл непосредственно с консоли, вам Необходимо каким-либо образом сообщить ДОС о том, что вы закончили работу. Вы не можете использовать для этого клавишу ’’ENTER”, видимо, проще установить законный символ окончания, который бы посылался непосредственно в файл. Когда вы закончил* ’’набивку” файла, вам необходимо нажать специальную клавишу окончания файла. Этой клавишей является <F6> — функциональный ключ 6, после которого необходимо нажать клавишу ’’Enter”. Приведу пример создания короткого файла из двух строк. Как видно, для окончания копирования надо нажать <F6>, и затем ’’Enter” copy con: test (test имя файла) this is a test ( это тест) this is line 2 ( это строка 2) <F6> <Enter> <F6> <клавиша ввода> Чтобы увидеть этот файл, введем: 185
type test и вы увидите: this is a test this is line 2 Теперь, когда вы уже поняли этот быстрый способ создания коротких файлов, вернемся к обсуждению Перенаправления. Пример перенаправления В качестве изящного примера использования преимуществ перенаправления рассмотрим такие хорошо всем знакомые и часто используемые команды, как DATE и TIME. DATE и TIME были в основном предназначены для установки текущих даты и времени в компьютере в режиме диалога. Эти команды также полезны тем, что просто показывают нам сегодняшнюю дату и текущее время. Но если мы хотим использовать эти команды только для этого, мы должны правильно ответить на приглашение ДОС ввести новые зна¬ чения (и мы делаем это простым нажатием клавиши Enter, сообщая тем самым ДОС, что прежние дата и время остаются неизмен¬ енными). Как видите, такой способ графического представления текущего времени и даты не очень удобен. Перенаправление является путем к спасению! Мы можем использовать пере¬ направление нажатия клавиши Enter к программам TIME и DATE так, что ей не придется ждать нашего ответа. Покажем, как это сделать. Во-первых, мы создадим ’’входной” файл, который не будет ничего содержать, кроме пустой строки, эквивалентной одному нажатию клавиши Enter. Назовем этот файл ENTER. Имеется несколько способов создания файла ENTER. Мы можем использовать встроенный в ДОС редактор, называемый EDLIN (о котором я вскоре расскажу), или мы можем использовать другой редактор или текстовой процессор. Но есть и еще более простой путь: набить этот малюсенький файл непосредственно с клавиатуры. Наберем: copy con: enter <Enter> <F6> <Enter> Как легко увидеть, вы создали файл в одну строку, в которой нет ничего, кроме символа клавиши Enter. В некоторых случаях (вы должны тщательно поэкспериментиро¬ вать, чтобы их обнаружить) можно использовать приведенный способ создания файла, чтобы заранее иметь ’’готовые ответы”, 186
нужные для работы вашей программы. Это позволит сэкономить время и защитит вас от ошибок (поскольку готовые ответы будут всякий раз верными). Я считаю, что мне удобно хранить файл ENTER в каталоге UTILITY (утилиты — вспомогательные программы). Таким образом, у меня всегда под рукой есть символ клавиши Enter, который я могу направить в любую программу по моему желанию. Например, вы можете создать командный файл для графического представления времени и даты: :* TD.BAT командный файл для индикации времени/даты ©echo off time < c:\utility\enter date < c:\utility\enter Теперь вы можете по желанию увидеть время и дату. Позже в этой главе я покажу, как использовать команду FIND, чтобы улучшить этот командный файл. Если вы решили воспользоваться символами > и < для перенаправления, то, вероятно, обнаружите, как обнаружил я, что перенаправление вывода — вполне безопасная и рутинная операция, в то время как перенаправление ввода может быть более коварным (подумайте, что может случиться, когда программа нуждается в ответах, которые вы вводите, но вы не предусмотрели все возможные ответы). Итак, если вы действуете осторожно, но в то же время любите рисковать, то с перенаправлениями вы можете как попасть в смешную историю, так и эффективно их использовать. От перенаправления к конвейеру Если можно использовать перенаправление, чтобы пересылать информацию не по своему обычному назначению, то можно ли также послать ее в более далекое путешествие? И кроме того, может ли эта информация обрабатываться при прохождении по всему пути? Оказывается, может. Программы в своей работе используют данные, так что вполне естественно, что выходные данные одной программы могут служить входными данными для другой программы. ДОС дает нам удобные средства для автома+изации этого процесса. Прежде чем понять, как ДОС это делает, рассмотрим, как можно было бы выполнить то же самое уже известными нам средствами. Если мы имеем программу, названную ONE, данные создаваемые в которой нужны другой программе по имени TWO, мы могжем 187
использовать > и < и оперировать с именами рабочих файлов, чтобы передать данные следующим образом: ONE > WORK (имя_рабС)чего_файла) TWO < WORK Первая программа перешлет свои выходные данные в файл WORK, а вторая программа прочитает их оттуда. В этом заключается основная идея, на которой основаны выполняемые ДОС конвейерные операции. Конвейер — это не что иное, как автоматизированное прохождение данных, которое мы рассмотрели на примере программ ONE, TWO и файла WORK. Для организации конвейера ДОС сама заботится о создании рабочих файлов на всем пути прохождения данных. Чтобы создать конвейер, достаточно написать имена программ на одной командной строке, разделенные вертикальной чертой (|), которая сигнализирует о выполнении конвейерной операции. Вот пример организации конвейера из программ ONE и TWO: ONE | TWO Если вам хочется, мажете думать, что данные проходят непосредственно между двумя программами, в действительности же они временно запоминаются в файле, который ДОС создает специально для этой цели. Первая программа выдает все свои данные и завершает свою работу, прежде чем вторая программа начинает свою работу и читает первую часть этих данных. Когда весь процесс завершен, ДОС устраняет временные файлы, используемые для прохождения данных по конвейеру, чтобы они не засоряли наши диски. Весь процесс совершается, как бы за кулисами, не привлекая вашего внимания. Конвейер может содержать столько программ, сколько вам нужно, например: ONE | TWO | THREE | FOUR | FIVE Имеется очевидное различие между программами в начале, середине или конце конвейера. Если не произойдет ничего необычного, то первая программа в конвейере будет создавать данные. Программы в середине должны что-то совершать с данными, но все же пропускать их через себя. Программа такого типа называется фильтром. Последняя программа в конвейере должна быть потребителем данных, чтобы уравновесить генерацию данных в начале конвейера, хотя обычно последняя программа конвейера также является фильтром, как и любая в середине. Если последняя программа — 188
фильтр, она пропускает конечный результат на стандартное устройство выдачи данных в ДОС, и он появится на экране дисплея. Добавление к файлу с помощью команды » Если вы сделали перенаправление со стандартного устройства вывода на запись в файл, то, если он уже существует, ДОС будет записывать данные поверх этого файла. Однако иногда желательно добавить к файлу данные, не стирая те, которые уже в нем имеются. Для этого вы просто должны использовать два символа ”>” вместо одного. Например, покажем, как можно получить копий трех каталогов дисков А, В и С в одном файле DIRLIST: dir а > dir list dir b >> dirlist dir с » dirlist Первая команда использует один символ >, чтобы начать файл DIRLIST. Следующая команда использует » для того, чтобы добавить новые данные в файл DIRLIST, не стирая старых. Программы фильтрации в ДОС Пока свойства программ фильтрации остаются для вас немного загадочными. Чтобы их лучше понять, рассмотрим те программы- фильтры, которые предлагаются в ДОС. Основные называются SORT, FIND и MORE. SORT Каждая из этих программ является классическим примером фильтра — она читает из стандартного устройства ввода, что-то делает с данными и затем направляет и5с к стандартному устройству вывода. SORT, как очевидно из названия, команда, сортирующая данные, с которыми она работает. SORT обрабатывает каждую строку данных как отдельный смысловой элемент, так что она изменяет только порядок их следования. Обычно программа SORT упорядочивает данные в порядке возрастания, но с переключателем /R она будет сортировать их в обратном порядке. С другим переключателем /+п (где п — число) программа осуществляет сортировку, начиная с n-й позиции каждой строки. Типичным примером может быть совместное использование SORT с переключателем /+ с командой выдачи списка файлов из каталога DIR. 189
Использование команды SORT с командой DIR Команда DIR перечисляет файлы в том порядке, в котором они оказались записаны в каталоге, не обязательно сортированном. Но если объединить ее с командой SORT, можно получить список, упорядоченный или по имени файла, или по расширению файла, или по размеру файла. Например, с помощью следующего конвейера файлы будут сортироваться по их именам: DIR | SORT Используя переключатель /+п, чтобы после соответствующего сдвига элементом, по которому осуществляется сортировка, оказался размер файла, можно упорядочить список каталога по размеру файлов: РIR | SORT /+14 Программа MORE Когда информация выводится на экран, то зачастую она не помещается вся одновременно и может "убежать” с экрана, прежде чем мы успеем изучить ее. Фильтр MORE позволяет вывести такое число строк информации, какое умещается на экране вашего компьютера, и затем ждать нажатия клавиши, говорящего, что вы готовы воспринимать следующую порцию информации. Естественно, что MORE используется только в конце конвейера — нет никакого смысла использовать ее в каком-либо другом месте. Итак, чтобы выдать длинный список каталога, который можно было бы просматривать на экране, можно ввести: DIR | MORE Можно также комбинировать SORT и MORE. Например, DIR | SORT /+14 | MORE Если инициализировать ваш текущий каталог таким образом, можно найти несколько записей, вызывающих недоумение. Не беспокойтесь, это имена временных файлов, которые ДОС создала для формирования конвейера. Они исчезнут, когда выполнение команды завершится. Программа FIND Фильтр FIND используется для обнаружения строк, которые со¬ держат или не содержат некоторые конкретно заданные данные. При 190
использовании команды FIND информацию, которую надо искать, следует заключить в двойные кавычки. FIND отбрасывает строки, не содержащие нужной информации, и пропускает те строки, которые содержат. Приведу пример, в котором использование FIND в ком¬ бинации с MORE позволяет обнаруживать сообщения об ошибках: TEST I FIND ’’error" | MORE Как и следовало ожидать, FIND имеет несколько переключателей: переключатель /V реверсирует поиск, так что строки с заданной информацией отбрасываются, а остальные пропускаются на устройство вывода. Переключатель /N добавляет по единице к номеру исходной строки (что помогает вам узнать, где были обнаружены заданные образцы поиска*). Переключатель /С дает возможность узнать только число найденных строк, всякая другая информация отбрасывается. Я приведу важный пример совместного использования перена¬ правления и фильтрации. Вспомните, как мы автоматизировали ко¬ манды DATE и TIME, переопределив стандартное входное устройство на файл ENTER, содержащий только символ Enter: time < enter Некоторое неудобство, связанное с командой TIME, заключается в том, что она выдает сообщение, состоящее из двух строк: Current time is 1:29:36.27 р Enter new time: Нас интересует первая строка. Чтобы ее выделить, пропустим выходные данные команды TIME через фильтр FIND и выделим строку, содержащую ’’Current”: time < enter | find "Current" Использование этого метода позволит нам переписать командный файл так, что он автоматически станет показывать нам время и дату. (Как вы помните, файл ENTER хранится в нашем каталоге UTILITY.) :* TD.BAT командный файл для индикации времени/даты @echo off time < c:\utility\enter | find 'Current*' date < c:\utility\enter | find Current" 191
Выходные данные будут выглядеть следующим образом: Current time is 1:38:35.63р (текущее время 13 ч 38 м 35,63 с*) Current date is Fri 12-21-1990 (текущая дата Пятница 21 дек 1990) Использование SORT, MORE и FIND Несмотря на то, что эти три команды фильтрации SORT, MORE и FIND предназначены для использования внутри конвейера, они мо¬ гут использоваться и самостоятельно. Например, можно использо¬ вать SORT вместе с обычными символами перенаправления > < , чтобы переупорядочить содержимое файлов и поместить его в другой файл. SORT <FILE.OLD >FILE.NEW (старый) (новый) Подобным же образом, программа MORE может быть использована как команда TYPE, но с автоматическими паузами после заполнения экрана. more < bigfile (длинный файл) ) ДОС предоставляет нам три удобные команды фильтрации SORT, MORE и FIND, но это не единственные фильтры, которыми мы можем воспользоваться. Вспомните, что любая разумная программа, которая читает со стандартного устройства ввода и пишет на стандартное устройство вывода, может быть использована в качестве фильтра. Если у вас имеются какие-то идеи полезной фильтрации, вы можете написать программы, чтобы воплотить их в жизнь и использовать в вашем конвейере. 192
Глава 19 СПЕЦИАЛЬНЫЕ КОМАНДЫ До сих пор мы рассматривали множество команд, с помощью которых можно выполнять в ДОС ту или иную работу. Кроме них в ДОС имеется четыре специальные команды, позволяющие управлять характером работы вашего компьютера и выполнения программ. Каждая из этих команд выполняет особые функции, с которыми мы сейчас и будем знакомиться. Начнем с команды MODE. Управление внешними устройствами с помощью команды MODE Команда MODE — многоцелевая команда, но все ее цели имеют с небольшими вариациями один смысл: изменение режима работы аппаратуры. Хотя и возможно вводить кЬманды MODE с клавиатуры, обычно их все же используют в файле AUTOEXEC.BAT, чтобы реконфигурация выполнялась автоматичес¬ ки каждый раз, когда вы загружаете DOS. На самом деле лучше всего представлять команду MODE как семь команд в одной. Команда MODE используется для того, чтобы: устанавливать режимы работы принтеров; устанавливать режимы работы экрана; устанавливать режимы работы последовательного порта (асинхронного порта связи); подготовить к работе последовательный принтер; установить или заменить кодовую страницу (для поддержки работы кроме английского и на других языках); узнать о текущих настройках режимов аппаратуры; задать частоту автоматического повторения ввода нажатой клавиши. Вполне вероятно, что обычно вас устраивает, как работает компьютер и вам нет необходимости использовать команду MODE. Однако могут возникнуть обстоятельства, когда команда MODE мо¬ жет стать нужной, и поэтому полезно знать, как эта команда работает. Как можно себе представить, команда MODE является сложной командой со многими режимами. Для облегчения объяснения я ранее перечислил семь случаев использования команды MODE в том порядке, в котором они расположены в руководстве (инструкции) по использованию команд IBM PC-DOS. (В руководстве по MS-DOS данная тема обсуждается немного в другом порядке.) ' 7 Зак 1807 193
В этой главе я объясню вам наиболее распространенные варианты использования команды MODE. Если вам потребуются более подробные сведения, обратитесь к руководству по ДОС. Вероятно, у вас возникнет желание убедиться в том, что приведенные типы команды существуют в вашем компьютере. Но если вы пользуетесь старой версией ДОС, то некоторые новые функции этой команды могут не поддерживаться. Режимы дисплея Команда MODE обеспечивает несколько режимов управления дисплеем. Однако большинство из них используется только с устаревшими дисплеями, имеющими цветные графические адаптеры (Color Graphics Adaptor — CGA) и монохромные экранные адаптеры (Monockrome Display Adaptor — MDA). Фактически имеется только два режима, в которых можно использовать команду MODE с современным дисплеем: установить число столбцов* (позиций) и число строк на экране. Однако прежде чем начать знакомство с командой, вы должны знать, что мы не можем использовать эту форму команды MODE до тёх пор, пока не установим в систему драйвер ANSI.SYS. ANSI.SYS — это специальная программа, которая предоставляет нам дополнительные возможности управления дисплеем и клавиатурой. Чтобы установить ее, нужно ввести определенную команду установки устройства в файл конфигурации CONFIG.SYS. Обо всем этом мы скоро узнаем. Используя команду MODE в данном случае, вы можете установить число позиций в строке равным либо 40, либо 80, а число строк — 25, 43 или 50. Для дисплея с адаптером Video Graphics Array (VGA) можно задавать только 50 строк и 43 строки для дисплея с адаптером EGA (Enhanced Graphics Adaptor). Команда имеет примерно такой вид: mode con: cols=xx lines=yy (столбцов) (строк) Мы будем вводить эту команду, где значение хх может быть либо 40 либо 80, и значение уу может быть 25, 43 или 50. Слово con:, используемое с этой командой, означает, что она должна изменить характер работы консоли. Например, если у вас имеется VGA дисплей, то можно установить его режим вывода так, чтобы на экране размещалось 40 символов в строке и 50 строк, введя: mode con: cols=40 lines=50 (столбцов) (строк) По желацию можно определить только одну настройку, другая останется прежней, т.е.: 194
mode con: lines=50 Вы можете подумать, что это было бы замечательно устанавливать побольше строк всякий раз, когда захочется. Однако имеется некоторое затруднение: многие программы восстанавливают обычные установки режима работы экрана, безотносительно к тому, как вы ранее его настроили командой MODE. Тем не менее существует способ заставить программу подчиниться вашему выбору: Вы должны установить драйвер ANSI.SYS с параметром режима /L в файле CONFIG.SYS. Однако если только ваша программа действительно не использует дополнительные строки, эта возможность вряд ли принесет вам пользу. Все что вы получите — это^крошечные символы, сжатые в верхней половине экрана. Режимы принтера Командой MODE можно установить три различных функции управления принтером. Во-первых, если ваш принтер совместим с IBM принтером, таким как принтер IBM PC, или IBM GRAFIC, или любым из серии EPSON FX / MX, вы можете использовать команду MODE для установки ширины строки 80 или 132 символа и плотности 6 или 8 строк на дюйм (высоты строки). Это может быть сделано независимо для каждого из трех возможных интерфейсов, которые обозначаются как LPT1, LPT2 и LPT3. (”LPT” происходит от line printer — ’’построчный принтер”.) Команда, осуществляющая это, выглядит примерно так: mode LPT1:80,6 mode LPT3:132,8 Вы можете не указывать одновременно ширину и высоту, задавая только один параметр, например: mode LPT1:,6 mode LPT3:80 Можно задать еще один дополнительный параметр Р в конце команды, например: mode LPT1:,,Р Параметр Р дает программе приказание управлять принтером даже после истечения ”тайм-аута” (времени ожидания), если принтер слишком долго не реагирует на команду. Операционная система достаточно разумна и распознает, что принтер слишком долго чем-то занят, а это может свидетельствовать об отсутствии 7* 195
питания или его нерабочем состоянии по другой причине. Для этого устанавливается предельное время реакции принтера на команду, превышение этого времени ожидания называется тайм-аутом. Если вы все-таки обнаружите, что ДОС выдает сообщение о наступлении тайм-аута, хотя принтер работает хорошо (может быть, немного замедленно), то можете по вашему желанию использовать параметр режима Р, чтобы исключить тайм-аут. Полезно знать еще об одной возможности команды MODE для управления принтерами. Как вы, наверное, знаете, существуют принтеры, которые соединяются с компьютером через последова¬ тельный порт, а кроме того, более распространенные принтеры, при¬ соединяемые через параллельный порт. Если у вас принтер с после¬ довательным подключением, то вы прежде всего должны убедиться, что он подключен к соответствующему порту СОМ, а не к парал¬ лельному порту LPT. Многие программы не готовы делать вывод че¬ рез порт СОМ, в таком случае ДОС должна перенаправить выход¬ ную информацию с LPT на СОМ. Делается это прц помощи команды: mode LPT1:=С0М1 или чего-нибудь вроде этого, используя любой из трех возможных портов LPT 1, 2 или 3 и любой из последовательных портов СОМ 1, 2, 3 или 4. После исполнения этой команды любая программа, которая посылает выходные данные через порт LPT1, будет впредь посылать их через первый порт последовательной связи СОМ1. Это справедливо, если принтер обслуживается через ДОС, но если программа не использует ДОС, то данное перенаправление действовать не будет. Чтобы закончить, мы должны рассмотреть использование команды MODE для управления портами последовательной связи, которые требуются, в частности, для последовательных принтеров. Режимы последовательных портов Последовательные порты (известные также как порты .связи или порты RS-232), имеющиеся в вашем компьютере, являются универсальным каналом общего назначения для обмена информацией между двумя машинами. Хотя чаще всего последовательный порт используется для подключения компьютеров к телефонным линиям связи, через него можно также присоединять принтеры, ’’мышь”, научную аппаратуру и лабораторное оборудование и многое другое. Фактически соединение через канал RS-232 используется гораздо шире как стандартный интерфейс для соединения между собой различных технических устройств, не имеющих никакого отношения к нашему ПК. 196
Скорость измеряется в бодах или битах в секунду, ее значение выбирается из ряда 300, 600, 1200, 2400, 9600 и 19200 бод, но большинство из этих значений никогда не используется в вашем компьютере. Обычно используются скорости 2400, 9600 и 19200 для связи по телефонным линиям и 9600 для работы с такими устройствами, как лазерные принтеры, способные принимать данные со скоростью, с которой мы можем ее подготовить. Для передачи одного символа или байта информации требуется, как правило, 10 бит с учетом накладных расходов, поэтому, если разделить значение в бодах на 10, вы получите приблизительную скорость передачи в символах в секунду. Другой параметр — четность, используемый для контроля ошибок, может принимать одно из трех значений: О (odd ♦— нечетный), Е (even — четный) и N (попе — никакой). Число бит (число значащих бит для представления символа) можно задать равным 7 или 8. Как вы уже знаете, в персональных компьютерах для представления символа используется 8 бит, но поскольку наиболее употребительные символы (буквы, цифры и т.д.) имеют в старшем разряде кода 0, иногда через последовательный порт передается только 7 бит. Последний параметр, чис^о стоповых бит, может быть задан равным 2 или 1. В то время как скорость (пропускная способность) имеет для нас совершенно понятный смысл и пользу, остальные три параметра относятся к техническим деталям и их смысл нам менее ясен. Однако две части компьютерного оборудования, которые должны общаться между собой, должны иметь согласованные установки всех четырех параметров, чтобы иметь ’’общий язык”. Чтобы установить значения параметров, нужно ввести команду в таком виде: MODE линия, скорость, четность. бит_данных, стол_бит например: mode С0М1:,300,п.8.1 mode COM2:.1200.е.7.1 В добавление к этим четырем параметром в конце команды может быть указан параметр, относящийся только к последовательному принтеру. Это параметр Р, который работает так же, как в команде MODE LPT, чтобы исключить тайм-аут. Команда MODE и резидентные программы В некоторых случаях применения команды MODE необходимо^ чтобы часть ее по окончании работы осталась активной в памяти компьютера. Она называется резидентной в памяти или просто 197
резидентной программой, которая составляет тему следующей главы. После прочтения следующей главы вам станет понятнее, о чем здесь идет речь. Пока же я хочу сказать, чтобы вы взяли на заметку, что разновидность команды, оставляющей резидентную часть, имеет такую форму записи: LPTx:=COMx,LPTx, , Р и R и L — параметры для экрана. Режимы клавиатуры Команда MODE может управлять двумя параметрами работы клавиатуры, причем оба они относятся к темпу SLBTOIlOBTOpa. Это слово первоначально было связано с электрической пишущей машинкой модели Selectric, у которой символ клавиши продолжал печататься, пока она удерживалась в нажатом состоянии. На пишущей машинке автоповтор оказывается полезным для печати линий дефисами или знаками подчеркивания. Он также полезен и на клавиатуре компьютера, чтобы автоматически перемещать курсор клавишами управления (’’стрелками”), хотя у компьютера автоповтор действует с любой клавишей. Чтобы команда MODE могла управлять параметрами автоповтора, необходимо, чтобы был загружен драйвер устройства ANSI.SYS, точно так же, как для управления числом строк экрана. (Драйвер ANSI.SYS описан в гл.23.) Первый параметр автоповтора, которым вы можете управлять, — это частота повторения ввода информации с клавиши. Другой параметр — время задержки, т.е. время от момента нажатия до начала действия автоповтора. Команда имеет следующий вид: mode con: rate=xx delay=yy (частота) (задержка) Параметр rate может принимать значения хх в диапазоне от 1 до 32. Чем больше число, тем больше частота повтора. При хх=1 повтор совершается с частотой 2 раз/с, при хх=32 — 30 раз/с. В справочнике команд IBM DOS приведена таблица, в которой указаны точные значения интервалов времени при каждой частоте повтора, которой нет в руководстве по MS-DOS. Параметр delay может принимать значения уу=1, 2, 3 или 4. Он представляет количество четвертых долей секунды. При уу=1 до начала автоповтора пройдет 0,25 с, при уу=4 — 1 с. Слово con:, используемое в этой команде, означает, что она должна изменить характер работы консоли. При вводе команды вы должны задать оба параметра rate и delay. В данном примере задается частота повтора 10 (4,3 секунды) и задержка 0,5 с: mode con: rate=10 detay=2 198
К сожалению, ни в описании IBM PC-DOS, ни MS-DOS не говорится о том, каковы должны быть нормальные значения частоты и задержки. Вам остается выяснить это опытным путем. На машине PS/2 настройка клавиатуры производится при установке системы с эталонной дискеты. Вывод информации о состоянии режимов устройств Последняя форма команды MODE, которую я рассмотрю, простая. Она позволяет узнать текущие режимы различных устройств. Вы можете с ее помощью проверить, правильно ли сделаны установки режимов дисплея. Команда имеет вид: mode /status если хотите, можно сократить "/status” до ”/sta”. Управление прерыванием программы командой BREAK Иногда возникает необходимость прервать выполнение программы либо потому, что она вам больше не нужна, либо потому что вы сначала задали ей одну работу, а теперь хотите ее прекратить, либо потому, что она вышла из-под контроля. Кроме выключения питания компьютера и последующего включения других очевидных способов прервать программу нет. Однако существует стандартный прием, с помощью которого вы зачастую можете вмешаться в работу программы — это использовать комбинацию клавиш Control-Break (клавиши имеют маркировку Ctrl и Break соответственно) или эквивалентную комбинацию Ctrl-C. Гарантировать, что нажатие клавиши прерывания действительно работает всегда, нельзя, но многие программы при своей работе распознают нажатие этой комбинации как сигнал прекратить работу. ДОС также распознает клавишу прерывания, более того ДОС позволяет до некоторой степени задавать ей, когда и как она должна действовать. Это достигается с помощью средства ДОС, так называемого ключа прерывания. Если ключ прерывания не задействован, то ДОС будет реагировать на Ctrl-Break только при выполнении ею операций ввода-вывода. Например, когда она производит вывод информации на экран дисплея, который будет прекращен, когда ДОС распознает нажатие клавиши прерывания и отреагирует на нее. Другие более сложные программы узнают о нажатии клавиши прерывания 199
независимо, и либо реагируют на нее, либо из осторожности игнорируют. Наоборот, если ключ прерывания находится в активном состоянии, ДОС будет стараться распознать каждое нажатие клавиши прерывания и заставит сделать то же самое любую работающую программу. Имеется два способа установки режима ключа прерывания так, чтобы вы могли эффективно управлять его действием. Об одном из них я расскажу в гл.23, он позволяет задать состояние ключа по умолчанию (включенное или выключенное). Другой способ мы рассматриваем здесь. Это использование команды BREAK, которая явным образом устанавливает ключ прерывания в состояние ON (включенное) или OFF (выключенное). Команда BREAK может использоваться в трех вариантах. Если вы напечатаете break то ДОС сообщит вам о текущем состоянии ключа прерывания в таком виде: BREAK is on (ключ прерывания включен) Если вы напечатаете команду break on то ключ прерывания будет установлен в состояние ON (включенное), при котором ДОС будет распознавать каждое нажатие клавиши прерывания. Наоборот, если вы напечатаете команду break off то это произведет обратное действие, т.е. установку ключа прерывания в состояние OFF (выключенное), при которой ДОС будет воспринимать прерывание только во время операций ввода-вывода. Как я уже упоминал, установка ключа прерывания командой BREAK предоставляет вам только ограниченную возможность управления прерыванием работы компьютера. Независимо от его установки во включенное или выключенное состояние другие факторы могут пересилить способность ДОС реагировать на ключ.' Тем не менее все-таки команда дает некоторый контроль прерываний в ваши руки. 200
Дистанционное управление при помощи команды CTTY Как ни приятно работать на персональном компьютере персонально, иногда неплохо поработать с компьютером на расстоянии, вызывая его, скажем, по телефону, отдавая ему команды и получая от него ответы. ДОС предоставляет такую возможность при помощи команды CTTY. Когда вы работаете с ДОС, она принимает от вас вводимую с клавиатуры информацию и показывает вам результаты на экране. Но ДОС не обязательно должна работать с указанными двумя устройствами, вместо них ДОС может перенаправлять свое внимание, в частности на телефонную линию связи, к которой подключен другой персональный компьютер. В этом случае ДОС может воспринимать вводимую информацию типа печатаемой на клавиатуре с телефонной линии и также передавать в телефонную линию информацию типа отображаемой на экране. Команда CTTY выполняет описанную работу, сообщая ДОС, на какое устройство она должна обращать свое внимание. Например, при помощи команды вроде ctty С0Н1: вы можете дать ДОС указание выполнять операции через первый последовательный порт (СОШ). Если этот последовательный порт присоединен к модему, который выходит через телефонную линию на другой персональный компьютер, то вы можете управлять своим компьютером дистанционно. Если вы поработали в режиме дистанционного управления, то можно вернуться в обычный режим работы с консолью (клавиатура и дисплей), введя команду: ctty con: Прежде чем вы придете в восторг от возможностей, пришла пора сказать "однако...” Чтобы воспользоваться возможностью работать в дистанционном режиме, мало иметь команду ДОС CTTY. Кроме того, нужно, чтобы ваш компьютер был предварительно правильно подготовлен, чтобы была необходимая дистанционная связь (через модем и телефонную линию или как-нибудь иначе), а программы, с которыми вы работаете, должны иметь заранее предусмотренную возможность ввода-вывода стандартными средствами ДОС, которые по команде CTTY могут быть перенаправлены на другие устройства. Последнее не может быть сделано большинством таких важных программ, как системы подготовки текстов или электронных таблиц. Программы такого рода вполне естественно не предназначены для 201
дистанционной работы. Тем не менее, выбирая подходящее программное обеспечение, которое может быть разработано специально для этой цели, вы можете работать с персональным компьютером на расстоянии, используя возможности команды CTTY. Впрочем, если вам нужны надежные средства для дистанционной работы на компьютере, несколько компаний могут продать вам специально разработанные для этой цели программы. Они могут оказаться весьма удобными, если вы хотите помочь кому-либо в работе на его компьютере, или если вам необходимо пользоваться региональной локальной сетью, или управлять ei6 из дома. Передача информации через команду SET Некоторым программам необходимо передать информацию о том, каким образом мы будем с ней работать. К примеру, у вас может быть информационно-справочная программа, которой нужно указать, где находятся на диске файлы, нужные для ее работы. Делать это каждый раз, когда вы используете программу, было бы утомительно. Чтобы избежать этой и тому подобных проблем, в ДОС имеется команда SET. В большинстве случаев вам не нужно задумываться над использованием этой команды. Она потребуется только для некоторых программ, которые могут извлечь из нее пользу для себя. Если вам действительно потребуется эта команда, то из документации на программу вы сможете узнать, что вам нужно будет сделать. Впрочем для вашего сведения я расскажу о некоторых основах команды SET и ее действиях. Окружение ДОС Прежде всего ДОС создает некоторый общий источник информации, которым могут пользоваться все ваши программы. Он называется окружением. В окружение ДОС записывает ряд равенств, каждое из которых начинается с имени, за ним следует знак равенства и затем некоторое значение. Вот, например, как выглядят эти равенства, которые записаны в окружении в моем компьютере: COHSPEC*c:\COHHAND.СОМ INCLUDE*c:\qc\i ncIude LIB=c:\qc\lib TMP*c:\qc\tmp PROMPT*$p$g 202
Если заданы эти равенства, то любая „ программа, которой требуется информация, может просматривать область окружения, чтобы найти имя идентификатора информации, предназначенной для нее. Так, в моем примере программа Microsoft Quick-C (системы программирования на языке Си фирмы Microsoft) просматривает равенства, начинающиеся с "INCLUDE”, ”LIB” и ”ТМР”. Когда она находит эти равенства, она может перехватить информацию, которая оставлена для нее. В данном случае, как это чаще всего и бывает, информация представляет собой пути поиска в каталогах диска, где Quick-C должна искать свои файлы. Окружение придумано как универсальный способ передачи информации, предназначенной для программ, с которыми вы работаете. Но для того, чтобы оно работало, вы должны иметь средства для записи равенств в область окружения ДОС, а также для получения информации о текущем содержании окружения. В качестве такого средства предусмотрена команда SET. Использование команды SET Если ввести только команду SET без параметров: set то вы сможете посмотреть те равенства, которые находятся в текущем окружении. Попробуйте проделать это на своей машине и посмотрите, что у вас имеется. Может быть вы обнаружите, что без вашего ведома ДОС создала равенство СОМ8РЕС=значение, подобное тому, как в моем примере. Независимо от того, находятся ли какие-то равенства в области окружения у вас или нет, вы можете это установить, пользуясь командой SET. Чтобы создать равенство или изменить существующее, вы должны выдать команду в одной из следующих форм: set имя=значение set f f=\thi s\d i rect set prompt* Как бы вы ни задали равенство, команда SET занесет его в область окружения. Если это новое равенство, то оно появится там впервые. Если оно уже существует, то ему будет присвоено новое введенное вами значение. Если же вы ничего не задали в качестве значения, то равенство будет удалено из окружения (таким способом производится удаление равенств, в которых вы больше не нуждаетесь). 203
Особые разновидности команды SET Оказывается, ДОС имеет две команды, которые фактически являются особой разновидностью команды SET. Вы уже их знаете: это команды PATH и PROMPT, с которыми мы встречались в гл. 14 и 15 соответственно. Хотя я в свое время об этом не упоминал, обе команды просто заносят информацию в область окружения для использования ее в будущем. Таким образом следующие команды: pathxxx promptyyy оказываются полностью эквивалентными (а фактически просто замаскированными) формами вот этих команд: set path=xxx set prompt=yyy Закончив с этим, мы готовы перейти к рассмотрению программ, остающихся в памяти постоянно (резидентных) и их работе с ДОС. Размер области окружения в вашей системе Может случиться так, что при добавлении длинных строк равенств в ваше окружение вам не хватит места. Если это произойдет, ДОС выдаст сообщение: Out of Environment Space (не хватает -места в области окружения) По умолчанию в область окружения можно записать 127 байт. Если вам требуется записать больше, вы можете сделать это, применяя параметр /е в команде задания окружения (SHELL) файла конфигурации CONFIG.SYS. 204
Глава 20 РЕЗИДЕНТНЫЕ ПРОГРАММЫ ДОС Программы, как и люди, могут быть объединены в группы множеством различных способов: по размерам, по роду работы, которую они выполняют, по языку, на котором они "говорят" и т,д. Они могут также характеризоваться временем, в течение которого они пребывают в памяти машины и местом в памяти. Большинство программ, выполнив свою работу, после этого заменяются другими. Но некоторые, так называемые резидентные программы, остаются в памяти до тех пор, пока вы не выключите компьютер или не произведете перезапуск ДОС. Эти программы называют также резидентными в памяти или TSR — программами (terminate and stay — завершить и остаться). Резидентные программы — один из самых таинственных элементов мира ДОС, и о них мы поговорим в этой главе. Резидентные программы, и что они делают Коща ДОС запускает программу, он находит для нее пространство в памяти, копирует программу с диска в память и затем на время передает управление от компьютера этой программе. Обычно по окончании работы программы, она снова возвращает управление компьютером операционной системе, и ДОС использует память, которая была занята последней программой, для следующей. С резидентными программами дело обстоит немного по-другому. Коща резидентная программа завершает начальную часть своей работы, она передает .управление компьютером в ДОС, но одновременно сообщает ДОС, чтобы последняя не отдавала другим программам ту область памяти, в которую она была загружена. Программа просит ДОС оставить ее в памяти. В свою очередь ДОС выставляет барьер там, где кончается резидентная программа, и загружает следующую нашу программу над резидентной программой. Что означает ’’над” резидентной программой? Когда мы говорим о памяти, мц связываем любую ее часть с номером. Номера начинаются с малых и располагаются по возрастанию, так же как номера домов вдоль одной улицы начинаются с малых и затем увеличиваются. ДОС и резидентные программы располагаются по адресам, начиная с малых номеров, поэтому, когда я говорю, что программа загружается над другой программой, то я имею в виду, что она помещается в памяти по адресам с большими номерами. В результате, резидентная программа соединяется с небольшой частью ДОС, которая остается в нижней части компьютерной памяти. Все последующие программы, которыми вы пользуетесь, 205
будут работать в области памяти с более высокими адресами, не затрагивая резидентную программу и ДОС, находящиеся ниже. Таким образом, резидентная программа постоянно находится в памяти до тех пор, пока не будет выключен компьютер. В чем состоит суть резидентных программ? В отличие от других программ резидентная программа остается активной даже после того, когда она, казалось бы, завершила свою работу. Программа остается в памяти и с помощью некоторых технических ухищрений может продолжить свою работу, даже если после нее вы запускаете другие программы. Резидентные программы имеют много применений, и вы сможете почувствовать некоторые их возможности, рассмотрев ряд примеров. Сама ДОС включает в себя четыре разных резидентных программы, которые мы рассмотрим. Известно также много других интересных резидентных программ, которые не являются составной частью ДОС, например SideKick, SuperKey, LotusMetro. Мы не сможем рассмот¬ реть их в этой книге, но вы должны знать об их существовании. Фоновая печать Самая первая резидентная программа ДОС, которую мы рассмот¬ рим, вызывается командой PRINT, действующая как своего рода накопитель печати, спулер, т.е. как управляющий, распоря¬ жающийся информацией, которую вы хотите вывести на печать. Работа накопителя печати состоит в том, чтобы выводить на принтер информацию, не занимая процессор на то время, когда производится печатание. Если вы пользовались принтером на своем компьютере, то, вероятно, заметили, что он работает значительно медленнее, чем может выполнять работу компьютер. Пока ваш принтер усердно трудится, почти бея производительная мощь компьютера бесполезно растрачивается, поскольку само печатание не требует постоянного контроля со стороны компьютераг Резидентная программа PRINT справляется с этой задачей, беря на себя работу по своевременной подаче информации для принтера, оставляя в то же время процессор доступным для обслуживания других программ. Это напоминает несколько совмещение чтения книги и помешивания супа, который вы готовите. Вы. уделяете помешиванию супа только часть своего внимания. Точно так же и компьютер не отдает всю свою мощь печатанию информации. Резидентная программа PRINT отвлекает процессор на печатание ровно настолько, чтобы принтер был постоянно занят своей работой, оставляя основную часть интеллектуальных способностей процессора для работы других программ, которые- вы хотите запустить. Вследствие ненавязчивого способа своей работы PRINT относится к так называемым фоновым программам. Если вы один раз 206
запустите программу PRINT, она будет сидеть в компьютере и забирать некоторую часть его мощи, необходимую для печатания того, что вы задали ей сделать (так же, как вы уделяете только часть своего внимания помешиванию супа во время чтения книги). Когда программа PRINT заканчивает свою работу, она остается в памяти готовой к новой работе, но уже совершенно не отнимает процессорное время. Когда вы вновь обращаетесь к программе PRINT, чтобы еще что-то напечатать, она займет очень небольшую часть времени компьютера для того, чтобы занять работой принтер, а остальное. время процессора будет предоставлено для других программ. Несмотря на некоторые не совсем понятные детали поведения этой резидентной программы, работать с ней очень просто. Использование команды PRINT В первый раз, когда вы вызываете команду PRINT, программа загружается в память и остается там, пока не будет выключен компьютер или перезапущена ДОС. С этого времени, когда вы будете вводить команду PRINT, вы только должны сообщить ей, что нуждаетесь в ней. Чтобы запустить PRINT, вы должны напечатать команду и указать ей, какой принтер использовать, например: PRINT /О:PRINTER (принтер) Например, предположим, что у вас есть два устройства параллельной печати, подключенных к портам LPT1 и LPT2, и вы хотите, чтобы было использовано устройство LPT2. В таком случае вы должны задать команду: PRINT /0:LPT2 Если вы забыли указать принтер, команда запросит информацию таким образом: Name of list device [PRN:] (Имя печатающего устройства [PRN:]) и будет ждать ответа. Теперь по вашему желанию вы можете просто нажать клавишу ввода, тогда PRINT использует имя устройства по умолчанию, т.е. LPT1.( PRN — это синоним LPT1.) После того как вы установили программу PRINT, задайте информацию о файле, которую вы хотите вывести на печать. PRINT может работать только с файлами, находящимися на диске, поэтому, если вы хотите использовать команду PRINT для печати выходных данных вашей программы, то сначала нужно вывести эти данные на диск в виде файла, подготовленного для печати. 207
Многие программы, особенно процессоры текстовой информации, подготавливают информацию именно в таком удобном виде. Однако, если ваша программа сама имеет возможность вывести информацию на печать, то лучше не использовать команду PRINT. Некоторые программы сохраняют выходные данные в своем собственном формате, поэтому ваши результаты могут быть выведены на печать не так, как они должны выглядеть, если их напечатает сама программа. Предполагая, однако, что ваш файл находится на диске, вы можете задать команду для его печати в следующем виде: PRINT HYFILE.DOC Если вы хотите, можете указывать названия не одного, а нескольких файлов. Точно так же, если ваши файлы помещены в подкаталог, то в команде можно задать имя пути к файлу, например: PRINT \PATH\MYFILE.DOC (PRINT \nyTb\MYFILE.DOC) Очередь файлов для печати Команда PRINT обладает также возможностью сохранять список файлов для печати, который называется очередью печати. Вы можете поставить в очередь до 10 файлов и до тех пор, пока в очереди будут находиться не напечатанные файлы, PRINT будет работать, передавая информацию на принтер. Когда вся работа будет выполнена, PRINT перейдет в состояние "сна”, из которого вы можете вывести ее, запросив печать новой информации. Если вам предстоит печатать очень много, вы можете увеличить длину очереди, задав команду PRINT с опцией /Q: PRINT /Q:размер_очербди где ”размер_очереди” может быть любым числом от 4 до 32 (наверное, это гораздо больше, чем нужно для ваших файлов). Для того чтобы начать печатать файлы из очереди, можете воспользоваться следующей формой команды: PRINT \PATH\FILE.EXT (PRINT \путь\имя_файла.расширение) Если очередь уже существует, можете воспользоваться командой: PRINT \PATH\NEXTFILE.EXT (PRINT \путь\имя_следующего_файла.расширение) 208
для того чтобы поставить файл в очередь. (Чтобы добавить в эчередь сразу несколько, файлов, можете также использовать обобщающую спецификацию * или ?.) Если вы изменили первоначальное намерение печатать файл из очереди, нужно ввести! PRINT \PATH\THATFIIE.EXT /С (PRINT \путь\имя_этого..файла расширение) /С чтобы удалить из очереди файл и прекратить работу. Если вы изменили первоначальное намерение печатать все файлы из очереди, нужно ввести: PRINT /Т чтобы прекратить работу (и уничтожить очередь). Наконец, если вы хотите только посмотреть, какие файлы находятся в очереди, нужно ввести: PRINT и команда PRINT сообщит вам имена файлов. Помощь при распечатке экрана Следующая резидентная команда, которую мы рассмотрим, — это команда GRAPHICS. Когда вы изучали возможности вашего компьютера, вы несомненно запомнили одну из встроенных функций распечатки содержимого экрана, позволяющую, пользуясь клавишей PrtSc (PrintScreen — печать экрана), скопировать информацию с экрана дисплея на принтер. Однако стандартная операция печати экрана предназначена только для распечатки символьной информации, но не графических изображений, которые могут находиться на экране. Поскольку большинство из нас не так уж часто работает с графикой, то графические изображения могут быть для нас довольно ценными, поэтому полезно знать, как можно вывести на печать полное графическое изображение с экрана. 1 Если у вас имеется подходящий принтер, типа IBM Graphics Printer или совместимая с ним модель, тогда вы можете скопировать информацию с экрана дисплея на принтер при помощи программы GRAPHICS. 209
Программа GRAPHICS Резидентная программа GRAPHICS немного отличается от программы PRINT. В то время как PRINT будет работать одновременно с другими вашими программами (в фоновом режиме), GRAPHICS — это программа, которая подменяет или улучшает работу стандартной операции, встроенной в компьютер. Компьютер IBM PC уже имеет возможность выполнять операцию печати экрана с текстовой информацией. Программа GRAPHICS просто добавляет к этой функции возможность копировать с экрана текстовую информацию, но с таким же успехом и графические изображения. Когда вы вызываете программу GRAPHICS, вводя ее имя: GRAPHICS она загружается в память (и просит ДОС оставить ее резидентной), но после этого она ничего не делает, т.е. ничего не делает, пока вы не нажмете клавишу PrtSc (’’печать экрана”). Тогда программа GRAPHICS примется за работу как обычная программа печати экрана, только для графических изображений. Если вам эта программа может потребоваться, то включите ее в командный файл AUTOEXEC.BAT. Управление распределенными данными Следующая резидентная программа, которую нам предоставляет ДОС — это программа SHARE. Она применяется для управления совместным использованием дисковых файлов несколькими программами. Программа SHARE берет на себя заботу о решении проблем, возникающих, когда более одной программы или более одного компьютера пользуются совместно вашими дисками. Эта особая проблема может возникнуть, если вы включились в сеть, позволяющую нескольким компьютерам иметь доступ к одному диску и передавать данные друг другу. Если одна программа или один компьютер считывают файл данных, а другие его изменяют, то может получиться полная неразбериха. Назначение программы SHARE состоит в том, чтобы координировать совместное пользование данными, чтобы не произошло ничего плохого. Фактически SHARE используется в трех случаях: 1) для управления распределенными данными в сетях; 2) с некоторыми типами дисководов SHARE проверяет, чтобы не была заменена дискета в критический момент операции; 210
3) с жесткими дисками, которые имеют разделы свыше 32 Мбайт, программа SHARE используется для организации правильной работы. Если при установке системы на вашем компьютере была нужна программа SHARE, то вы должны включить ее в командный файл AUTOEXEC.BAT. (Если вы это сделали, то убедитесь, что команда стоит после команды PATH, чтобы ДОС смогла найти файл SHARE.EXE.) Команда состоит из одного имени программы: share Вы можете включить SHARE другим способом, с помощью команды INSTALL в ваш файл конфигурации CONFIG.SYS. Повышение скорости работы с диском. Команда FASTOPEN Программа FASTOPEN может улучшить характеристики вашего жесткого диска. Она достигает этой цели путем выделения некоторой области памяти для сохранения информации о каталогах, с которыми вы в данное время работаете и порядке следования файлов. Это приводит к тому, что в большинстве случаев ДОС может не обращаться к жесткому диску за информацией, которую она имеет под рукой. Применяя эту команду, вы должны указать некоторые технические подробности. Однако в подавляющем большинстве случаев, вам они не потребуются; в противном случае обратитесь к вашему фирменному руководству по ДОС. В простейшем случае для применения команды FASTOPEN нужно задать список разделов диска, обращение к которым должно быть ускорено. Вот пример: fastopen с: fastopen с: d: Обычно нужно поместить команду FASTOPEN в командный файл AUTOEXEC.BAT. (Если вы это сделали, то убедитесь, что команда стоит после команды PATH, чтобы ДОС смогла найти файл FASTOPEN.EXE.) Так же, как и SHARE, вы можете включить FASTOPEN с помощью команды INSTALL в ваш файл конфигурации CONFIG.SYS. 211
Глава 21 ДОС И НАЦИОНАЛЬНЫЕ ОСОБЕННОСТИ Компьютеры, совместимые с IBM PC, применяются во всем мире и от ДОС требуется, чтобы она поддерживала разнообразные клавиатуры, разные наборы символов и некоторые условности, принятые в разных странах. Средства, с помощью которых это достигается, называются National Language Support (средства поддержки национальных языков). Если вы пользуетесь на своем компьютере американским диалектом английского языка, то эти средства вам совершенно не нужны — ДОС автоматически настроит все именно так, как нужно. Поэтому вы можете пропустить эту главу. Средства поддержки национальных языков Средства поддержки национальных языков дают ДОС возможность выполнять следующие виды обслуживания: 1. Пользоваться клавиатурой, наиболее удобной для того языка, на котором вы работаете. 2. Выводить на дисплей буквы и знаки, удобные для того языка, на котором вы работаете. 3. Приспосабливать ДОС к некоторым принятым в разных странах условностям и традициям. Эти условности влияют на следующее: способ изображения времени; способ изображения даты; последовательность данных в изображении времени и даты; употребление заглавных букв; формат печатного листа; символ денежной единицы; вид знака разделителя десятичной дробной части (точка или запятая). Единственное,что не делают средства поддержки национальных языков, не переводят на другие языки сообщения ДОС, в частности, сообщения об ошибках. Однако в вашей стране может быть переведенная версия ДОС . Но если такой переведенной версии нет, то лучшее, что можно сделать, использовать стандартную ДОС со средствами поддержки национальных языков, которые позволят приспособить ее в вашей стране. Если вас интересует, для каких стран имеется средство поддержки, пцрмотрите в руководстве по ДОС. В описании команды KEYB приводятся данные о типах поддерживаемой клавиатуры. В описании команды COUNTRY перечислены страны, для которых обеспечивается полная поддержка. DOS 4.00 и DOS 4.01 поддерживают систему для 23 стран и 17 типов клавиатуры. Существует, например, русифицированная версия MS-DOS 4.01 г — Прим. перев. 212
Как установить средства поддержки национальных языков Самый простой способ установить средства поддержки национальных языков, это предоставить ДОС самой сделать все. В общей сложности для установки потребуются восемь различных команд. Три из них должны быть вставлены в файл конфигурации CONFIG.SYS, остальные пять — в ваш командный файл AUTOEXEC.BAT. (Эти два файла информируют ДОС об используемой конфигурации вашей системы и задают ряд команд, которые должны исполняться автоматически при каждой загрузке ДОС. Подробно файл конфигурации CONFIG.SYS рассматривается в гл.23, AUTOEXEC.BAT — в гл.24.) Когда вы производите установку ДОС (см.гл.5)» программа SELECT дойдет до того места» где она задаст вам вопрос» желаете ли вы оставить клавиатуру по умолчанию, и предложит ввести информацию о стране. Ответив на этот вопрос "No”(нет), вы получите возможность настроить ДОС для той страны, которую выберете. Далее программа SELECT автоматически вставит надлежащие команды в ваши файлы CONFIG.SYS и AUTOEXEC.BAT. Если вы пользуетесь старой версией ДОС(более ранней, чем 4.x), то у вас не будет программы автоматической установки ДОС. В этом случае вы все равно можете воспользоваться программой SELECT. Подробности вы узнаете из руководства по ДОС. Кодовые страницы Если вы пользуетесь не американской клавиатурой, ДОС следит за нажатием клавиш и транслирует их в соответствующие символы. А как быть с данными, которые хранятся на диске? При их отображении на дисплее или выводе на печать ДОС должна проверять,чтобы коды данных транслировались в правильные символы. Это производится с помощью так называемых кодовых страниц. Как я уже объяснял в гл. 12, стандартные коды для хранения информации называются кодами ASCII (американский стандарт кодов для обмена информацией). Всего может быть 256 возможных символов; стандарт ASCII определяет для каждого кода соответствующий символ. Большая часть из 256 символов предназначена для англоязычных стран. Некоторые не американские символы также имеются, но их число недостаточно для поддержки символов других языков. Кодовая страница представляет собой таблицу, содержащую 256 записей, некоторые страницы ориентированы на определенную страну (страны). Можно считать, что код ASCII представляет собой определенную кодовую страницу. ДОС поступает к нам с некоторым числом различных кодовых страниц и имеется возможность выбрать нужную вам при помощи так называемого переключения кодовых страниц. Как следует из названия, вы можете перейти от одной кодовой страницы к другой, если возникнет такая необходимость. 213
Существуют кодовые страницы двух типов: реализованные аппаратными средствами и программные готовые кодовые страницы. Аппаратно реализованные кодовые страницы входят в состав оборудования соответствующего устройства. Например, принтер, который будет эксплуатироваться в Португалии, может поставляться с португальской аппаратной кодовой страницей. Многие модели подобных устройств могут работать только с этой встроенной кодовой страницей. Готовые кодовые страницы поступают в составе ДОС. Например» IBM DOS 4.00 и 4.01 поставляются с одиннадцатью различными кодовыми страницами, a MS DOS — с пятью. Кодовые страницы для восточных языков (только в IBM DOS) поддерживаются специальной версией ДОС для азиатских стран и требуют специального оборудования. (Подробности вы узнаете из руководства по ДОС.) С помощью определенных команд вы можете указать ДОС, какие кодовые страницы нужно установить для дисплея и принтера вашего компьютера. Чтобы воспользоваться этой возможностью, вы должны иметь принтер, совместимый с IBM и дисплей одного из следующих типов: дисплей PS/2; EGA — совместимый; VGA — совместимый. Если потребуется, вы можете подготовить более одной кодовой страницы. Хотя каждое устройство одновременно может работать только с одной активной страницей, вы можете переключить страницу, когда хотите. Команды запуска средств поддержки национальных языков Как я уже говорил выше, наилучшим способом для установки средств поддержки национальных языков является использование программы SELECT, которая все сделает сама при установке ДОС. Однако для удовлетворения вашего интереса, я приведу команды, которыми вы будете пользоваться. Дальнейшие подробности вы узнаете из руководства по ДОС. В файле конфигурации потребуются команды: COUNTRY чтобы указать ДОС, для какой страны и DEVICE=DISPLAY.SYS DEVICE=PRINTER.SYS чтобы подготовить дисплей и принтер к установке нужных кодовых страниц. В файле AUTOEXEC.BAT потребуются команды: NLSFUNC чтобы загрузить резидентную программу поддержки национальных языков, MODE CON: CODEPAGE PREPARE (MODE CON: активная_кодовая_страница приготовь) MODE LPT1: CODEPAGE PREPARE 214
(MODE LPT1: активная_кодовая_страница приготовь) чтобы указать две кодовые страницы для дисплея (CON:) и принтера (LPT1:); KEYB чтобы сообщить ДОС, какой должна быть клавиатура; СНСР чтобы переключиться на другую кодовую страницу. Команды модификации средств поддержки национальных языков Если вы пользуетесь несколькими кодовыми страницами, вы можете сменить номер активной кодовой страницы, когда угодно по команде СНСР (переключиться на другую кодовую страницу). Если вследствие аппаратной ошибки дисплей или принтер потерял номер активной кодовой страницы, вы можете восстановить номера кодовых страниц командами: MODE CON: CODEPAGE PREPARE (MODE CON: активная_кодовая_страница приготовить) MODE LPT1: CODEPAGE PREPARE (MODE LPT1: активная_кодовая_страница приготовить) а затем их заново активизировать командами: MODE CON. CODEPAGE REFRESH (MODE CON: активная_кодовая_сграница обновить) MODE LPT1: CODEPAGE REFRESH (MODE LPT1: активная_кодовая_страница обновить) Если вы пользовались командой KEYB, чтобы работать с не американской клавиатурой, то вернуться к американской, которая принята по умолчанию, можно в любой момент при помощи комбинации клавиш CONTROL-ALT-F1 (т.е. удерживая в нажатом состоянии одновременно клавиши CONTROL и ALT, нажать клавишу F1). Если вы хотите снова вернуться к не американской клавиатуре, введите комбинацию клавиш CONTROL-ALT-F2. В любое время вы можете запросить ДОС, чтобы она показала вам, какие кодовые страницы активны, введя команду mode /status Возможно точно так же узнать о статусе клавиатуры, если ввести без параметров команду: keyb 215
Глава 22 КЛАВИШИ ДЛЯ РЕДАКТИРОВАНИЯ В ДОС В этой главе мы собираемся отойти немного в сторону. Вместо рассмотрения команд ДОС, мы намерены познакомиться с одним интересным свойством ДОС, которое можно использовать для упрощения и ускорения вашей работы на компьютере. Речь идет о редактирующих клавишах ДОС. Я ничего не обещаю в этой главе. У кого-то это вызовет раздражение, покажется неинтересным и бесполезным, другим может быть, наоборот, весьма удобным. (Сам я колеблюсь между этими точками зрения.) Вы сами решите для себя, стоит ли это того, чтобы изучать. Основы использования клавиш для редактирования Работая на компьютере, вы обычно дзете ему команды, печатая их на клавиатуре. Иногда вы нажимаете только одну клавишу, например, когда отвечаете на вопрос программного меню, чтобы выбрать режим работы. В других случаях вы нажимаете на клавиши долго, например, печатая документ в текстовом процессоре или редактирующей программе. Но чаще всего вам приходится нажимать клавиши для ввода в компьютер не очень долго. Большую часть времени вы вводите короткие строчки информации и после этого нажимаете клавишу ввода. Например, когда вы задаете команду ДОС COPY или FORMAT, вы вводите только одну строку текста, состоящую из имени команды и параметров, если требуется. Поскольку вы делаете это наиболее часто, желательно иметь какие-либо способы упростить эту работу, именно для этого и служат редактирующие клавиши ДОС. Редактирующие клавиши ДОС выполняют ряд действий и операций, для которых используются специальные клавиши. Они помогают вводить или изменять строки команд. Например одна из редактирующих клавиш позволяет скопировать последнюю напечатанную вами строку, поэтому вы сможете повторить команду, не перепечатывая ее, другие клавиши позволяют внести изменения в напечатанную вами строку. Все это кажется достаточно удобным для ускорения вашей работы и некоторого сокращения числа нажатий клавиш. Но это не так просто, как кажется, поэтому прежде чем вы решите, что вам это нужно позарез, следует узнать и о недостатках. Итак, начнем с недостатков. 216
Проблемы редактирований с помощью клавиш Первая проблема состоит в том, что клавиши для редактирования не всегда работают, или по крайней мере иногда кажется, что они не работают. На самом деле они, конечно, всегда работают, если доступны, но доступны они не всегда. Вот что я имею в виду: ДОС дает возможность редактирования строк, которую любая программа, включая любую часть ДОС, может использовать для проверки нажатой вами клавиши. Возможность редактирования доступна там, где нажатие клавиши для редактирования вызывает соответствующие действия. Если вы печатаете строку, находясь в ДОС, то вы можете пользоваться этими клавишами для упрощения ввода и исправлени<я строки. Но не все программы воспринимают ввод со служебной клавиатуры. Поэтому нужно узнать, какие программы могут, а какие не могут пользоваться клавишами для редактирования. Естественно, что все встроенные команды ДОС позволяют пользоваться клавишами для редактирования, но вы имеете дело и с множеством других программ. И, как я говорил, некоторые программы воспринимают ввод редактирующей клавиши, а другие не воспринимают. Хуже того, обычно не объявляют, можно ли пользоваться клавишами для редактирования. По этим причинам вы должны определить свой стиль работы, установив доступны ли такие клавиши в вашей программе. Если вы не можете рассчитывать на их использование всегда, то они становятся ненадежными инструментами, друзьями, на которых нельзя положиться. Вторая проблема с редактирующими клавишами состоит в том, что нужно их заучить. Это всегда самый высокий барьер, который нужно преодолеть, работая с .персональным компьютером. Нужно многое, очень многое выучить. Чтобы овладеть компьютером, нужно изучить, как работает машина, как работает память на дискетах, как работает ДОС, как работают основные программы, которыми вы пользуетесь - процессор текстов, электронные таблицы Lotus, может быть программа для ведения бухгалтерского учета. Это обширный материал для усвоения и любое дополнительное бремя, особенно такое, которое в одних случаях помогает, а в других нет, возможно, вы не захотите взять на себя. Давайте посмотрим на вещи прямо: никто не может изучить все, 4то известно о компьютере. Поэтому наша главная задача, когда мы имеем дело с компьютером, - ограничить круг вопросов, которые необходимо изучить, и решить, что из тысяч предметов для изучения для нас наиболее важное. Теперь снова вернемся к клавишам для редактирования в ДОС. Они в определенной степени представляют удобный и повышающий производительность инструмент, но его освоение вряд ли сыграет существенную роль в в эффективном использовании вашего компьютера. Если вы хотите о них узнать, - отлично. Но если не хотите, - тоже ничего. Клавиши для редактирования в ДОС могут 217
быть полезны, особенно для простых операций (более сложными возможностями будут пользоваться только энтузиасты). Но если вы решили, что редактирующие клавиши не настолько важны для вас, чтобы тратить на них время, то не лишайтесь сна из-за них. Если вы собираетесь изучить клавиши для редактирования, то нужно освоить основные из них' в самом начале изучения компьютера, тогда эти знания составят часть ваших навыков работы с компьютером и вы будете пользоваться ими все время. Изучение их позже означает, что вам попросту не удалось их приобщить к приемам рациональной работы на компьютере. А теперь быстро принимайте решение: внимательно изучите главу и прочтите о редактирующих клавишах или пропустите ее. Но в любом случае не пропускайте всю главу - в последней части объясняются некоторые специальные клавиши, о которых вы должны знать, даже если не собираетесь пользоваться клавишами для редактирования в ДОС. Как работают клавиши для редактирования ч Работа редактирующих клавиш ДОС основывается на двух простых принципах. Первое - вы должны иметь возможность просто оценить, до какой позиции вы напечатали строку, прежде чем нажали клавишу ввода, чтобы . сообщить ДОС, с чем она должна работать. Второе - ДОС должна знать (и она знает), какую строку вы ввели последней, чтобы вы могли воспользоваться всей или частью последней введенной строки для облегчения ввода следующей. В этой части я объясню, как работает каждая из редактирующих клавиш, помните, однако, что они могут применяться при определенных условиях. Клавиши работают всегда, если вы вводите команды ДОС, когда вы вводите информацию в программу ДОС, а также с некоторыми программами, но не со всеми. Фактически они не работают со многими популярными программами, которыми вы пользуетесь, как, например, редакторы текстов, но там, где они работают, могут быть очень полезны. Исправление опечаток Начнем с предположения, что вы напечатали строку, но не нажали пока клавишу ввода. Допустим, что вы нечаянно левой рукой нажимали на клавиши, которые находятся на одну позицию правее, чем хотели, и вместо того, чтобы напечатать FORMAT А: , вы напечатали в строке приглашения к вводу С:> следующее: GOTMSY S: 218
Очевидно, что это опечатка. Как ее исправить? Есть два способа. Первый состоит в том, чтобы отменить или выбросить всю напечатанную строку. Имеется клавиша для редактирования в ДОС, специально для этого предназначенная - это клавиша Escape (отмена, отказ) (Esc на клавиатуре), она производит отмену введенной строки. Когда вы нажимаете клавишу Esc, ДОС выводит в конце напечатанной вами строки знак \ - обратная косая черта и перемещает курсор в новую строку, например: С:>GOTMSY S:\ и ожидает ввода строки заново. Имеется другая, не связанная с редактирующими комбинация клавиш, которая иногда действует так же, как клавиша отмены - это операция прерывания (иногда она называется Control-C). Чтобы ввести ее, нужно, удерживая в нажатом состоянии клавишу Ctrl, нажать клавишу Break. Если бы вы проделали это с нашим примером, то вы увидели бы следующее: C-:>GOTMSY S: ~С Здесь, как вы понимаете, по тому, что появилось приглашение к вводу С: > ДОС аннулировала все, что вы ввели и вернулась к началу. Запомним, что в некоторых случаях прерывание действует так же, как клавиша отмены. В итоге* в обоих случаях в наших примерах мы возвращаемся к начальному состоянию. Но вот в чем разница: Break (прерывание) может также прекратить работу программы или отменить любую работающую программу. Однако не привыкайте пользоваться этой клавишей только для того, чтобы отменить строку, которую вы напечатали. Если вы привыкнете к этому, то однажды вы случайно прервете вашу программу, совершенно не собираясь это делать. Более подробно мы обсудим функцию этой клавиши в конце главы. Обычно для того, чтобы аннулировать введенную строку, пользуйтесь клавишей Esc, которая служит как клавиша для отмены. Если вы напечатали что-либо с большим количеством ошибок, как в нашем примере, то вы, скорее всего, захотите воспользоваться клавишей отмены для аннулирования всей строки. Чаще всего, однако, мы хотим исправить одну простую опечатку. Пусть, например, вы напечатали неверно одну букву - палец попал на другую клавишу и вместо "FORMAT” получилось "FORMA5”, или 219
пропустили одну букву и получилось ’ТОМАТ”, и вы хотите поправить текст, не перепечатывая строку. Для этого нужно при помощи клавиш для редактирования вернуться во введенном тексте до того места, в котором получилась опечатка. Обратное движение курсора Когда вы нажимаете клавишу возврата, то смещаете курсор на одну позицию назад в напечатанной строке. При этом последний символ стирается, как будто вы его не вводили. Путем обратного движения курсора вы можете стереть то, что ввели, пока не сотрете неверно введенный символ, который нужно исправить. Вы можете выбрать одну из двух клавиш для обратного движения курсора. Можно использовать стандартную клавишу Backspace (возврат на позицию влево) или клавишу перемещения курсора влево (’’стрелка влево”). Обе эти клавиши выполняют одну и ту же операцию. Клавиша Backspace расположена в правом верхнем углу основной части клавиатуры. На некоторых клавиатурах она помечена буквами BS (backspace); на клавиатурах фирмы IBM она помечена жирной стрелкой, направленной влево. Клавиша перемещения курсора влево вместе с другими клавишами управления курсором расположена справа от основной части клавиатуры и обозначена цифрой 4 на цифровой клавиатуре или стрелкой, направленной влево на специальной группе кнопок управления курсором в некоторых клавиатурах. Повторное воспроизведение ударов по клавишам После того как с помощью клавиши возврата влево или перемещения курсора влево вы удалите неверно введенную часть строки, вы можете допечатать строку правильно, нажать клавишу ввода, и ваш компьютер будет исполнять вашу исправленную команду. В сущности, обе клавиши отмены и возврата позволяют исправлять то, что вы вводите. Остальные клавиши редактирования помогает сократить печатание на клавиатуре за счет использования того, что вы уже ввели. ч. Использование введенного текста может пригодиться, если вы делаете повторяющуюся работу, т.е. когда вы печатаете одно и то же с небольшими отличиями. Если же вы не занимаетесь этим, то другие редактирующие операции ДОС не представляют для вас интереса. Теперь, чтобы вы поняли, когда они могут вам пригодиться, рассмотрим практический пример. Допустим, что вам нужно скопировать несколько файлов с одной дискеты на другую. Это повседневная операция. У вас может быть рабочий диск, содержащий файлы двух видов: те, которые вы изменяете, и те, которые остаются неизменными. Изменяемые 220
файлы вы должны копировать на другую дискету, чтобы не прогнали ваши последние произведенные изменения. Здесь мы имеем ситуацию, когда вы хотите скопировать не все файлы с диска, а только некоторые. Удобно было бы один раз напечатать команду COPY, а после этого только изменять имена файлов, не перепечатывая команду COPY. Подобную операцию можно делать при помощи других редактирующих клавиш. Как я уже говорил, ДОС различает последнюю введенную вами строку, поэтому вы можете использовать ее как шаблон, с которого можно копировать. Причиной того, что вы имеете такую возмож¬ ность, является не только способность ДОС запоминать последнюю введенную строку, но и то, что вы можете вносить изменения в эту строку. На этом основана идея применения шаблона. Первая редактирующая клавиша для работы по шаблону - это клавиша Copy-all (копировать целиком) или F3 на клавиатуре ПК. Клавиша копирования целиком берет последнюю команду, которую вы напечатали, и копирует ее на экран, как будто вы снова напечатали всю строку. Если вам надо точно скопировать то, что вы только что напечатали, то клавиша F3 выполнит эту операцию. Если вам нужно сделать небольшие исправления, в особенности. в конце строки, воспользуйтесь клавишей возврата, чтобы стереть часть, которую хотите исправить. Например, при вводе команды копирования файла вы могли бы напечатать: COPY THISFILE (COPY этот_файл) и выполнить операцию копирования, затем нажать клавишу F3, чтобы скопировать всю команду, а потом снова с помощью клавиши возврата изменить имя файла следующим образом: COPY THISFILE (COPY этот_файл) COPY ТН COPY THATFILE (COPY тот_файл) Что делать, если копирование всей строки по шаблону неудобно? Скопировать только часть строки можно несколькими способами. Один из них - это копирование по одному символу. При каждом нажатии клавиши копирования одного символа из шаблона копируется на экран только один символ. В нашем примере, нажимая на клавишу копирования по одному символу пять раз, мы скопируем ’’COPY” (с учетом пробела), после чего вы можете печатать имя нового копируемого файла. Имеются две клавиши, которые можно использовать для копирования по одному символу. Одна из них обозначена как F1, другая - это клавиша движения курсора вправо, которая на 221
клавиатуре большинства компьютеров помечена одновременно стрелкой, направленной вправо и цифрой 6. Другой более быстрый способ сделать ту же операцию - это воспользоваться клавишей копирования до определенного места, F2, после нажатия которой нужно ввести одну из букв строки-шаблона. Операция копирования до определенного места клавишей F2 дубли¬ рует шаблон до определенного знака, не включая его. В предыдущем примере, чтобы скопировать ’’COPY ТН”, потребуется нажать толь¬ ко две клавиши F2 и А, т.е. клавишу с первой буквой, которую вы не хотите копировать. Вот последовательность действий на клавишах: <F2>A а вот, что получится: COPY ТН Пока создается впечатление, что клавиши для редактирования удобны, но, возможно, слишком сложны и замысловаты, по сравнению со своими достоинствами. Дальше, однако, пойдут еще большие сложности - это подкрепляет мое утверждение, что изучение возможностей клавиш может оказаться более хлопотным, чем вы можете вынести. Если вы хотите пропустить часть строки-шаблона, чтобы начать копировать, начиная с какого-то места, можно воспользоваться клавишей пропуска одного символа и клавишей пропуска до определенного места. Они действуют так же, как клавиши копирования одного символа и копирования до определенного места, но в отличие от них пропускают символы шаблона, не копируя их. Пропуск одного символа выполняется при нажатии клавиши Del (delete - вычеркнуть), пропуск символов до определенного места - с помощью клавиши F4. Если в предыдущем примере вы хотите пропустить ’’COPY”, но воспользоваться частью строки ’’THISFILE”, вы должны нажать клавишу F4 (”пропустить_^до”), затем нажать клавишу Т, а потом клавишу ”копировать_все”, чтобы скопировать остальную часть шаблона. Если вы способны это сделать, то познакомьтесь с быстрой и эффективной операцией, в противном случае она для вас останется загадкой. Представьте себе, что вы хотите что-либо вставить в середине строки-шаблона. Можно сделать это при помощи клавиши Ins (Insert - вставить), она позволяет напечатать новую информацию, не перепечатывая и не изменяя уже напечатанные символы. При работе клавиши вставки запоминается положение курсора в строке- шаблоне во время впечатывания нового текста. Принцип действия ее очень прост. Предположим, вы скопировали часть строки-шаблона, остановились, а затем нажали кнопку вставки. В этот момент 222
шаблон останавливается и все, что вы печатаете, будет добавляться в новую строку команды, не затрагивая оставшейся части шаблона. Когда вы завершите ввод новой информации, можно скопировать остаток старой строки-шаблона. Для большей ясности приведу пример, который вам поможет. Предположим, что вы напечатали команду COPY THISFILE, которой пользовались раньше. У вас есть подкаталог OLD_DOCS, где находится старая версия того же файла, которая имеет такое же имя THISFILE. Вы решили скопировать для большей уверенности старую версию файла. Для этого вы можете использовать шаблон, введя следующую последовательность клавиш: <F2>T чтобы получить: COPY затем нажать клавишу вставки Ins и впечатать имя подкаталога: COPY <Ins> OLD_DOCS а потом нажать клавишу F3: COPY <Ins> OLD_DOCS <F3> чтобы в результате получить: COPY OLD_DOCS THISFILE Естественно имеется также клавиша для прекращения режима вставки. Если у вашего компьютера есть клавиша Ins, то ею можно пользоваться как защелкой, т.е., нажимая один раз, перейти к ре¬ жиму вставки, а потом, снова нажимая ее, выходить из этого режима. Последняя редактирующая клавиша ДОС позволяет задать новый шаблон, фактически не вводя строки, с которой будет работать ДОС. Если используется принцип копирования по шаблону, то необходимо иметь возможность брать шаблон из более старых строк, а не только из последней введенной строки. Для этой цели имеется клавиша задания нового шаблона. Операцию задания нового шаблона выполняет клавиша F5. При нажатии клавиши F5 любая строка, ранее введенная вами и видимая на экране, становится новым шаблоном, с которым вы можете работать. Как вы заметили, клавиши редактирования ДОС достаточно замысловаты, поэтому они хороши, когда одновременно выполняются два условия: клавиши редактирования ДОС действуют 223
и вы хотите повторить одну и ту же или очень близкие строки несколько раз. Если оба условия не удовлетворяются, то клавиши редактирова¬ ния ДОС для вас бесполезны. Причина, по которой я советовал вам не мучить себя изучением редактирующих клавиш, проста: зачем усваивать всякие трюки для операций, которые вы делаете время от времени? Да и при их по¬ мощи экономия труда невелика. Однако, если они вам понравились, пользуйтесь ими всегда, когда они могут быть полезны. Приведу краткую справку по всем клавишам для редактирования. Таблица 22.1. Клавиши для редактирования в ДОС Название Назначение Используемая клавиша Отмена Аннулировать строку Escape (Esc) Возврат Стереть последний символ обратное движение курсора, стрелка влево Копировать все Копировать всю строку-шаблон F3 Копировать символ Копировать следующий символ шаблона F1 стрелка вправо Копировать _ДО Копировать до указан¬ ного символа F2 Пропустить символ Пропустить один сим¬ вол в шаблоне Del Пропустить _до Пропустить до указан¬ ного символа F4 Вставить Вставить новый текст запомнив позицию в шаблоне Insert(Ins) Другие специальные клавиши Имеется еще несколько других специальных клавиш, которые используются ДОС и могут быть вам полезны, их мы и рассмотрим 224
в этом разделе. Они лишь отдаленно связаны с клавишами для редактирования в ДОС и можно пользоваться ими независимо от редактирующих. Среди них есть даже одна клавиша, о которой некоторые изготовители компьютеров умалчивают, что можно ею пользоваться. Пять специальных кодов вводятся с помощью комбинации управляющей клавиши с одной из букв алфавита. Как и все комбинации с управляющей клавишей, они вводятся путем нажатия какой-то клавиши при удержании в нажатом состоянии управляющей клавиши. При вводе такой комбинации не нужно обращать внимание, в каком (верхнем или нижнем) регистре вы вводите букву, работа от этого не зависит. Комбинация Control-Break Из пяти специальных управляющих клавиш наиболее важная - клавиша прерывания, которая также называется Control-C. Прерывание - это команда, которая приказывает ДОС остановить либо прервать текущую работу. Операция прерывания очень важна, так как представляет собой лучший способ остановить работу компьютера, не прибегая к выключению питания. Если компьютер вышел из-под вашего контроля или если вы просто хотите прекратить то, что он делает (например, печатает очень длинный каталог, который вас больше не интересует), то прерывание - лучший способ остановить его. Операция прерывания настолько важна, что в вашем компьютере IBM PC имеется специальная клавиша для этой операции. Когда вы работаете на компьютере, на экране появляется запись всех вводимых вами строк и всего, что выдает компьютер. Она перемещается по экрану вверх и затем скоро* исчезает. Однако иногда вам хотелось бы сохранить печатную копию информации, имеющейся на экране, например список файлов или список различий, обнаруженных ДОС при сравнении двух файлов. Такая возможность имеется в ДОС благодаря использованию эхо-печати. Если эхо включено, то все написанное на экране посылается (отражается как эхо) на принтер. Печать с экрана работает напрямую, поэтому вы можете автоматически получить печатную копию информации, имеющейся на экране. Обычно вы не хотите, чтобы постоянно печаталась копия изображения на экране, поэтому эхо-печать отключается. Чтобы ее включить, нажмите Control вместе с клавишей PrtSc. Для выключения нажмите эти клавиши снова. Каждый раз, когда вы нажимаете эту комбинацию, вы включаете или выключаете эхо-печать путем ’’защелкивания”, т.е. использования одних и тех же клавиш для включения и выключения функции. Как и в случае с клавишей прерывания, имеются другие комбинации клавиш, которые на всех персональных компьютерах используются для эхо-операций. Если хотите, вы 8 Зак 1807 оос
можете использовать для включения эхо-печати Control-P, а для выключения Control-N. Впрочем, нужно иметь в виду, что эхо работает не со всеми программами. Вывод информации на дисплей может быть реализован разными способами. И только в том случае, когда для него используются официальные каналы ДОС, возможно включение эхо-печати. Обычно легко установить, возможна лй в данной программе эхо- печать, не делая никаких экспериментов. Если программа выводит информацию на дисплей так, как она выглядит на пишущей машинке, т.е. в виде последовательности строк, появляющихся внизу экрана, а не в произвольных местах и произвольном порядке, то она может работать с эхо-печатью. Но если при выводе используется весь экран, информация помещается в определенные места не так, как при использовании дисплея вместо принтера, то вероятнее всего данные из этой программы не могут быть выведены с помощью эхо-печати. Вероятнее всего, что нельзя воспользоваться эхо-печатью из текстового процессора, программ бухгалтерского учета или электронных таблиц. В противоположность этому эхо будет работать и может оказаться полезным с командами, включенными в ДОС. Например, если вы копируете много программ, то эхо-печать ваших команд позволяет вам безболезненно получить протокол копирования. Кроме того, если вы не мастак в составлении командных файлов, вы можете счесть удобным протоколировать все, что вы вводили, в том числе с ошибками на принтере для последующего просмотра. Еще одна интересная и полезная специальная клавиша - это клавиша приостановки. Она имеет обозначение Pause (пауза) и находится в правой части верхнего ряда кЛЬвиш. (На старых клавиатурах этой клавиши нет, вместо нее вы можете использовать комбинацию Control-NumLock. Клавиша NumLock - третья справа в верхнем ряду цифровой клавиатуры.) Когда вы приостанавливаете компьютер, то он перестает делать что-либо полезное. Это дает возможность прочитать информацию на экране или сделать что- нибудь другое, при этом работа компьютера приостановится. Нажатие любой обычной клавиши переведет компьютер из состояния бездействия в рабочее. С этой же функцией связан универсальный код, известный как Control-S. Но в то время как клавиша приостановки останавливает в компьютере все, Control-S останавливает только вывод на экран. Если компьютер делает вычисления или что-нибудь другое, эта работа будет продолжаться. Но если компьютер попытается вывести информацию на экран (стандартными средствами с помощью операции записи на экран), произойдет его останов. Об этой операции при помощи Control-S фирма IBM не сообщает, однако она работает в ДОС. 226
Запомните разницу: операция приостановки/паузы (при помощи Control-NumLock) останавливает компьютер целиком; Control-S останавливает только вывод на экран. Последняя из специальных управляющих кодовых последовательностей - это Control-Z. Текстовые файлы, записанные на дисках, включают в себя некоторые специальные коды для обозначения таких моментов, как конец одной строки и начало следующей. Среди специальных символов, описывающих формат текста, имеется код, помечающий конец файла. Маркер конца файла имеет очень важное значение, и все программы, которые работают с текстовыми файлами, внимательно следят за ним. Обычно от вас не требуется обязательно вставлять код Control-Z в конце файла - ваш процессор текста позаботится об этом за вас. Но есть особые обстоятельства, когда необходимо ввести этот код с клавиатуры, в этом случае используется комбинация клавиш Control-Z. Мы уже встречались с подобной ситуацией, когда создавали короткий файл путем непосредственного копирования с клавиатуры (консоли) в файл по команде: Copy con: имяфайла Как вы помните, мы использовали клавишу <F6>, чтобы пометить конец файла. С командами ДОС Control-Z эквивалентно <F6>. Для справки приведу краткую сводку специальных клавиш ДОС, которые мы рассмотрели в этой части главы. Таблица 22.2. Управляющие клавиши ДОС Клавиши Комбинация клавиш Функции клавиш Control-Break Ctrl-C Аннулирует команду ДОС прекращает работу некоторых программ Pause Ctrl-S Останавливает компьютер (Ctrl-S останавливает только экран) Ctrl-PrintScreen Ctrl-P Включает/выключает эхо- печать <F6> Ctrl-Z Вводит признак конца текстового файла 8* 227
Глава 23 ПРОСТОЙ РЕДАКТОР EDLIN (ПОСТРОЧНЫЙ РЕДАКТОР) В этой главе вы узнаете о текстовом редакторе, который поставляется вместе с ДОС, редакторе EDLIN. Сначала рассмотрим, для чего он предназначен и в каких отношениях он находится с другими известными редакторами. Обычный текст, например письмо или доклад, рассматриваются компьютером особым образом: они запоминаются в формате, известном как ASCII текстовый файл, с которым вы уже немного познакомились раньше. Здесь мы рассмотрим некоторые принципиальные вопросы, относящиеся к текстовым файлам в кодах ASCII, которые вы должны хорошо себе представлять. Текстовые файлы в кодах ASCII Данные, которые хранятся в текстовых файлах в кодах ASCII, представляют собой набор обычных знаков письма — буквы алфавита, числа, знаки пунктуации, например точку или запятую. Слова, которые вы сейчас читаете, представляют собой текст в кодах ASCII, который хранится в моем компьютере в виде файла в кодах ASCII. Важно помнить о том, что текстовые файлы ASCII кодов организованы как отдельные строки текста. Знаки препинания, которые имеются в текстовом файле — точки и запятые, для компьютера не имеют большого значения, но есть два особых знака, пунктуации, которые добавляются в компьютере к текстовому файлу, которые имеют исключительную важность. Эти особые ’’знаки препинания” обозначают конец каждой строки и конец всего текстового ASCII файла. Оба этих знака : ’’конец строки” и ’’конец файла” для вас невидимы. Компьютер покажет вам точку, запятую и другие знаки препинания, но собственные знаки препинания оставляет невидимыми. В результате вы не видите в ASCII файле собственно знаков конца строки и конца файла, но вы видите результат их действия : деление текста на отдельные строки. Текстовые файлы широко используются в компьютерах,' особенно интересными являются три применения: данные программ обработки текстов, исходные коды программ (т.е. тексты программ в том виде, как вы их пишете ) и командные файлы. Поскольку большинство пользователей компьютеров занимается обработкой текстов, некоторые пишут программы и всем необходимо уметь создавать и изменять командные файлы в ДОС, каждый пользователь 228
персонального компьютера должен ознакомиться с методами работы с ASCII файлами. Программы редактирования Для того чтобы создавать текстовые файл или вносить в них изменения, существуют специальные программы, так называемые редакторы. Программы текстовой обработки (текстовые процессоры) имеют в основе редактор, в котором предусмотрено множество замечательных возможностей, например выравнивание текста, изменение вида шрифта на петит или жирный и даже орфографическая проверка тексту. Эти удобства важны для программ текстовой обработки, нб все же' основой их является редактирование текста, т.е. ввод и просмотр написанного текста. Вообще говоря, трудно работать на компьютере, не имея под рукой программы редактора. Даже если в работе вы пользуетесь редактором нечасто, он потребуется вам для написания командных файлов. Составление хороших (удобных) командных файлов, которые описывают последовательность действий компьютера, позволяет повысить эффективность их использования. Программы редакторов настолько важны, что большинство пользователей специально приобретают их, чаще всего в виде пакета программ текстовой обработки, которые включают в себя редактор. Однако учитывая важность программы редактирования и не рассчитывая на то,что вы приобретете их, в ДОС включили несложную программу редактора, которая называется EDLIN. Если у вас нет ничего другого, то вам придется пользоваться редактором EDLIN. И даже если у вас есть программа текстовой обработки, вы все равно будете пользоваться этим редактором, просто потому, что ваш пакет текстовой обработки слишком мощный и поэтому не столь удобен для простейшего редактирования. Подобно тому, как вы не станете стрелять из пушки по воробьям, вы не захотите поль¬ зоваться обработчиком текстов для создания простых командных файлов. Имеется еще одна чисто практическая причина, по которой вы должны научиться пользоваться редактором EDLIN. Для опера¬ тивной работы с командными файлами полезно иметь редактор на любой машине, с которой вы будете работать. А поскольку EDLIN является частью ДОС, то он всегда доступен, независимо от того, где вы работаете. Как работает редактор EDLIN Чтобы эффективно пользоваться редактором EDLIN, вы должны разобраться, как он работает, а для этого потребуется рассмотреть различные методы редактирования. EDLIN относится к типу редакторов, называемых командными, или построчными (отчего и 229
происходит его название, по-английски ED- аббревиатура от Editor — редактор и UN — сокращение от Line — строка). Большинство хороших редакторов, в том числе программы текстовой обраббтки, относятся к разряду так называемых экранных редакторов, это означает, что они показывают на экране максимально возможное количество редактируемого текста, и вновь вводимый материал попадает на экран точно на соответствующее место. В то время как полноэкранный редактор показывает максимально возможную часть файла, редактор EDUN работает с меньшими объемами. Он обращается с файлом как с совокупностью строчек. В каждой строчке может быть до 253 знаков. Это приводит к тому, что работать, с ним более затруднительно, поскольку для просмотра какой-либо части файла или других действий вы должны вводить команды. Если вы хотите посмотреть или что-то изменить в пятой строчке вашего файла, вы должны сначала запросить EDUN о показе пятой строчки, затем указать, какие изменения сделать, после чего вновь Запросить выдачу пятой строки, чтобы проверить, что изменения сделаньЬ Что бы вы ни делали, работая с построчным редактором типа EDLlN^ вы делаете это с помощью команд, оперирующих со строками файла. EDLIN всегда обращается к файлу через порядковый номер строки файла. Если у вас имеется файл, состоящий из трех строк, например: Это первая строка Это вторая строка Это третья строка то EDLIN будет обращаться к ним как к строкам номер 1, номер 2 и номер 3. Чтобы помочь вам проследить за номерами строк, EDLIN всегда выводит номер строки вместе со строкой файла. Если бы EDLIN выводил строки файла, то они выглядели бы следующим образом: 1: Это первая строка 2: Это вторая строка 3: Это третья строка Номера строк, которые показывает редактор, не являются частью данных файла, а выводятся только для справки. Вы должны также знать, что EDLIN производит перенумерацию строк после любого изменения. Предположим, что в нашем примере файла из трех строк мы удалим вторую строку. Тогда строка, кото¬ рая раньше была третьей, станет второй, и файл будет иметь вид: 1: Это первая строка 2: Это третья строка 230
Аналогично, если вы вставите новую строку ниже строки с номером 1, тогда вторая строка вновь станет третьей: 1: Это первая строка 2: Это новая вторая строка 3: Это третья строка Для удобства работы EDLIN отмечает положение текущей строки знаком * (звездочка). Например, если текущей строкой в нашем файле из трех строк является вторая строка, то при выводе на экране вы увидите: 1: Это первая строка 2:* Это вторая строка 3: Это третья строка Если вы даете редактору команду что-либо сделать, то вы можете либо указать конкретный номер строки, либо задать положение строки относительно текущей строки. При вводе текста с клавиатуры в редакторе EDLIN, вы можете пользоваться редак¬ тирующими клавишами ДОС, которые были рассмотрены в гл.21. Защита файлов Прежде чем перейти к практическому использованию редактора EDLIN, вам следует узнать, что в программе EDLIN (как и во многих других программах) предусмотрены средства защиты. Когда вы пользуетесь программой EDLIN для изменения файла, то она не уничтожает старый файл. Напротив, она его сохраняет под несколько измененным именем, вернее под старым именем, но с добавлением расширения ВАК, которое происходит от слова backup (восстановление). Если вы сделаете непоправимую ошибку при редактировании файла, то при помощи копии файла с расширением ВАК вы сможете ее исправить. По принятому соглашению вы не можете редактировать файл с расширением ВАК, однако вы можете переименовать его в файл с другим расширением при помощи команды ДОС RENAME. Перейдем теперь к рассмотрению работы программы EDLIN. Начало работы с программой редактора EDLIN Чтобы запустить программу, нужно напечатать ее имя, а после него имя файла, который вы собираетесь редактировать. Например: 231
EDLIN имя_файла.расширение Хотя многим редакторам не требуется указывать имя редактируемого файла, для редактора EDLIN указание имени файла совершенно обязательно. Именем файла может служить как имя уже существующего, который вы хотите просмотреть и отредак¬ тировать, так и имя нового файла, который вы собираетесь создать. После запуска программы EDUN она ищет имя указанного файла. Если файл уже существует, EDLIN считывает его в память. После запуска редактор выдаст одно из трех сообщений. Если он не обнаружит файл, который вы указали, он сообщит: New File (Новый файл) Если вы действительно создаете новый файл, то это сообщение правильное. Но если вы собираетесь работать с существующим файлом, то это сообщение означает, что EDUN не смог найти указанный вами файл. Возможно, что вы неправильно написали имя файла или файл существует, но находится в другом каталоге. Если так случилось, то нужно выйти из редактора, набрав команду: Q. (от Quit закончить) и (далее мы более подробно на этом остановимся) после этого введите: Y в подтверждение вашего намерения. После этого вы можете либо изменить каталог на тот, в котором находится ваш файл ( с помощью команды CD или CHDIR) или снова запустить программу EDLIN с указанием полного пути, приводящего к нужному файлу. Это первое сообщение, которое вы, возможно, увидите. Ну а что будет, если вы запросили имя файла и редактор его обнаружил? Если EDLIN находит файл, и в памяти имеется достаточно места, он переносит его целиком в память. Мало вероятно, но все-таки может случиться, что при работе с редактором файл окажется слишком большим для размещения его в памяти. Однако если места для размещения файла достаточно, редактор сообщает : End of input file (Конец входного файла) Это означает, что редактор нашел файл, места в памяти достаточно и он поместил его весь в память. Если весь файл не помещается, то EDLIN "сообщает” об этом иначе: он вообще не выдает никакого сообщения. Это немного таинственно ( и подобные свойства- свидетельствуют о слабости редактора EDLIN), но если знать, как следует толковать сообщения редактора, то отсутствие сообщения равносильно сообщению : ”Файл 232
найден, но он не может поместиться в память целиком”. В случае, если файл слишком большой и для него не хватает места, то он считывает в память часть файла и оставляет буфер размером при¬ мерно 25% от имеющегося объема в качестве рабочего пространства. Если EDLIN запущен и выдал одно из трех сообщений, он извещает о своей готовности принять команду, выдавая ’’приглашение” , которое имеет простой, но отличительный вид — звездочку *, это приглашение не спутаешь с подсказкой ДОС или другой программы. Завершение работы с редактором EDLIN Теперь, когда вы знаете, как начать работу с редактором, настал момент узнать, как прекратить работу с ним. Имеются две различные команды для завершения работы с редактором. Первая команда Е (от End — закончить) записывает файл, с которым вы работали; из памяти на диск, заменяя старый файл на его новую версию, и сохраняет старую версию с расширением ВАК. Команда Е записывает файл и прекращает работу редактора. Чтобы редактор выполнил команду Е, вы должны напечатать одну букву Е после звездочки-приглашения: *Е и нажать клавишу ввода. Второй способ прекращения работы с редактором — по команде Q (Quit — уйти), мы уже встретились с ним ранее. Команда Q используется в том случае, когда вы хотите прекратить работу в редакторе, но не желаете записывать файл обратно на диск: может быть, потому, что вы не сделали никаких изменений и он не является новым, либо потому, что допустили какие-либо ошибки и хотите исправить их. Какой бы ни была причина, если вы хотите уничтожить копию файла в памяти, нужно использовать команду Q. Во избежание случайной потери результатов вашей работы EDLIN запросит подтверждение: Abort edit (Y/N)? (Уничтожить редактируемый файл (Да/Нет)?) и до тех пор, пока вы не ответите ”Y” (да), EDLIN будет продолжать работу. Будьте внимательны, когда пользуетесь этими командами, иначе вы можете записать на диск неверный файл или потеряете те изменения, которые хотели бы сохранить. Команда Е — это конец работы с сохранением изменений, Q — выход из программы без записи на диск измененной копии файла. Если вы испортили файл, например удалили строки, которые должны быть сохранены или сделали что-то в этом роде, то обязательно завершайте работу 233
командой Q, а не Е. В этом случае вы уничтожите те изменения, которые вы не желаете сохранить в поврежденной части файла. Обе команды, которые мы до сих пор рассмотрели, задаются одной буквой Q или Е. На самом деле все команды редактора EDUN — однобуквенные. Это удобно для простоты и скорости ввода, если только вы правильно запомните, какую букву нужно напечатать. Для выполнения команды нужно всегда нажимать клавишу ввода так же, как при вводе команды ДОС. Использование команд редактора EDLIN В то время как рассмотренные команды используются сами по себе, другие команды редактора нуждаются в параметрах, которые указывают команде область ее действия и объект. Например, команда D (Delete — удалить) должна получить номера удаляемых строк. Прежде чем перейти к подробностям использования каждой команды, рассмотрим способы указания строк, на которые должна воздействовать команда. Когда команде EDLIN нужно указать, в какой строке она должна проиавести интересующие вас действия, можно сделать это одним из следующих пяти способов: 1. Напечатать номер конкретной строки, например 27 или 32500. Если вы введете слишком большой номер строки, например число большее, чем номер последней строки файла в памяти, то EDLIN действует так, будто бы вы ввели номер, следующий за номером самой последней строки в файле. 2. Вы можете явно указать номер строки, следующий после конца файла, если введете знак #. Результат будет такой же, как при вводе чересчур большого числа. 3. Обозначить, что вы хотите работать с текущей строкой, знаком двойной кавычки ”. Вы помните, что редактор помечает текущую строку знаком * (звездочка). Хотя сначала прослеживание в уме за номером текущей строки будет вас немного смущать , после небольшой практики это не покажется вам затруднительным. 4. Не указывать вообще номера строки, тогда редактор примет свой номер строки по умолчанию. Этот номер может меняться в зависимости от назначения каждой команды. 5. Вы можете указать строку выше или ниже текущей, вводя перед числом знак "плюс” или "минус”, например +25 или - 200. Это будет означать номер строки до (-) или после (+) текущей строки. На основе этого вступления рассмотрим еще несколько команд. 234
Добавление строк Для добавления строк к файлу используется команда I (Insert — вставить). Команда задается следующим образом: номер_строки I Эта команда подготавливает режим ввода новых строк в файл. Вставка начинается перед началом строки с указанным номером. Если номер строки не указан, то строки будут вставляться перед текущей строкой. Вот, например, как вставляется строка над третьей строкой существующего файла: *31 3:*this is going above old line 3 (эта строка помещается выше прежней 3-й строки), после исполнения команды результат будет следующий: 1: это первая строка 2: это вторая строка 3: эта строка помещается выше прежней 3-й строки 4:*это третья строка Если вы создаете новый файл, то вначале в файле ничего нет, и вы надеетесь, что можете немедленно начать ввод строк в него. На самом деле EDLIN работает иначе. Даже если вы создаете совершен¬ но новый файл, вы должны сначала ввести команду I для ввода новых строк. Таким образом, при вводе нового файла первой редак¬ тору должна быть дана команда I. Правда, в этом случае вы не дол¬ жны указывать номер строки, а напечатать только одну команду I: * i После задания редактору команды I вы можете вводить не одну строчку, а строчку за строчкой, что очень удобно, для этого нужно нажимать клавиЩу ввода в конце каждой строки. Как прекратить ввод новых строк? Для этого вы должны дать редактору команду Ctrl-Break (т.е. при нажатой "Управляющей клавише" нажать "Клавишу прерывания") или Ctrl-C (Управляющая клавиша+клавиша "С" ). Обратите внимание на то, что для прекращения режима ввода новых строк нужно сначала нажать клавишу ввода последней вводимой строки и лишь после этого ввести команду Ctrl-Break. Если вы введете Ctrl-Break, когда строка еще не введена полностью, то эта незавершенная строка будет потеряна. Имейте это в виду — потерять последнюю строку очень легко, если вы не знакомы с правилами работы с редактором EDLIN. После того как вы ввели команду Ctrl-Break, редактор снова 235
устанавливается в режим командной строки, о чем он сообщает выводом символа приглашения *. Удаление строк Обратной по своему действию по отношению к команде I является команда D (Delete — удалить, стереть). Команда D удаляет одну или несколько строк из редактируемого файла. Чтобы удалить одну строку, вы должны ввести следующую команду с указанием номера строки: номер_строки D Например, вы можете удалить третью строку в приведенном выше примере командой: *3D После нажатия клавиши ввода одна строка будет удалена и, естественно, все следующие строки будут перенумерованы: 1: это первая строка 2: это вторая строка 3: эта строка помещается выше прежней 3-й строки 4:*это третья строка В результате получится: 1: это первая строка 2: это вторая строка 3:*это третья строка Если вы хотите удалить группу из нескольких строк, то нужно задать два номера строк, разделенных запятой, например: номер_начальной_строки, номер_конечной_строки D По этой команде будут удалены указанные строки и все строки, находящиеся между ними. Вы не забыли, что можно не указывать номер строки, тогда редактор использует номер по умолчанию? Например, если вы введете только команду D без номера строки, то команда D удалит текущую строку. Если применяется задание диапазона строк, но опускается первый номер, например: номер__конечной__строки D будут удалены строки, начиная с текущей до указанной строки. В противоположность этому команда D без указания номера конечной строки работает иначе. Если вы введете команду : номер_начальной строки. D 236
то она удалит только одну строку, а не группу строк (как вы, возможно, думали), начиная со строки с номером_начальной строки до текущей. Просмотр файла Естественно, что вы не можете редактировать файл вслепую, вам необходимо увидеть, что вы делаете. Показать на экране строки файла позволяет команда L (List — перечень, список). Сама программа EDLIN не дает информации о редактируемом файле. Она показывает вам только то, что вы от нее запрашиваете и ничего более. (Полноэкранные редакторы выводят на экран гораздо большую информацию.) Формат команды L подобен формату команды D. Вы можете ввести ее без параметров (номера строки), с номером одной строки, либо задать группу строк: L номер_строки L номер_начальной_строки, номер_конечной_строки L Как я уже говорил, каждая команда имеет свои значения параметров по соглашению, которые подобраны так, чтобы команда действовала наилучшим образом. Параметры по умолчанию для команды L имеют другие значения, чем для команды D. Обычно команда L выводит число строк, помещающееся на экране. Как я уже рассказывал в гл. 18, когда объяснял команду MODE CON: , вы можете выводить на полном экране либо 25, либо 43, либо 50 строк( для соответствующего типа дисплея). Редактор максимально использует возможное для одновременного вывода число строк. Редактор EDLIN покажет на одну строчку меньше, чем может поместиться на экране. Последняя строка оставляется для того,чтобы вы могли ввести команду. Если вы не указываете числа, то редактор выводит полный экран строк, симметрично расположенных по отношению к текущей строке. Это удобный и простой способ произвести быстрый просмотр строк файла, с которыми вы в данное время работаете. Если вы введете только первый номер строки с запятой или без запятой, редактор также будет выводить полный экран строк, начиная, однако, с номера указанной строки, независимо от положения текущей строки. Если вы введете только номер второй строки (с запятой перед ним, указывающей то, что это вторая строка), тогда будут выведены строки, начиная со строки, смещенной на пол экрана вверх от текущей строки и до указанной строки включительно. Вас это не смущает? Дело в том, что правила, заложенные в программу редактора, на самом деле еще более сложные, чем те, с которыми вы уже познакомились. К сожалению, это так, но после небольшой практики вы увидите, что ничего сложного в использовании команд типа L нет. 237
Изменение строк Следующее, с чем вы познакомитесь в редакторе EDLIN, будет внесение изменений в уже существующей строке файла. Предположим, что с помощью команды L вы нашли ту часть файла, которая вас интересует, и теперь вы собираетесь внести некоторые изменения. Вы знаете, как удалять и вставлять целые строки, а как же можно изменить только часть имеющейся строки? Подобные манипуляции производятся при помощи команд редактирования строк. Для такого рода команды вы не вводите буквенного кода, а только задаете ромер строки, которую хотите отредактировать. В ответ редактор выведет копию строки, как она записана, а ниже (кажущуюся) пустую строку с тем же номером. Далее вы можете пользоваться редактирующими клавишами ДОС для внесения изменений в строку, включая копирование любой час¬ ти строки, которая не подвергается изменению. Когда вы получите в строке то, что хотели, нажмите клавишу ввода и строка будет изменена. Если вы решили не изменять данную строку, то нажмите только клавишу ввода, и строка будет оставлена в прежнем виде. Теперь, когда вы узнали, как производится данный процесс, предположим, что вы хотите изменить в строке 2 вышеприведенного примера все буквы слова ’’second” (вторая) на заглавные. Сначала выведите весь файл на экран: *L 1:*this is the first line (это первая строка) 2: this is the second line (это вторая строка) 3: this is the third line (это третья строка) Теперь дайте команду, что вы хотите изменить строку 2 : *2 Тогда вы увидите: 2:*this is the second line (это вторая строка) 2:* Для изменения строки вначале просто скопируем всю строчку (при помощи клавиши F3), затем воспользуемся клавишей забоя.* Сначала нажмите клавишу F3 (копируем всю строку): 2:*this is the second line (это вторая строка) 2:*this is the second line (это вторая строка) ^Перемещение курсора на позицию влево обозначается на клавиатуре стрелкой, направленной влево. — Прим. перев. 238
Затем получаем с помощью клавиши забоя : 2:*this is the second line (это вторая строка) 2:*this is the (это вторая ) И наконец, исправляем строчку : 2:*this is the second line (это вторая строка) 2:*this is the SECOND line (это ВТОРАЯ строка) и выводим результат : 1:*this is the first line 2:*this is the SECOND line 3: this is the third line (это первая строка) (это ВТОРАЯ строка) (это третья строка) Команда редактирования строки принимает номер строки по умолчанию, как и любая другая команда. Поэтому если после появления символа приглашения *, вы просто нажмете клавишу ввода, редактор воспримет это как ваше желание редактировать текущую строку. Он выведет текущую строку на экран, и далее вы можете изменять ее, как мы только что делали, используя, если хотите клавиши для редактирования в ДОС. Точно так же, если повторно нажимать клавишу ввода, редактор будет поочередно переходить из командной строки (с выводом приглашения) в режим редактирования текущей строки. Каждый раз, когда он переключается, положение текущей строки смещается на одну вниз. Это позволяет двигаться по файлу строка за строкой, последовательно нажимая клавишу ввода. Как только очередная строка подготовлена к редактированию, вы можете либо вносить в нее изменения, либо переместиться на следующую строку. Это простой и удобный способ перемещения по небольшому файлу, производя изменения по мере необходимости. Поиск текста Одна из работ, которую редактор должен уметь выполнять, это поиск в файле некоторого текста, который вас интересует. Редактор EDLIN имеет для этой* цели две команды: команду S (Search — искать) и R (Replace — заменить), фактически представляющую со¬ бой команду найти_и_заменить. Начнем с команды S. Она имеет несколько разновидностей. Простейшая из них следующая: иомер_строки_иачала_поиска, иомер.строки.окоичания.поиска S что.искать Команда поиска работает в заданном диапазоне номеров строк, пытается найти то, что указано в части команды ”что_искать”. Если 239
поиск оказывается успешным, то выводится строка с найденной информацией, которая становится текущей строкой. Например, вы можете задать поиск слова "third" (третья) следующим образом: *1,4Sthird и редактор тогда выведет следующее : 3: this is the third line (это третья строка) Если редактор не находит заданной для поиска информации, то он сообщает об этом фразой "Not found" ("не найдено"). Каждый из трех параметров команды не является обязательным. Если пропущен "номер_строки_начала_поиска", то поиск начинается со следующей после текущей строки; если пропущен "номер__строки_окончания__поиска", то поиск продолжается до конца файла в памяти. Если пропущена часть "что_искать", тогда ре¬ дактор будет вести поиск того, что ему было задано в последний раз. Указанные три значения параметров по умолчанию делают удобным повторный поиск, если заданная информация однажды обнаружена. После того, как команда поиска однократно была выполнена, просто введите команду S, не указывая параметров, тогда она продолжит поиск с текущей строки файла. Редактор EDLIN информирует только о полном соответствии между заданной для поиска и найденной информацией. Если вы введете команду типа: * 1,4STHIRD то EDLIN ничего не найдет. Он может найти слово в середине предложения, но не может уловить соответствие между "THIRD" и "third", но EDLIN может найти соответствие, если слово, которое вы ищите, записано прописными буквами и находится в начале предложения. Некоторые редакторы могут находить соответствие между словами, заданными как строчными, так и прописными буквами, но EDLIN не может сделать этого, он ищет только слова по точному совпадению. Существует еще одна разновидность команды S, когда перед командой задается знак вопроса, например: 1,35?Swhere (где?) В этом случае команда S повторяет поиск снова и снова, пока не обнаружит то, что вы задали искать. Каждый раз, когда команда встретит искомый текст, она выведет строку, в которой обнаружен этот текст и задаст вопрос: 240
O.K.? (годится?) Если вы ответите N (нет), то EDLIN продолжит поиск. Если вы ответите Y (да) , то редактор прекратит дальнейший поиск и вы сможете работать с найденной строкой. Здесь скрывается еще одна потенциальная возможность впасть в заблуждение. По-крайней мере для меня, толкование ответа на вопрос: ”да или нет?” — представляется обратным общепринятому. Логично это с вашей точки зрения или нет, запомните следующее правило: У(да) означает остановиться на этом месте и здесь продолжить работу; Жнет) означает продолжить поиск. С командой S связана команда R (Search-and-Replace — найти_и_заменить). Эта команда вводится так же, как и команда S, включая необязательный знак вопроса. Но команда R предназначена для замены найденной информации на что-либо другое, поэтому требуется ввести две последовательности символов после команды R. Между этими двумя последовательностями символов должен быть введен разделитель в виде специального символа Control-Z (Управляющая клавиша+Z). Этот разделитель точно такой же, как маркер конца файла (см. гл.21). Вы можете ввести его, либо удерживая в нажатом состоянии клавишу Ctrl, нажимая одновременно клавишу Z, либо нажимая служебную клавишу F6, используемую в качестве клавиши для редактирования в ДОС. В любом случае Control-Z появится в вашей команде в виде двух символов: лг.(Хотя этот разделитель показывается на экране двумя символами А и Z, ДОС воспринимает их как один символ Control-Z.) Чтобы посмотреть, как выглядит команда R, вернемся к нашему примеру и зададим редактору заменить слово ’’third” на ’’THIRD”. Вот как мы это сделаем: *1,4RthircTZTHIRD а вот, что получим в результате: 3:*this is the THIRD line Необходимо запомнить следующее. Поиск по команде S прекращается после обнаружения первого совпадения информации в файле с заданной информацией в строке поиска. После этого вы можете делать с найденным текстом, что хотите. Но команда R должна совершить какое-то активное действие, поэтому она будет автоматически продолжать процедуру поиск-замена по всему заданному диапазону строк. Например, если у вас имеется файл длиной 300 строк, вы используете команду: *1,300Rjellybeans~Zlicorice (заменить "jellybeans" на "licorice") 241
Каждый раз, когда EDLIN встретит слово ’’jellybeans” где-либо в строках с 1 по 300, он заменит его на ’’licorice”. Каждый случай замены будет выводиться на экран, поэтому вы можете проследить за ее ходом. В то время как простая форма команды R будет заменять каждое вхождение текста, которое он встретит, форма команды с вопросительным знаком будет останавливаться и спрашивать вас "O.K.?” Если вы ответите Y, то замена будет произведена; если же вы ответите «N, то строка не будет изменена. Но в любом случае, когда вы отвечаете N, процедура поиск-замена продолжится. Вы можете заметить, что существует важное различие между командами S и R. Если вы отвечаете Y (да) в команде S, то поиск прекращается. В команде R ответ У(да) разрешает произвести замену, но не прекращает очередной поиск и замену независимо от ответа ”да или нет”. Поэтому, хотя эти команды очень похожи, они по-разному реагируют на ваши ответы ”да/нет”. Как вы, очевидно, понимаете, можно легко перепутать использо¬ вание команд S и R. Поэтому нужно внимательно пользоваться этими удобными командами. Работа с большими файлами Имеются две команды, используемые в особом случае, о котором я сказал в начале этой главы — если файл имеет слишком большую длину и не помещается в буфер редактора EDLIN. Первая команда используется для возврата записи файла на диск, чтобы освободить побольше места в памяти, а другая используется для считывания очередной части файла. Команда W (Write — записать) применяется для записи некоторого числа строк из памяти на диск. Команда задается в следующем виде: число_строк w По этой команде записывается указанное число строк, начиная с первой строки в памяти. Если вы не указываете число строк, то редактор запишет максимально возможное число строк, для того, чтобы освободить буфер размером до 25% от объема, необходимого ему для работы. После того как строки записаны, часть файла, которая находится в памяти, имеет нумерацию строк, начинающуюся с 1, поэтому номера строк не дают никакой информации о положении строк относительно начала файла. Известно только положение строк относительно начала той части файла, которая находится в памяти. Когда часть памяти освободится после записи части файла на диск, вы можете считать новую часть файла в память. Это делается при помощи команды A (Append — добавить). Команда А задается так же, как команда W: 242
число_строк А Если места достаточно, редактор по команде считывает указанное вами число строк. Если вы не задали число строк, редактор будет считывать файл до тех пор, пока отведенная ему память не будет заполнена на 75%, оставляя 25%-й буфер для рабочего простран¬ ства. Если при считывании файла редактор обнаружит признак конца файла, он выведет сообщение ’’End of input file” (Конец файла ввода), как он делает в начале своей работы. В каких случаях нужно пользоваться редактором EDLIN Как вы уже можете судить о редакторе EDUN, он не относится к удобным и простым. На практике его лучше всего применять при работе с очень маленькими файлами. Для чего я вам действительно рекомендую использовать этот редактор, там это — для составления и изменения командных файлов и файла конфигурирования системы CONFIG.SYS (см. гл.23). Небольшие объемы командных файлов как раз отвечают скорости работы редактора. Для файлов большего объема нужно пользоваться редакторами с более развитыми возможностями. Команды редактора EDLIN улучшеного типа Из рассмотрения тех команд, которые вы узнали, видно, что редактор EDLIN не дает возможности перемещать данные и копировать их в произвольное место. Если вам нужно перестроить файл данных, вы, наверное, окажетесь в затруднении. Но не отчаивайтесь. Имеются три специальных команды, .С (Сору — копировать), М (Move — переместить), Т (Transfer — перенести), с помощью которые вы сможете перемещать строки файла из одного места в другое. Команда С позволяет размножать строки, копируя их из одной части файла в другую. Для этой команды нужно задать четыре параметра: начальная_строка, конечная_строка. куда, сколько_раз С Любой из параметров является необязательным, за исключением параметра ’’куда”, который должен быть обязательно указан. Если пропущены параметры ”начальная_строка” или ”конечная_строка”, то принимается текущий номер строки. Копия информации помещается перед строкой, заданной параметром ’’куда”, так же, как в команде I. Обычно вы будете пользоваться командой С только для однократного повторения какого-либо фрагмента, но в отдельных 243
случаях вам нужно знать, как пользоваться параметром ”сколько_раз”, если у вас возникнет необходимость сделать несколько копий. Например, если вы создали табличный файл и хотите сделать к нему строку ’’шапки” (т.е. повторяющейся информации), тогда скопируйте ее необходимое число раз, а затем заполняйте графы в каждой строке. Все таблицы и перечни, которые встречаются в этой книге, были сделаны с помощью такой методики. Чтобы показать вам, как пользоваться данной командой, приведем достаточно тривиальный пример со строками, которые вы видели на протяжении всей этой главы. Пусть, к примеру, вы хотите три раза скопировать строки 2 и 3 в конец нашего короткого файла. Введем следующую команду: *2,3,4,ЗС которая в переводе означает : ’’взять строки 2 и 3(2,3), перейти в строку 4 (4,) и сделать три копии (ЗС).” И вот что будет получено: this is the f i rst I ine (это первая строка) this is the SECOND I ine (это ВТОРАЯ строка) this is the THIRD I ine (ЭЮ ТРЕТЬЯ строка) this is the SECOND I ine (это ВТОРАЯ строка) this is the THIRD I ine (это ТРЕТЬЯ строка) this is the SECOND I ine (это ВТОРАЯ строка) this is the THIRD I ine (это ТРЕТЬЯ строка) this is the SECOND I ine (это ВТОРАЯ строка) this is the THIRD I ine (это ТРЕТЬЯ строка) Очевидно, вы найдете более разумное применение этой команде. Команда М (Move — переместить) выполняет такую же функцию, как команда С, но она забирает строку с места текущей строки и перемещает ее в какое-либо другое. По команде С оригинал копии остается на прежнем месте, по команде М перемещается со старого места. Размножение имеет смысл для команды С, но не для команды М, поэтому команда М не может сделать несколько копий. В команде М задаются три параметра: начальнаястрока, конечнаястрока, куда М Как и для команды С обязательным является параметр ’’куда”. Параметры ”начальная_строка”, ”конечная_строка” принимаются текущими, если они не указаны. Рассмотрим еще раз наш пример из трех строк, но на этот раз переместим строки 2 и 3 выше строки 1. Сначала введем команду : *2.3,1М которая означает: ”взять строки 2 и 3 (2,3) и переместить их выше строки I ОМ).” И вот что будет получено: 244
1: this is the SECOND line (это ВТОРАЯ строка) 2: this is the THIRD line (это ТРЕТЬЯ строка) 3: this is the first line (это первая строка) Третья специальная команда, которую мы используем для перестановки в файле — это команда Т (Transfer — перенести). Команда Т используется для чтения содержимого другого файла и помещения его в редактируемый файл. Команда вводится следующим образом: номер _строки 7 имя_файла Содержимое другого файла помещается в память перед строкой с указанным номером точно так же, как в командах I, С и М. Файл должен быть указан обязательно, номер строки может быть опущен. Если он не задан, то новые данные будут помещены перед текущей строкой. Если, например, у вас есть файл с именем NEWDATA, имеющий вид: 1:*this is the name line (это строка имени) 2: this is the address line (это строка адреса) и вы хотите поместить его перед нашим многострадальным примером из трех строк, вы должны ввести команду: *1TNEWDATA тогда в результате получится: 1:*this is the name line (это строка имени) 2: this is the address line (это строка адреса) 3: this is the SECOND line (это ВТОРАЯ строка) 4: this is the THIRD line (это ТРЕТЬЯ строка) 5: this is the first line (это'первая строка) Имеется еще одна команда повышенного уровня — Р (Page — страница). Команда Р предназначена для просмотра (перелистывания) файла и работает она как команда L, с одним удобным исключением. Команда L не изменяет номер текущей строки, который может сильно отличаться от номера выводимой строки. Команда Р делает номер последней выведенной строки текущим, поэтому рабочее положение в файле соответствует тому, что выводится. Это значит, что вы можете листать файл,нажимая клавишу Р повторно. Если же вы повторно нажмете клавишу L, то будете видеть одни и те же строки. 245
Глава 24 ФАЙЛ КОНФИГУРАЦИИ СИСТЕМЫ В этой главе мы собираемся углубиться в один из наиболее сложных и интригующих аспектов операционной системы. Мы рассмотрим здесь некоторые идеи и некоторые программные файлы, которые между собой не имеют прямой связи. Объединяет их то, что так или иначе они модифицируют, проверяют или приспосабливают для ваших нужд работу дисковой операционной системы. Файл конфигурации системы В самом начале во время загрузки ДОС совершается некоторая подготовительная работа, так называемая инициализация, во время которой ДОС настраивается для дальнейшей работы и определяются средства, с которыми она сможет работать. Вы можете участвовать в инициализации с помощью так называемого файла конфигурации системы. На последних стадиях инициализации ДОС обращается к диску, с которого производится ее загрузка и находит там специальный текстовый файл с именем CONFIG.SYS. В этом файле ДОС сообщается информация о системе вашего компьютера, и вы можете использовать этот файл для указания особенностей того, как будет сконфигурирована система. Собственно файл CONFIG.SYS представляет собой обычный текстовый файл в кодах ASCII, в котором находится последовательность команд для операционной системы по заданию нужных нам параметров ДОС. Эти команды можно разбить на две группы: те, которые выполняют определенные функции, и те, которые начинаются со слова DEVICE (устройство), пред¬ назначенные для загрузки внешних программ (драйверов устройств) в ДОС. В следующем разделе мы рассмотрим некоторые отдельные команды, а в конце главы сделаем обзор драйверов устройств. При установке системы программа SELECT создает ваш файл CONFIG.SYS. Команды в этом файле основаны на выбранных вами параметрах настройки. Если вы хотите посмотреть файл конфигурации вашей машины, введите следующую команду: type c:\config.sys На некоторых компьютерах программа SELECT присваивает файлу конфигурации имя CONFIG.400 (для DOS 4.00 и 4.01), чтобы 246
не возникало путаницы с существующим файлом CONFIG.SYS Поэтому вам, может быть, потребуется ввести: type c:\config.400 Команды конфигурирования Имеется 13 специальных команд, которые вы можете ввести в файл конфигурации вашей системы CONFIG.SYS. Некоторые команды сугубо технические и вам, возможно, никогда не придется встретиться с ними в своей работе (хотя некоторые вставляются автоматически при установке ДОС). В этой главе я объясню наиболее важные для вас команды. Начнем с команды REM. REM (пояснение) Точно так же, как в файлах пакетной обработки вы можете вставлять команду REM (пояснение, комментарий) в файл конфигурации. (Заметим, что в более ранних версиях ДОС это было невозможно.) Команда удобна по двум причинам: во-первых, вы можете вставлять свои пояснения, которые помогут вам понять,что вы делали, когда в следующий раз будете читать этот файл; во-вторых, когда вы экспериментируете, то можете ’’выключить” некоторые команды, помещая перед ними команду REM. BREAK (прерывание) Команда BREAK может быть установлена в режим BREAK-ON (включить проверку прерывания) или BREAK-OFF (выключить), она управляет принятым при запуске способом проверки ввода комбинации клавиш Control-Break, использовать которую вы уже умеете. Как вам известно, команда BREAK позволяет до некоторой степени задавать возможность прерывания программ путем нажатия комбинации указанных клавиш. При обычных операциях ДОС вы можете пользоваться командой BREAK для изменения установки включением прерывания. Когда вы вводите команду BREAK в файл конфигурации, вы задаете установку по умолчанию, т.е. начальную установку при загрузке ДОС. Если состояние ключа прерывания для вас важно, тогда, помещая команду BREAK в файл CONFIG.SYS, вы можете управлять ключом прерывания. Как уже было сказано, обычная команда BREAK имеет точно такое же действие. Вы можете выбирать, ввести ли команду BREAK в файл конфигурации или в файл AUTOEXEC.BAT (см. гл. 24). Но одновременно в обоих файлах ее не должно быть. 247
BUFFERS (буферы) Для улучшения работы ваших программ, а еще больше своих собственных программ, ДОС резервирует некоторый объем памяти для буферизации информации с дисков, что позволяет при определенных обстоятельствах уменьшить число обращений к дискам для считывания с них и записи на них информации. Из соображений экономии ДОС по умолчанию резервирует не более двух-трех буферов дисков. Для большинства пользователей, в особенности при использовании жесткого диска, такого числа буферов оказывается явно недостаточно для эффективной работы. К счастью, вы можете управлять числом буферов дисков, которым пользуется операционная система, включив команду BUFFERS в файл конфигурации CONFIG.SYS. Эта команда позволяет вам устанавливать любое число буферов, какое хотите, от минимального, равного 1, до максимального — 99. По моему опыту при работе с ПК с жестким диском требуется, по крайней мере от 16 до 20, 30, 40 и даже более буферов. Но за резервирование буферов приходится расплачиваться, поскольку каждый буфер занимает 512 байт памяти, которая отбирается у ваших главных рабочих программ. Тем не менее, если у вас имеется достаточный объем памяти и вы правильно выбрали число буферов, они позволят вам значительно увеличить скорость выполнения ваших задач при работе с дисками. Вы можете легко проверить, нужно ли в вашей машине увеличить число буферов. Задайте в файле конфигурации CONFIG.SYS число буферов командой: BUFFERS=8 После этого перезагрузите машину и проверьте ее работу с наиболее часто применяемыми программами. Если вы не знаете, какие программы выбрать для испытания, тогда в качестве теста используйте программу операционной системы CHKDSK. Зафиксируйте время, которое потребуется ДОС для загрузки программы и сколько времени они будут выполнять интенсивную работу с диском. После этого попробуйте повторить ту же работу со значениями: BUFFERS=16 BUFFERS=32 BUFFERS=64 и пронаблюдайте, что происходит в каждом случае. Не обращайте внимания на различия порядка минуты, но если вы заметите резкое изменение, то вы нашли золотую жилу. 248
Командой BUFFERS можно в некоторых случаях произвести наилучшую настройку, однако чаще всего трудно уловить оптимальное значение числа буферов, которое вам потребуется. В вашем руководстве по операционной системе есть раздел, в котором вы прочтете, как работают буферы, и получите рекомендации, какое число буферов выбрать. Однако, если вы не уверены, что делать, то лучше всего оставить количество буферов таким, каким его настроит файл конфигурации при установке системы. Это наиболее приемлемо для большинства пользователей. В одном исключительном случае вы наверняка пожелаете изменить число буферов командой BUFFERS.. При установке операционной, системы PS/2 вы будете пользоваться программами, находящимися на ’’эталонной” дискете. Они позволяют установить драйвер IBMCACHE.SYS, позволяющий повысить эффективность работы вашего диска, генерирующего программу, которая называется кеш для диска. Последний представляет собой часть памяти, действующую как интерфейс для ваших дисков. Если в вашем компьютере достаточно большая память, то очень рекомендую вам завести себе кеш для диска. Драйвер IBMCACHE.SYS лучше справляется с ускорением работы с дисками, чем большое количество дисковых буферов операционной системы. В данном случае дополнительные буферы оказываются избыточными и только напрасно будут расходовать память, поэтому установите BUFFERS=3. Если в вашем распоряжении нет операционной системы PS/2, и вы работаете в среде MS-DOS, то вам принесет пользу подобный ему драйвер, который называется SMARTDRV.SYS. COUNTRY (страна) Следующая команда, включаема* в файл конфигурации CONFIG.SYS, которую мы рассмотрим, — это команда COUNTRY, нам уже встречавшаяся ранее. Поскольку персональные компьютеры и ДОС получили широкое распространение по всему миру, возникла необходимость приспособить ДОС и работающие под ее управлением программы к различным обычаям и условностям, принятым в различных странах. Первоначально ДОС выполняла работу с учетом максимального удобства для американцев, но теперь ее можно подстроить для любой страны, в которой она будет использоваться. Для этого используется команда COUNTRY в следующем виде: C0UNTRY=061 249
и после этой команды ДОС делается удобной для работы в Австралии. По умолчанию в ДОС принят код 001 для США, но в настоящее время имеется большое число кодов для всех стран, в которые поставляется операционная система. Установка кода страны перестраивает выполнение некоторых действий самой операционной системы. Например, формата представления даты и времени на экране, когда вы пользуетесь командой ДОС, в частности DIR, которая показывает информацию о дате и времени. В США даты записываются в виде: месяц, день месяца и год, т.е. 8-14-87. Но в других странах принят традиционно другой порядок, например первым указывается год либо первым — день месяца. Однако команда COUNTRY не только перестраивает выполнение своих собственных действий операционной системы, но делает также возможным изменение действий некоторых других программ. Для осуществления этого программа (незаметно для нас, закулисно) опрашивает таблицу, находящуюся в ДОС и хранящую специфическую для данной страны информацию, и передает эти данные в другие программы. Указанная таблица содержит информацию не только о принятой национальной форме представления дат и времени, а также символа национальной валюты (например, $ — знак доллара, основной денежной единицы США, знак фунта стерлингов) и тому подобные сведения. Немногие программы используют эти заложенные в ДОС возможности, но они всегда доступны для любой программы, которую хотят приспособить к местным национальным условностям. Другие команды файла конфигурации CONFIG.SYS Существуют также команды задания конфигурации, которые позволяют либо расширять, либо сокращать некоторые внутренние ограничения самой ДОС. Команда FILES позволяет управлять числом дисковых файлов, с которым одновременно может работать программа. Принято по умолчанию 8 файлов, большее число (оно может достигать 255) позволяет программе работать с большим числом файлов, тогда как меньшее число позволяет несколько уменьшить объем используемой памяти. Другая подобная команда FCBS также следит за числом одновременно используемых файлов, но более старым способом. До тех пор, пока вы не получите сообщение операционной системы о каких-либо неполадках в этом отношении (что возможно, но маловероятно), можете этой командой не пользоваться. Еще одна подобная команда LASTDRIVE позволяет указать системе, какое число логических дисков она может обслуживать. ДОС всегда обслуживает максимальное число дисков, которые есть в машине, и всегда настроится на необходимое число физических 250
устройств и соответствующее количество драйверов. (Об этом мы еще поговорим в следующем разделе.) Кроме фиксированного набора устройств вы можете как бы временно включать и исключать другие устройства с помощью команды SUBST. Однако ДОС не может обслуживать неограниченное число новых устройств. Она должна заблаговременно знать, к какому максимальному числу логических устройств вы будете обращаться, именно для указания этого и служит команда LASTDRIVE. Она вводится следующим образом: LASTDRIVESLETTER (буква) причем буквенное имя устройства представляет собой любую из букв латинского алфавита от А до Z, таким образом, всего может быть задано не более 26 устройств. Если вы не вводите эту команду, то ДОС считает, что LASTDRIVE=E. При этом получается 5 устройств: А, В, С, D и Е. Для большинства пользователей этого достаточно, поэтому командой LASTDRIVE можно совсем не пользоваться. Но если вы работаете в сети или к вашей машине подключены дополнительные устройства, вы будете вынуждены включить команду LASTDRIVE, чтобы расширить набор допустимых имен устройств. Минимально вы можете указать число физических устройств, входящих в ЭВМ. Если вы укажете меньшее число, то ДОС перехитрит вас, она игнорирует вашу команду. Команда SHELL Следующая команда файла CONFIG.SYS интересная. Она позволяет управлять некоторыми параметрами работы интерпретатора команд операционной системы COMMAND.COM, который можно считать сердцем операционной системы. Команда SHELL задается следующим образом: SHELL=COMMAND.СОМ /Р /Е:256 Эта команда позволяет делать ряд интересных вещей. Во-первых, вы можете сделать активным другой интерпретатор команд вместо стандартного COMMAND.COM, и в команде SHELL вы можете указать местонахождение и путь для поиска другого интерпретатора. И даже для стандартного COMMAND.COM можно командой SHELL указать другой путь или устройство, где ДОС должна найти эту программу. В приведенном примере заданы два параметра, которые управляют некоторыми свойствами COMMAND.COM. Первый параметр /Р дает указание программе делать то, что она сделала бы обычно, если вы не ,включите SHELL в CONFIG.SYS, т.е. исполнила 251
бы стартовые команды из командного файла AUTOEXEC.BAT (подробнее о нем будет сказано, в следующей главе). Второй параметр /Е:256 определяет размер памяти, который ДОС должна резервировать для окружения. Окружение ДОС — это то место в памяти, в котором она держит информацию, сообщаемую командами PATH, SET и PROMPT. Если случится так, что стандартно отводимого места для указанной информации не хватит, вы можете расширить область окружения с помощью этого параметра в команде SHELL. Размер области окружения, который вы можете указать, составляет от 160 до 32768 байт. Минимальная величина 160 байт. Если вы не задали ключ /Е или ввели величину меньше 160, то ДОС автоматически установит размер 160 байт. (В более ранних версиях ДОС было немного по- другому. Поэтому детали посмотрите в вашем руководстве по ДОС.) Драйверы устройств Дисковая операционная система автоматически узнает некоторые данные о вашем компьютере и подключенных к нему устройствах (принтере, дисководах). Эти устройства подразумеваются и ДОС знает о них, потому что фирма IBM предусмотрела это в ДОС. Но вы, конечно, можете подключить к компьютеру какие угодно другие устройства. Каким образом ДОС узнает об их существовании и какие команды для этого ей потребуются? Проблема решается с помощью команды DEVICE, которую вы можете ввести в файл CONFIG.SYS. Нестандартные устройства обращаются к специальным поддерживающим программам, которые называются драйверами устройств. ДОС может подключать их к себе с помощью команды DEVICE. Для любого драйвера подключаемого устройства нужно иметь на диске с ДОС файл программы драйвера в машинных кодах. Обычно такой файл драйвера хранится на диске с расширением SYS. Например, если вы хотите подключить драйвер устройства с именем ANSI.SYS, то вы должны вставить в CONFIG.SYS команду: devi се s с:\dos\ansi.sys Когда ДОС встретит эту команду в файле CONFIG.SYS, она считает этот файл и вольет его в ДОС в качестве своей составной части. Нетрудно догадаться, что написание программы драйвера для устройства представляет собой задачу высокой технической сложности, посильную только для профессиональных программистов. Программа драйвера должна удовлетворять четким правилам ДОС, поскольку она взаимодействует с остальными ее частями ДОС. Обычные пользователи, вроде нас с вами, не создают драйверы, а 252
берут их в готовом виде как неотъемлемую часть того экзотического оборудования, которое мы хотели бы подключить к компьютеру, если для него действительно потребуется специальный драйвер. Устройство может представлять собой дисковод с необычными параметрами, устройство ввода типа "мыши” или что-либо еще. Например, если вы будете подключать к компьютеру устройство для сброса файлов на магнитную ленту, вы обнаружите, что к нему прилагается дискета с программой драйвера, в которой ДОС нуждается для обеспечения поддержки вашего устройства. Точно так же и другие экзотические устройства, подключаемые к вашему компьютеру, поставляются со своими драйверами. Драйверы устройств как программный продукт Концепция драйвера и его применения на самом деле шире, чем я здесь представил. Драйверы устройств могут применяться как ис¬ ключительно для поддержки оборудования, например упомянутого мной устройства на магнитной ленте, так и для выполнения других функций, которые больше относятся к области программного обеспе¬ чения. В нескольких следующих разделах я познакомлю вас с неко¬ торыми такими драйверами устройств, которые включаются в ДОС. VDISK.SYS(RAMDRIVE.SYS) Первый драйвер устройства ДОС — это драйвер VDISK.SYS. Он используется для создания виртуального диска. В онерационной системе MS-DOS этот драйвер называется RAMDRIVE.SYS. VDISK это не единственная программа, которая может создать виртуальный диск, но она входит как стандартная программа в комплект ДОС. Программа VDISK дает вам возможность задать операционной системе размер области памяти, оставляемой д/1я виртуального диска, а также указать, откуда резервируется эта область, — из основной или расширенной памяти, установленной в компьютерах класса АТ. Драйвер VDISK позволяет также управлять некоторыми характеристиками виртуального диска, например, максимальным допустимым числом названий файлов в его каталоге. Команда вместе с ее параметрами вводится в следующей форме: device * c:\dos\vdisk.sys размер_диска Это означает, что вы обращаетесь к файлу драйвера и сообщаете ДОС емкость (размер) виртуального диска в килобайтах. Например, чтобы создать виртуальный диск емкостью 1 Мбайт (1024 Кбайта), нужно ввести команду: device * c:\dos\vdisk.sys 1024 253
Если вы не укажете размер диска, то ДОС отведет для него по умолчанию 64 Кбайта. Но не только размером диска можно управлять с помощью драйверов VDISK.SYS и RAMDRIVE.SYS. Например, вы можете указать, где должен размещаться диск: в обычной расширенной (extended) или специальной расширенной (expanded) памяти. Подробности вы узнаете из вашего руководства по ДОС. Когда вы устанавливаете виртуальный диск, ДОС присваивает ему очередную букву в качестве имени устройства. Например, если у вас есть один жесткий диск с одним разделом и вы устанавливаете один виртуальный диск, то жесткий диск будет иметь имя С, а виртуальный диск — D. Более сложный пример: пусть у вас имеются два жестких диска и вы хотите установить два виртуальных. Разделы жестких дисков будут называться С, D, Е и F; виртуальные диски будут названы буквами G и Н. В этом случае вы должны ввести команду LASTDRIVE=H. ANSI.SYS Следующий драйвер устройства — ANSI.SYS. Это очень специфический вид драйвера, который вас не раз удивит. Его задача состоит в том, чтобы обеспечить возможность модификации обычных действий клавиатуры при вводе и дисплея при выводе данных. Полный обзор возможностей провести сложно и их трудно объяснить, суть, однако, состоит в том, что если вы установите драйвер ANSI.SYS в вашу операционную систему, вы будете иметь две чудесных возможности. Одна из них — это возможность переопределения значения клавиш, когда нажатие одной клавиши может превратиться во что* то другое, в частности в длинную последовательность нажатия клавиш, генерируемую драйвером ANSI.SYS. Например, можно задать ANSI.SYS, чтобы при каждом нажатии клавиши ”!” вводилась целая фраза: ” Неправда ли, это чудесно!” Другая удивительная возможность состоит в том, что он может принимать некоторые команды, которые обеспечивают ему полный контроль над выводом информации на экран, включая получение информации о текущем положении курсора на экране, цвете выводимых символов. Такие же возможности имеют некоторые языки программирования, например Бейсик, но в отличие от них ANSI.SYS дает возможность управления экраном любой программе, которая этого потребует. Это свойство ANSI.SYS управлять экраном было задумано для того, чтобы стандартным способом любая программа могла пользоваться всеми возможностями дисплея, не вдаваясь в детали работы этого устройства. Это может помочь при написании программ, которые будут работать на разнообразных компьютерах. Я бы всем рекомендовал устанавливать драйвер ANSI.SYS. Во-первых, потому что для некоторых программ он 254
нужен, и приятно сознавать, что он постоянно в вашем распоряжении. Например, вы должны иметь ANSI.SYS, чтобы пользоваться командами модификации MODE CON: . Во-вторых, ANSI.SYS может доставить вам массу удовольствия, если вы попытаетесь с помощью описания в руководстве по ДОС разобраться, как их можно использовать. DRIVER.SYS Еще один драйвер устройства, который поставляется с ДОС, это DRIVER.SYS. DRIVER.SYS позволяет вам создавать новые дисковые устройства с новым именем, например F, и обращаться с ними так же, как с обычными физическими устройствами. Может быть, это выглядит не очень умно, но находит применение. Вы уже знаете, что если ПК имеет только один дисковод, то ДОС будет обращаться с ним как с дисками А и В. При этом облегчается возможность копирования файлов с одной дискеты на другую на одном дисководе. Теперь представьте себе, что вы решили добавить еще один дисковод к вашему компьютеру. Скажем, если у вас был дисковод для 3,5-дюймовых дискет, то вам было бы удобно добавить дисковод для дискет с диаметром 5,25 дюйма, чтобы считывать более старые дискеты. Тогда драйвер DRIVER.SYS даст возможность указать операци¬ онной системе, чтобы она считала этот дисковод двумя устройствами (например, Е и F), и вы сможете использовать этот дисковод для копирования на нем 5,25-дюймовых дискет. Это очень удобно! Поддержка расширенной памяти — драйверы XMAEM.SYS и XMA2EMS.SYS Для обеспечения работы с расширенной памятью в ДОС предус¬ мотрены специальные драйверы. (Что такое расширенная память, объясняется в гл.25.) Эти программы поставляются только с опе¬ рационной системой IBM PC-DOS, а не с MS-DOS, и могут работать только на компьютерах IBM с процессорами типа 286 и 386. Рассмотрим первый драйвер XMAEM.SYS. Его название происходит от английского названия Expanded Memory Adaptor Emulator (эмулятор адаптера расширенной памяти.) Этот драйвер рассматривает специальную расширенную (expanded) панять (дополнительную память, которую программы ДОС, как правило не могут использовать) как обычную дополнительную (extended), которую некоторые программы использовать могут. С технической точки зрения, XMAEMS.SYS использует обычную дополнительную память для эмуляции адаптера специальной расширенной памяти IBM PS/2 80286/А, который в виде вставной 255
платы вы можете приобрести для компьютеров типа PS/2 на процессоре типа 286. Другой специальный драйвер устройства — XMA2EMS.SYS. Его название происходит от английского наименования Convert Expan¬ ded Memory Adaptor to Expanded Memory Specification 4.0. (конвер¬ тор расширенной памяти в соответствии со спецификацией 4.0.) Он трансформирует специальную расширенную память в наиболее современную обычную дополнительную память (версии 4.0), с которой могут работать многие важные программы. Я уверен, что все это кажется вам сложным, и на самом деле обращение к специальной расширенной памяти устроено непросто. И если вы посмотрите руководство по использованию описываемых драйверов, то поймете, что разобраться с их параметрами действительно трудно. В дальнейшем самое лучшее, что вы можете сделать, — это объявить во время настройки системы, что хотите иметь поддержку расширенной памяти, и дать программе настройки системы возможность сгенерировать соответствующие команды для файла конфигурации CONFIG.SYS. Все же на случай, если вы захотите самостоятельно включить команды управления расширенной памятью, приведу кратко основные положения: 1. Если у вас есть адаптер расширенной памяти фирмы IBM для компьютера с процессором серии 286, то единственное, что вы должны сделать — это установить драйвер XMA2EMS.SYS. Для этого вам нужно ввести команду типа: dev i cesc:\dos\xma2ems.sys f ramesd000 p254«c000 p255=c400 2. Если в вашем компьютере PS/2 используется процессор типа 386, то нужно сначала установить драйвер XMAEMS.SYS командой: devi се=с:\dos\xmaem.sys dev i cesc:\dos\xma2ems.sys f rame=d000 p254=c000 p255=c400 О подробностях вы можете прочитать в вашем руководстве по ДОС. После установки драйверов расширенной памяти вы можете сэкономить часть обычной памяти, указывая ДОС, чтобы некоторые программы она размещала в расширенной памяти. Тогда большая часть основной памяти (до 640 килобайт) будет в вашем распоряжении. Можно поместить в расширенную память часть команд файла конфигурации CONFIG.SYS. Вы можете сделать это, добавляя в конце команды ключ /х. К ним относятся команды: * BUFFERS 256
* DEVICE * ANSI.SYS * DEVICE « VDISK.SYS * INSTALL* FASTOPEN Если вы собираетесь загрузить эти команды в расширенную память, то нужно обязательно поместить в файле конфигурации первыми драйверы XMAEM.SYS и XMA2EMS.SYS. Это гарантирует, что сначала будет правильно сконфигурирована расширенная память, прежде чем вы начнете ею пользоваться. Автоматическая установка программ — команда INSTALL Имеется несколько программ операционной системы, которые, если вы в них нуждаетесь, должны быть включены в файл AUTOEXEC.BAT для того, чтобы они загружались при каждой загрузке ДОС. Некоторые из этих программ могут быть запущены из файла AUTOEXEC.BAT либо из файла CONFIG.SYS. Многие предпочитают запускать программы из файла CONFIG.SYS, чтобы уменьшить длину файла AUTOEXEC.BAT и сделать его более простым в обращении. Но это вопрос персонального предпочтения. Чтобы включить указанные программы в CONFIG.SYS, вы должны использовать команду INSTALL: install * имя_файла параметры Тем самым вы указываете программу, которую вы хотите установить, и параметры, которые нужны этой программе. Можно использовать команду INSTALL с программами FASTOPEN.EXE, SHARE.EXE, а также с программами поддержки национальных языков KEYB.COM и NLSFUNCT.EXE. Вот один из примеров: install s c:\dos\fastopen.exe с: Обратите внимание, что нужно полностью указывать имя файла и путь к нему, а также и расширение файла. Сводный перечень команд конфигурации и драйверов устройств Приводим для справки следующие таблицы, в которых показаны команды, которыми вы можете пользоваться при составлении файла конфигурации CONFIG.SYS. Обратите внимание,что команда SWITCHES используется только в операционной системе IBM РС- DOS, в то время как DRIVPARM имеется только в MS-DOS. 9 Зак 1807 257
Незнакомые вам команды относятся к сугубо техническим, которыми, по всей вероятности, вы непосредственно пользоваться не будете. Таблица 24.1. Сводка команд файла конфигурации CONFIG.SYS Команда ДОС ДОС Назначение PC-DOS MS-DOS BREAK * * Устанавливает проверку прерывания BUFFERS * * Задает число буферов дисков COUNTRY * * Устанавливает национальную форму представления некоторых данных DEVICE * * Устанавливает драйвер устройства DRIVPARM * Устанавливает параметры блочных устройств FCBS * * Устанавливает максимальное число FCB (блоков управления файлами) FILES * * Устанавливает максимальное число одновременно открытых файлов INSTALL * * Устанавливает резидентные программы LASTDRIVE * * Устанавливает максимальное число устройств REM A * Вводит описательный комментарий SHELL * * Определяет процессор команд и размер окружения STACKS * * Обеспечивает динамическое исполь¬ зование стеков данных SWITCHES * Позволяет работать на новой кла¬ виатуре. как на старой В следующей таблице приведены драйверы устройств, которые включены в ДОС. Обратите внимание, что VDISK.SYS, XMAEM.SYS и XMA2EMS.SYS работают только в IBM PC-DOS; RAMDRIVE.SYS и SMARTDRV.SYS — только в MS-DOS. Драйверы VDISK.SYS и RAMDRIVE.SYS выполняют одинаковые функции создания виртуального диска. Драйвер SMARTDRV.SYS сходен с драйвером IBMCACHE.SYS (который не является частью ДОС; он поставляется с дистрибутивной дискетой операционной системы PS/2). Оба драйвера устанавливают кеш для диска (механизм ускорения доступа к вашему жесткому диску). 258
Таблица 24.2. Сводка драйверов устройств ДОС Драйвер ДОС PC-DOS ДОС MS-DOS Назначение ANSI.SYS * * Расширяет возможности работы с клавиатурой и дисплеем DISPLAY.SYS * * Поддерживает замену кодовых страниц (нац. особенности) DRIVER.SYS IBMCACHE.SYS * * Приписывает драйверу диска буквенное .имя Создает кеш для диска (поставка с PS/2) PRINTER.SYS A * Поддерживает замену кодовых страниц принтера RAMDRIVE.SYS * Создает виртуальный диск SMARTDRVE.SYS * Создает кеш для диска VDISK.SYS A Создает виртуальный диск XMAEM.SYS * Эмулирует адаптер специальной расширенной памяти XMA2EMS.SYS A Эмулирует поддержку специальной расширенной памяти 259
Глава 25 ДОПОЛНИТЕЛЬНАЯ (EXTENDED) И РАСШИРЕННАЯ (EXPANDED) ПАМЯТЬ Как я уже объяснил в гл.1, "мозгом” компьютера является процессор. Именно он выполняет ваши программы и обрабатывает данные. Для обеспечения доступа к информации процессор пользуется принципом, в соответствии с которым каждый бит данных закреплен за определенным адресом памяти. Количество информации, которое процессор может обрабатывать, ограничено числом доступных адресов. Первые персональные компьютеры фирмы IBM были построены на базе процессора типа 8088 фирмы Intel. В системе с процессором этого типа можно обеспечить доступ максимально к 1048576 различным адресам, поэтому их емкость составляла 1048576 байтов данных. Это равнозначно 1024 килобайтам, или одному мегабайту. Часто применяется сокращенное обозначение килобайта — "Кбайт" или еще короче, — "К". Таким образом, программист может сказать, что адресное пространство компьютера с микросхемой 8088 равно 1024 К. Существенным обстоятельством для разработчиков ДОС послужило то, что им было заранее известно максимальное количество адресов памяти машины, не более 1024 К. Они понимали также, что этого количества памяти было более чем достаточно для любых пользователей. (В действительности, первые компьютеры IBM PC имели только 64 К ячеек памяти.) Исходя из этих соображений, они и заложили такую конструкцию памяти, которая и по сегодняшний день применяется в любом из 25 миллионов произведенных компьютеров с рассматриваемой операционной системой. Теперь проблема заключается в том, что принятая схема организации памяти стала единственным крупным фактором, который ограничивает дальнейшее развитие персональных компьютеров. В чем состоит проблема ДОС была разработана в то время, когда еще немногие понимали будущую роль персональных компьютеров и как быстро они будут развиваться. Конечно, нетрудно критиковать задним числом, однако, вероятно, наибольшей ошибкой, которая была допущена, было предположение, что процессоры и микросхемы памяти будут всегда дорогими и иметь небольшую емкость. Это привело к тому, что ДОС была разработана в расчете на ограниченную емкость памяти, и с этим ограничением даже сегодня приходиться считаться. И вот почему. Как я упоминал выше, процессор 8088 может адресоваться не более чем к 1024 К байтов данных. Можно представить это и по-другому: ячейка памяти доступна, если она имеет допустимый адрес и процессор 8088 260
поддерживает только 1024 К допустимых адресов. Теперь вопрос: как организовать эти адреса? Рассмотрим такую аналогию. Вы разрабатываете план новой застройки, и вам нужно за каждым домом закрепить определенный адрес, иначе их обитатели не смогут получать почту. Но в вашем распоряжении имеется ограниченное число адресов. Какой принцип присвоения адресов вы примените? Разработчики ДОС были ограничены 1024 К адресов, среди которых были несколько важных групп ’’домов”. Во-первых, существует обычная память, в которую помещаются все ваши программы и данные (включая саму ДОС). Эта память размещается в микросхемах памяти с произвольным доступом. Они находятся на основной системной плате компьютера, но иногда и на съемных платах, вставляемых в системную. Именно эту память имеют в виду, когда спрашивают, какую память имеет ваш компьютер. Во-вторых, имеются также микросхемы памяти, с которых информацию можно только считывать (ROM — read only memory, память доступная только для считывания). В них хранятся специальные программы системы ввода-вывода, которая по- английски называется BIOS (от Basic Input/Output System — базовая система ввода-вывода). Микросхемы ROM-памяти также располагаются на системной плате. В-третьих, имеется память, связанная с адаптерами дисплея. Эта часть памяти используется для хранения изображений, выводимых на экран. Разработчики ДОС решили принять следующую схему адресации. Первые 640 Кбайт адресов памяти предназначались для использования операционной системой в качестве обычной памяти. Остальные 384 Кбайт адресов выделялись для размещения базовой системы ввода-вывода, адаптеров дисплея и дополнительной памяти. Чтобы понять такую схему организации памяти, вернемся к нашей аналогии. Вам выделено 1024К адресов для планируемой застройки. Вы решаете отвести первые 640К адресов для обычных домов, в которых будут жить люди. Остальные 384К адресов вы используете для общественных построек, общественных залов и других целей. Но что получится (вот, где препятствие), если впоследствии условия изменятся так, что вы будете в состоянии построить еще несколько тысяч домов, но у вас адресов для них не хватит? В то время, когда ДОС разрабатывалась, казалось, что 640 Кбайт — это огромный объем памяти (напомню, что это в десять раз больше, чем в первых персональных компьютерах фирмы IBM). С течением времени за счет совершенствования технологии изготовления микросхемы памяти стали лучше и дешевле. Теперь стало возможно снабжать компьютеры обычной памятью с объемом больше 640 Кбайт. К сожалению, адресов для новой памяти не хватает, и поэтому процессор не может к ней обращаться. 261
В конце концов, на смену процессору 8088 пришли новые процессоры, которые могут адресоваться к нескольким мегабайтам памяти. Но, к сожалению,, ДОС была разработана для использования не более 1024 Кбайт адресов, и это ограничение по- прежнему остается, независимо от того, какой процессор вы имеете. Положение стало невыносимым в связи с тем, что промышленное производство персональных компьютеров выросло, а объемы файлов программного обеспечения и данных все увеличивались и увеличивались. Программисты всего мира и пользователи были обеспокоены. Им требовалось все больше памяти, и они могли ее получить, но у ДОС не было возможностей для работы с этой памятью. Решение проблемы Вообще говоря, если что-либо перестает работать, то имеются два выхода: вьт можете сделать что-то новое или подправить старое. В случае ДОС были использованы оба подхода. Во-первых, фирмы IBM и Microsoft предложили новую операционную систему OS/2 на смену ДОС. OS/2 имеет много преимуществ по сравнению с ДОС и, в частности, она может работать с огромными объемами памяти. Однако система OS/2 распространяется сравнительно медленно, и ДОС будет с нами еще многие годы. Во-вторых, фирмы Lotus, Intel, Microsoft и другие связанные с персональными компьютерами компании разработали схему организации памяти, позволяющую некоторым программам использовать память, выходящую за пределы 640 Кбайт. С этим решением проблемы мы познакомимся в следующем разделе данной главы. Дополнительная и расширенная память Любая обычная память, превышающая 640 Кбайт, называется дополнительной. Дополнительная память не может быть использована ДОС непосредственно. Однако имеется несколько частных применений, для которых она может служить. Например, коща вы пользуетесь программами драйверов виртуального диска VDISK.SYS или RAMDISK.SYS, чтобы создать виртуальный диск, вы можете указать, чтобы виртуальный диск размещался на дополнительной памяти. Таким образом, он не будет ничего отбирать из вашей драгоценной памяти 640 Кбайт. Однако этого недостаточно. В действительности нам нужна дополнительная память для размещения обычных программ и данных. Фирмам Lotus, Intel и Microsoft удалось найти пути осуществления этого. Их первая совместная система получилр название ”LIM” по первым буквам названия компаний, в настоящее время она получила повсеместную известность под именем ”EMS” (от Expanded Memory 262
Specification — спецификация расширенной памяти). Ее последняя версия известна как EMS 4.0. Память, организованная по принципам спецификации EMS, называется расширенной памятью. Как избежать путаницы? Прежде чем пойти дальше, я остановлюсь ненадолго на различии между дополнительной и расширенной памятью, чтобы быть уверенным, что вы все поняли. Разумеется, названия выбраны очень неудачно , и поэтому легко могут привести к путанице. Первые 640 Кбайт памяти представляют собой обычную память ДОС. даже не имеет особого названия, иногда говорят, что это "обычная” память. Все, что превышает 640 Кбайт, — это либо дополнительная, либо расширенная память. Если это также простая память, то ее называют дополнительной. Если она обладает особыми свойствами, приданными ей для удовлетворения требований спецификации EMS, то это "расширенная” память. Дополнительная память — это просто добавочная память. Расширенная память — это специальная добавочная память. Попутно замечу, что многие люди не знают того, что термины "дополнительная” и "расширенная” память применяются только в операционной системе ДОС. В других операционных системах, например в OS/2 или в семействе операционных систем Unix, можно использовать всю имеющуюся память компьютера. В этих операционных системах память называется просто ’’памятью”. И только в ДОС с ее ограничением в 640 Кбайт мы вынуждены делать различие между памятью разного типа. Как добавочная память становится расширенной? С дополнительной памятью все просто. Это обычная добавочная память, которая может находиться как на основной системной плате, так и на адаптерной плате памяти. Расширенная память более сложна, и от нее требуются особые свойства. Вы можете добавить расширенную память, купив специальные платы (которые гораздо дороже плат с обычной памятью), но можно получить расширенную память при помощи специальной программы, превращающей дополнительную память в расширенную. Выше были описаны два драйвера системы ДОС XMAEM.SYS и XMA2EMS.SYS. Эти программы, которые поставляются с PC-DOS, дают возможность работы с дополнительной памятью как с расширенной, но только на компьютерах PC/AT с процессорами типа 286 или 386 и компьютерах IBM PS/2 с процессором типа 486. * По-английски дополнительная память (extended memory) и расширенная (expanded) очень сходны по написанию и близки по смыслу, поэтому при переводе пришлось подобрать два слова с большими отличиями. — Прим. перев. 263
Как используется расширенная память? Использовать расширенную память можно только для специально написанных для нее программ. В настоящее время большинство распространенных программных пакетов написаны с учетом требований спецификации EMS, и поэтому они работают в расширенной памяти. Обычно эти программы требуют для своей работы огромное количество памяти, как, например, базы данных и электронные таблицы. Вы можете также использовать расширенную память для хранения резидентных программ ДОС. Как используется дополнительная память? Как правило, простая дополнительная память оказывается менее полезной, чем расширенная. Однако имеются три важных случая для ее применения: 1) создать виртуальный диск; 2) кеш для вашего твердого диска. Для этого вы можете использовать программы VDISK.SYS или RAMDISK.SYS для виртуального диска и IBMCACHE.SYS или SMARTDRV.SYS для кеширования диска. Они были описаны в предыдущей главе. И, наконец, 3) некоторые программы, их совсем немного, могут работать в дополнительной памяти, т.е. они не требуют расширенной. В таких программах имеется встроенный расширитель ДОС. По-видимому, наиболее значительной программой, имеющей этот расширитель, является программа Lotus 1-2-3, версия 3. Компания Lotus, пытаясь расширить функциональные возможности ее популярного пакета программ электронных таблиц, пришла к необходимости иметь память объемом более 640 Кбайт. Однако, не желая, чтобы пользователям пришлось покупать дорогую расширенную память, разработчики применили расширитель ДОС, который позволил обойтись относительно более дешевой дополнительной памятью. Единственная трудность применения этих программ состоит в том, что для них требуется компьютер с процессором типа 286, 386 или 486. Таким образом, они не могут работать на более старых моделях IBM PC и IBM PC/XT. Нужна ли мне добавочная память? До тех пор пока вы не пользуетесь какой-либо программой, которая требует расширенной памяти, вам не нужна память более 640 Кбайт. Однако, я советую всем, чтобы память вашего компьютера была не менее 640 Кбайт,чтобы использовать до конца возможности ДОС. Поскольку в большинстве современных компьютеров установлена память больше 640 Кбайт, то вот что я рекомендую. Если для ваших программ требуется добавочная память, то вы должны использовать соответственно или дополнительную или расширенную память. Если же она не требуется, то используйте лишнюю память для кеширования твердого диска. И последнее замечание. При подключении добавочной памяти вы сможете получить заметно больший дополнительный выигрыш от вашего компьютера, если он работает на процессоре типа 386 или 486, чем на более ранних моделях PC, PC/XT и даже PC/AT. 264
Глава 26 ОБОЛОЧКИ Оболочка — это программа, отделяющая нас пользователей или как бы экранирующая от других программ, подобно раковине моллюска, которая защищает его снаружи. Строго говоря, процессор команд ДОС COMMAND.COM тоже является оболочкой. Он получает введенные вами команды, следит за тем, чтобы они исполнялись и отделяет вас от внутреннего устройства ДОС. Практически мы использовали команду SHELL в гл.24 в файле конфигурации CONFIG.SYS, чтобы указать ДОС местонахождение командного процессора. Однако можно организовать оболочки и вокруг другой оболочки. В частности, существуют программы-оболочки, которые могут окружать COMMAND.COM. Подобные оболочки создают операционную среду, пользоваться которой намного эффективнее и проще, чем обычными командами с командной строки. В этой главе мы рассмотрим две такие оболочки: DOS Shell и Norton Commander. DOS Shell включается в поставляемый комплект операционной системы DOS (начиная с версии 4.00). Программы пакета Norton Commander (’’Нортоновский командир” по имени автора этой книги — Питера Нортона) опубликованы издательством Peter Norton Computing. Они могут работать с любой версией ДОС. Преимущества DOS Shell состоят в том, что, находясь внутри этой оболочки, работать с ДОС свободней и легче, чем в среде самой ДОС, печатая команды для командного процессора COMMAND.COM. К достоинствам пакета, который вы должны купить за дополнительную плату, например Norton Commander , относятся гибкость, еще более мощные средства работы, чем в DOS Shell, также простота в обращении. Оболочка DOS Shell Программа DOS Shell была разработана фирмой IBM для упрощения выполнения обычных каждодневных операций на компьютере при умеренной степени гибкости. Работая с DOS Shell, можно пользоваться клавиатурой и "мышью” порознь и совместно. Это значит, что вы можете работать, делая выбор из предлагаемого набора меню команд не печатая их. Чтобы установить оболочку DOS Shell, не требуется выполнять какие-то особые действия, достаточно указать при генерации ДОС, что вы хотите ее включить. Для запуска программы нужно ввести ее имя: dosshelI При установке системы программа SELECT поместит эту команду в самый конец вашего командного файла AUTOEXEC.BAT, если вы запросите DOS Shell. Это приведет к тому, что каждый раз при загрузке ДОС оболочка DOS Shell будет запускаться автоматически. 265
Вы можете вставить эту команду или удалить ее из командного файла AUTOEXEC.BAT по вашему желанию. Даже если вы не включили в него эту команду, вы всегда можете запустить DOS Shell из командной строки ДОС. Как вы увидите далее, команда DOSSHELL на самом деле представляет собой командный файл, который вызывает программу- оболочку. Вы можете изменить этот фдйл, чтобы задать способ работы оболочки. Для чего применяется оболочка DOS Shell? Имеются три аргумента в пользу применения оболочки DOS Shell: 1. Обеспечения простого интерфейса с ДОС через меню. 2. Создание удобной рабочей среды для себя или кого-либо другого. 3. Создания доступных функций, что при помощи обычных команд ДОС сделать невозможно. Огромным достоинством DOS Shell является простота работы с ней, поскольку вам не требуется вводить никаких команд ДОС. Можете считать, что это как раз то, чего вы хотели. DOS Shell превосходно подходит для офисов и служб, в которых несколько человек должны иметь доступ к одной системе. У каждого из них может быть собственный вариант оболочки, который наиболее удобен для его работы. Более того, вы можете завести на каждого пользователя свой пароль, чтобы ограничить доступ к некоторым программам посторонним лицам. Как научиться пользоваться DOS Shell? Вы получаете документацию по DOS Shell и ДОС одновременно. Если это операционная система IBM PC-DOS, то описание DOS Shell имеется в руководстве Getting Started. С операционной системой MS-DOS поставляется отдельное описание MS-DOS Shell. В то же время пользоваться оболочкой DOS Shell настолько просто, что если у вас уже есть некоторый опыт, то можете попробовать запустить программу и начать с ней экспериментировать. DOS Shell имеет развитую систему контекстных подсказок. В любой момент вы можете получить помощь, нажав клавишу <F1> (функциональную клавишу F1) или выбрав в меню "Help” (помоги) с помощью "мыши”. Подсказка будет относиться непосредственно к тому, что вы в данный момент делаете. Если вы пользуетесь в меню помощи, то вы можете также просмотреть все темы, по которым можно получить справку и выбрать интересующую вас, а также узнать о действии любой клавиши. В этой главе я сделаю небольшое введение в DOS Shell и расскажу о ее возможностях. Однако наилучший способ ее изучения — это внимательно следовать руководству, которое вы получили. Как начать пользоваться DOS Shell? При работе с DOS Shell вы можете пользоваться клавишами управления курсором ("стрелками”), чтобы установить их на нужную вам позицию и затем нажать 266
клавишу ввода, или использовать "мышь" для указания позиции меню и нажать кнопку. Представляя меню, DOS Shell проверяет, какие функции в это время возможны. Если некоторые функции выбрать невозможно, они будут показаны так, чтобы это было очевидно. Если все же вы попытаетесь их вызвать, программа выдаст короткое напоминание. С помощью клавиатуры вы можете двигать курсор по экрану только в одном направлении при каждом нажатии клавиши. Если вы находитесь на первом экране, то курсор помещается в середине. Чтобы перейти к одной из позиций меню в верхней части экрана, нажмите клавишу <F10>. Примечание. В некоторых случаях потребуется нажатие клавиши <F11>. Если у вашего компьютера клавиатура старого типа, на которой только 10 функциональных клавиш, вместо этого нужно набрать комбинацию клавиш <Alt-Fl>, т.е. при нажатой клавише <Alt> нажать <F1>. Чтобы выйти из DOS Shell, имеется несколько возможностей. Во-первых, вы можете установить курсор в меню на позицию "Exit” (выход), и затем сделать соответствующий выбор, либо еще проще с помощью клавиши <F3>. В обоих случаях произойдет выход из программы оболочки. Другой способ состоит в том, что вы можете выбрать в меню ’’Command Prompt” (приглашение ввести команду) или нажать <Shift-F9>. В этом случае произойдет временный выход из оболочки и будет запущена новая копия командного процессора COMMAND.COM. Теперь вы можете напечатать любую команду ДОС. После ее исполнения введите enter чтобы вернуться в DOS Shell. Группы и программы Меню DOS Shell организовано в группы. Группа представляет собой перечень дос¬ тупных в данный момент возможностей выбора. Когда вы начинаете работать с обо¬ лочкой, автоматически выводится основное меню "Main Group”. Вначале в этой груп¬ пе имеются четыре возможных выбора. Первый выбор позволяет запустить новую ко¬ пию командного процессора COMMAND.COM. Выбор второй возможности позволяет запускать специальную программу, позволяющую выполнять различные действия с файлами. Следующий выбор дает возможность задать цвета, используемые в DOS Shell. Последний выбор особенный. Обратите внимание, что после ею названия ’’DOS Utilities”(утилиты ДОС) стоят три точки. Это означает, что данный выбор — факти¬ чески выбор новой группы команд меню. Если вы сделаете этот выбор, го перейдете к новому набору возможностей, связанных с этой группой. Чтобы снова вернуться в ос-' новное меню, нужно просто выбрать ’’Cancel” (отменить) или нажать клавишу <Esc>. Использование персональных групп и программ Универсальность оболочки DOS Shell определяется тем, что вы можете добавить в ее меню свои собственные группы команд и программ. 267
Чтобы запустить программу или выбрать группу, поместите курсор в соответствующее меню и нажмите клавишу ввода. Если вы пользуетесь ’’мышью”, щелкните кнопкой дважды. Для того чтобы добавить или изменить ваши программы или группы, используйте соответствующее меню ’’Program” или "Group”, находящихся в верхней части основного окна экрана. Дальнейшие действия очевидны. Вам нужно будет ответить на заданные DOS Shell вопросы, чтобы указать, какие программы и группы вы хотите добавить. Важный момент: когда вы добавляете свою исполняемую программу, нужно ввести либо: 1) имя одной программы или команды ДОС; 2) имена нескольких программ или нескольких команд ДОС; 3) имя командного файла. Особенно удобно то, что имеется возможность запустить более одной команды, что невозможно сделать из командной строки ДОС. Если вы вводите имя командного файла, то перед ним нужно поставить команду CALL. Настройка групповых меню DOS Shell позволяет выводить в каждом окне до 16 позиций для выбора. В основном окне это могут быть названия программ или групповых меню. На любом экране группового меню разрешается иметь только наименования программ. Иначе говоря, допускается только два уровня экранных меню. Что делать, если вы захотите иметь более двух уровней меню? Сама по себе DOS Shell не предлагает такой возможности, но способ для этого имеется. Вспомните, выше я сказал, что команда DOSSHELL, которая запускает оболочку, на самом деле представляет собой командный файл. Если вызвать этот командный файл в редактор, вы увидите, что он начинается обращением к программе SHELLC. Программа SHELLC имеет много переключателей (описанных в руководстве по DOS Shell). Одна из этих опций позволяет задать, групповое меню для вывода в основном окне при загрузке программы (обычно это основное меню Main Group), которое входит в систему, одно из находящихся в файле SHELL.MEU (расширение MEU произведено от слова MENU — меню)). Если вы определяете собственное групповое меню, то программа DOS Shell поместит его в файл с расширением MEU. Поэтому вы можете отредактировать файл DOSSHELL.BAT, заменив в нем имя Main Group на имя вашего группового меню. Таким образом, после запуска оболочки на экране в основном окне будет показываться ваше меню. Как я уже говорил, DOS Shell позволяет создавать групповые меню, подчиненные меню Main Group, т.е. только двух уровней. Но вот как можно преодолеть это ограничение. Сначала создайте групповое меню под Основным меню. Для примера назовем его меню второго уровня ’’LEVEL2”. Оболочка поместит его в файл с именем LEVEL2.MEU. После этого с помощью редактора измените DOSSHELL.BAT так, чтобы меню LEVEL2.MEU стало основным меню. Запустите оболочку. Теперь в качестве главного меню выступает ваше меню LEVEL2 После этого создайте новое групповое меню "LEVEL3”. DOS Shell запишет его в файл LEVEL3.MEU. 268
Снова отредактируйте DOSSHELL.BAT и сделайте меню LEVEL3.MEU основным меню. Теперь после загрузки оболочки мы будем выходить в меню LEVEL3. Можете проделать это столько раз, сколько потребуется для получения нужного вам числа групповых меню и уровней. После этого снова исправьте DOSSHELL.BAT так, чтобы основным меню был по-прежнему файл SHELL.MEU. На этот раз после загрузки оболочки вы сможете переходить из главного меню в групповое меню уровня LEVEL1, из меню уровня LEVEL1 в меню LEVEL2, из LEVEL2 в LEVEL3 и т.д. Причем на любом уровне можно иметь в меню до 16 позиций выбора. Следует однако предупредить, что на каком бы уровне вы не находились, при нажатии клавиши <Esc> или выборе "Cancel" происходит возврат на самый верхний уровень меню. Пользование программой обслуживания файловой системы Программа обслуживания файловой системы, входящая в DOS Shell, имеет большие возможности и проста в обращении. Фактически, как мы скоро увидим, она намного мощнее обычных команд ДОС. Вот перечень работ, которые вы можете выполнять с ее помощью: файлы: просматривать, копировать, перемещать, переименовывать, определять и изменять атрибуты; каталоги: создавать, удалять, перемещать, переименовывать. Вы можете работать как с одним файлом, так и с группами файлов. Обратите внимание на то, что можно перемещать файлы и каталоги м переименовывать каталоги. Вы можете, кроме того, просматривать скрытые файлы, делать скрытые файлы открытыми и наоборот. Такие задачи не могут быть выполнены с помощью команд ДОС. Даже если вы ярый сторонник командной строки процессора команд COMMAND.COM, для многократного выполнения аналогичных работ с группами файлов вы наверняка предпочтете воспользоваться оболочкой типа DOS Shell или Norton Commander. Наконец, имеется еще одна возможность при работе с файлами, которой не существует при работе с помощью ДОС-команд. Вы можете ассоциировать (связать) файлы с определенным расширением с конкретной программой. Тогда при обращении к файлу с этим расширением DOSSHELL будет запускать указанную программу. Например, вы можете ассоциировать файлы, рмеющие расширение DOC, с вашим редактором текстов. Тогда, если вы выбираете, для примера, файл MYFILE.DOC (клавишей ввода или двойным щелчком кнопки на мыши), автоматически будет вызываться редактор текста. 269
Глава 27 КАК НЕ ПОПАСТЬ В ЛОВУШКУ Все,что вы делаете на компьютере, связано с информацией какого-либо вида. Программы, фактические данные, изображения — все это представляет собой информацию. Но и у компьютеров имеются свои "опасные зоны", где достаточно одного неправильного действия, и может быть стерто множество ценной информации. Мы посвятим эту главу тому, что в большинстве книг по компьютерам не освещается. Рассмотрим некоторые ваши возможные неверные действия, которые могут привести к неприятностям и потере ваших данных. Мы укажем на некоторые причины неудач и источники опасности, которые могут встретиться вам в пути, и посмотрим, что можно сделать, чтобы их избежать. Разрушительные прерывания Очень просто можно потерять информацию, прерывая запись ее на диск раньше, чем процесс записи окончится. Подобное может произойти по различным причинам. Одной из них может быть пропадание питания во время записи на диск. В этом случае все, что не было переписано на диск, потеряно безвозвратно. Кроме приобретения резервного источника питания, сохраняющего напряжение при пропадании питания, с этим ничего не поделаешь, разве что почаще ’’сбрасывать” результаты вашей работы на диск. Можно также потерять данные, если вынуть диск во время записи на него, или прервать этот процесс командой для ДОС сочетанием клавиш Ctrl-Break. Однако в этом случае даже если диски вращаются, компьютер не обязательно во время прерывания делает запись, — он может в это время считывать с диска, и при этом никаких неприятностей не случится. Если все же он был занят записью, то принципиально может произойти повреждение данных, но даже из этой ситуации вы можете выйти без потерь. Вообще говоря, любое прерывание, о котором я говорил, несет в себе угрозу повреждения файла, но гораздо меньше опасность разрушения всего диска. Иногда вообще ничего не портится на ваше счастье. Случайно может быть испорчен один файл, тот, который записывался. Значительно реже могут быть большие повреждения, но в любом случае вы можете проверить как диск, так и записанный файл. Проверка диска Первый и самый лучший способ проверки диска — это дать команду CHKDSK. Программа CHKDSK выдает сообщение, если для 270
какого-либо файла попорчена логическая информация на диске. Если программа не выдает никаких сообщений об ошибках, то вы можете быть уверены, что диск в целом не поврежден и с тем файлом, который записывался, тоже может быть все в порядке. Но наверняка это еще не известно, поэтому следует продолжить проверку командой DIR, чтобы обнаружить ваш файл в директории диска. Если вам известно имя файла, который записывался, то укажите его в команде DIR, если нет, то просмотрите весь каталог (DIR *.*). При просмотре каталога главное, что надо проверить, все ли файлы имеют разумные размеры. Если какой-либо файл имеет размер ноль байтов, это означает, что процесс создания файла был прерван в промежуточной стадии, поэтому данные, которые записывались (или старые данные, которые были в файле раньше), оказались потерянными. Предположим, что вы обнаружили файл с нулевой длиной. Означает ли это, что вы должны начать все с самого начала? Необязательно. Большинство пользовательских программ производят автоматически спасение копий файлов, с которыми они работают, поэтому вы можете найти спасенную копию потерянного файла. Если это так, то вы потеряли только те изменения, которые вы внесли в файл при его обновлении. В некоторых случаях файлы первоначально создаются под временными рабочими именами и только потом им присваивается официальное имя по окончании создания файла. Если вы подозреваете, что файл был закрыт преждевременно, пока не закончилось его создание, то нужно поискать в каталоге необычные имена, чаще всего могут быть имена с расширениями $$$ или ТМР. Если вы действительно найдете такой файл, то, по крайней мере, ваша работа может быть спасена. (Файлы с расширениями ВАК, $$$ или ТМР должны быть переименованы командой DOS RENAME, прежде чем использовать их в работе.) Замена дискет Существует еще один вид прерывания работы при записи на дискеты, который может привести к еще большим потерям, — это замена дискет в ходе этого процесса. Проблема связана с записью информации о занятом и свободном месте на дискете, о чем мы уже раньше говорили. После того как файл записан, на дискету записывается информация о том, сколько места он занимает. Такая информация о каждом файле хранится в специальной таблице, которая называется таблицей размещения файлов FAT (File Allocation Table). Если эта таблица потеряна или повреждена, то любой файл будет поврежден или безвозвратно потерян. 271
Проблема может возникнуть абсолютно неожиданно, и я знаю многих людей, с которыми это случилось. Вы думаете, что процесс записи находится еще только в начале, и вдруг ДОС сообщает, что с дискетой не все в порядке, поэтому вы заменяете ее на другую. Однако, ДОС не знает, что вы заменили дискету, поэтому он записывает таблицу размещения файлов, считанную с одной дискеты, на вторую. И любой файл, который там ранее находился, будет потерян. Новые версии ДОС обеспечивают защиту от данного вида повреждений, но проблема все же остается. Способ защиты от этой неприятности очень простой: когда ДОС сообщает, что дискета не совсем в порядке, не заменяйте ее никогда на дискету с нужными данными. Нужно либо поправить первую дискету либо прекратить операцию. Не вставляйте хорошую дискету с записями, вы можете все их потерять. Эта потенциально существующая проблема заставляет постоянно держать некоторый запас заранее отформатированных чистых дискет. Если только вы не работаете с программой, которая имеет доступ к ДОС, и возникли затруднения с дискетой, когда вы пытаетесь записать результаты вашей многочасовой работы, отсутствие хорошей дискеты может все испортить: чтобы отформатировать дискету, на которую можно записать ваши результаты, вы должны прервать программу. А если вы прервете программу, то потеряете так или иначе результаты и тогда вам уже не нужна хорошая дискета. Обычные способы потери информации До сих пор я рассказывал вам об интересных и необычных способах возможной потери ваших данных. Теперь перейдем к менее интересным, прозаическим и общим опасностям потери данных. Имеется всего три тривиальных пути потери записей на дисках: копирование поверх существующих записей, стирание записей и переформатирование диска. Из этих трех опасностей наиболее распространенная — это копирование старых или плохих данных на место новых или хороших данных. Хотя существует миллион способов сделать это неумышленно, чаще всего неприятность возникает,когда вы сознательно хотите сбросить на диск копию ваших данных, но дЬлаете копирование в неверном направлении: вместо того, чтобы копировать с обновленного оригинала на дублирующий диск, вы копируете старый дубль на место обновленного оригинала и теряете ваши самые последние данные. Лучшим способом защиты от этой неприятности является использование командных файлов, чтобы иметь уверенность, что копирование делается корректно. Вот, например, командный файл, 272
которым я пользовался для дублирования рабочих файлов, когда писал эту книгу. Все файлы имеют расширение DOC, и я хочу скопировать их с жесткого диска на дискету. Я пользуюсь программой XCOPY с опцией /т, чтобы ДОС копировал только те файлы, которые были модифицированы после предыдущего дублирования файлов на дискету. * SAVE.ВАТ командный файл для дублирования новых файлов * на дискету О echo off * показать список всех файлов с расширением DOC dir d:\dosbook\*.doc * скопировать все модифицированные файлы на дискету хсору * d:\dosbookV•doc а: /т * показать список tocex файлов на дискете dir а: Еще один источник опасности потерять данные, — это команды DEL/ ERASE. Оказывается, невероятно просто можно стереть данные, не имея ни малейшего намерения сделать это. Это часто происходит при неумышленном или ошибочном использовании группового указания файлов *.* после того, как ДОС запросит подтверждение операции. Это не обеспечивает должной безопасности. Легко можно подумать: ’’Это как раз то, что я хочу сделать”, нажать в подтверждение ”Y”, а уже через секунду, т.е. с опозданием на секунду, от всего сердца желать, чтобы вы этого не делали. Чтобы защитить с;ебя от потери файлов путем их стирания, нужно сделать три дела. Во-первых, нужно обзавестись программой восстановления стертых файлов, подобной программе UnErase, имеющейся в пакете полезных программ Norton Utilities. Во-вторых, нужно отказаться от ручного ввода команды DEL или ERASE с командной строки. Если в какой-либо работе вы должны стирать файлы, не делайте это вводом команды с клавиатуры, вместо этого напишите себе командный файл, в котором файлы, подлежащие стиранию, будут указаны корректно. Если вы пользуетесь командным файлом вместо того, чтобы вводить команду стирания с клавиатуры, вы защищаете себя от случайных опечаток при вводе названий файлов, подлежащих уничтожению (очевидно, если вы правильно укажете имена файлов в командном файле). И третье, что нужно сделать, чтобы не стереть случайно файлы, —маленькая хитрость, которую мне показал один автор книг по компьютерам. Вы должны найти нужные файлы с помощью команды DIR, а потом воспользоваться командой DEL и клавишей <F3> для 273
автоматического стирания только тех файлов, которые вы обнаружили. Вот как это делается. Пусть вы хотите стереть все файлы, названия которых начинаются с буквы S и имеют расширение "ВАК”. Тогда сначала вы должны ввести команду с указанием файлов, которые вас интересуют: dir s*.bak Теперь вы имеете возможность узнать, какие файлы подходят под заданный шаблон. Может .оказаться, что именно эти файлы вас интересуют. Но среди них мог^ут оказаться один-два файла, о которых вы забыли, но стирать не хотите, и они будут стерты, если вы просто введете команду: del s* bak Если команда DIR показывает не те файлы, которые вас интересуют, вы должны изменить команду и повторять ее ввод до тех пор, пока не увидите те файлы, которые вы хотите уничтожить. Ну а теперь сама хитрость. Когда вр отобрали нужные файлы, введите команду "del", а после этого нажмите клавишу <F3>. Как я уже объяснял, клавиша <F3> — это клавиша для редактирования в ДОС и с ее помощью будет копироваться вся предыдущая команда или ее часть. В данном случае, поскольку вы напечатали ’’del”, с помощью <F3> будет копироваться все, кроме первых трех символов предыдущей команды DIR. Но это как раз будут те символы, которые соответствуют заданному шаблону имен файлов. Таким образом, вы гарантированы, что имена файлов, задаваемых после команды DEL, точно соответствуют заданному шаблону файлов, которые вы хотите удалить. Последняя опасность, о которой я вам собираюсь рассказать, это опасность случайного переформатирования диска, на котором могут находиться ценные данные. Это одна из самых серьезных опасностей для ваших файлов. Если вы стерли ваши данные, то у вас еще остается возможность восстановить их. Если вы скопировали информацию на место ваших данных, то что-то еще может на диске сохраниться. Но если вы отформатировали диск, то все,что на нем было, пропадает. Все файлы исчезают без всякой надежды на восстановление. Вы никак не можете отменить форматирование диска так же, как можно отменить стирание специальной программой UnErase (хотя в пакете программ Norton Utilities имеется программа, которая может это сделать при определенных условиях). Наилучшим способом защититься от случайного форматирования диска является использование команды FORMAT только в 274
командном файле с предварительной проверкой наличия каких-либо файлов на форматируемом диске. Привожу пример того, каким может быть подобный командный файл: * *ssssssssssssssssssssssssssssssssssssssssssssssssssssssssss :* FORMAT.ВАТ командный файл для форматирования дискет eecho off :* предлагаем пользователю вставить форматируемую дискету echo Вставьте форматируемую дискету в дисковод А: pause :* показываем список всех файлов. которые могут быть на диске dir а: :* предлагаем пользователю прекратить операцию, если это не :* та дискета, которую нужно отформатировать echo Если вы не хотите форматировать эту дискету, echo введите Ctгl-Break pause :* форматируем дискету c:\dos\format.com a: /v Несколько замечаний, которые я хочу сделать относительно этого командного файла: 1. Имя файла — FORMAT — совпадает с именем команды ДОС FORMAT. Однако, если вы укажете ДОС путь для поиска, который я задал,то ДОС сначала найдет файл FORMAT.BAT, а уже потом найдет каталог, в котором имеется файл FORMAT.COM, т.е. ДОС найдет C:\BATCH\FORMAT.BAT раньше', чем C:\DOS\- FORMAT.COM. Это значит, что если вы введете format то ДОС будет выполнять командный файл, а не команду. Единственное исключение, когда это утверждение будет неверным, это случай, когда вы окажетесь в директории DOS. В этом случае ДОС будет искать в текущем каталоге, не обращая внимания на указанный путь. (Замечу, между прочим, что просто нельзя помещать файл FORMAT.BAT в каталог ДОС вместе с файлом FORMAT.COM. ДОС отдаст предпочтение файлу с расширением СОМ перед командным файлом ВАТ в одной директории.) 2. В последней строке мы должны были задать полйый путь для поиска команды FORMAT. Если бы мы просто задали "format”, а не ’’c:\dos\format.com”, то произошел бы повторный запуск командного файла FORMAT.BAT, что привело бы к бесконечному циклу. 3. Если запустить этот командный файл с неформатированной чистой дискетой, то ДОС не сможет вывести ее каталог. Команда DIR выведет следующее сообщение: 275
General failure reading Orive A (Полная неудача при считывании диска А) Abort. Retry, Fail? (Прервать. Повторить попытку. Неудача?) Если это случится, нажмите клавишу ”а’\ чтобы отказаться от выполнения команды DIR. ( Нажимать клавишу ввода после ”а” не требуется.) Исполнение командного файла FORMAT.BAT продолжится со следующей команды командного файла. 4. После окончания форматирования ДОС запросит указать метку тома (потому что вы указали переключатель /v). Если вы форматируете дискету, чтобы отложить ее до тех пор, когда она потребуется, то советую вам дать ей метку "EMPTY”(чистая, пустая). Тогда при выводе директории ДОС выдаст сообщение: Volume in drive A is EMPTY (Дискета в дисководе А ЧИСТАЯ) 5. После окончания форматирования одной дискеты ДОС спросит вас, не хотите ли вы отформатировать следующую. Нужно ввести ”п”, если вы не хотите. Если вы хотите отформатировать другую дискету, запустите командный файл снова. 6. Этот командный файл форматирует только дискеты. А что делать, если вы пожелаете отформатировать твердый диск? Ответ таков: вы очень редко, если не сказать никогда, не захотите форматировать ваш жесткий диск. Однако,если необходимость этого все же возникнет, то у вас есть возможность выбрать одно из двух: либо ввести полное имя пути программы FORMAT или изменить каталог на каталог ДОС и запустить программу FORMAT из этого каталога. Помимо всех рассмотренных мер, наилучшим способом защиты вашей информации является большое внимание. Будьте внимательны всегда, когда вы заносите метку тома на диек, чтобы обозначить его содержание. Будьте осторожны, чтобы механически не повредить ваши диски. Будьте особенно внимательны при выполнении таких опасных операций, как копирование, стирание и форматирование. 276
Глава 28 КАК ИЗБЕЖАТЬ ДРУГИХ ОШИБОК Независимо от того, являетесь ли вы новичком в работе на персональном компьютере или нет, вас всегда будут огорчать серьезные ошибки, которые вы совершаете. Прежде всего будьте готовы к тому, что вы будете много ошибаться и не надо слишком по этому поводу переживать. Персональные компьютеры существуют совсем недавно и большой опыт работы на них получили пока немногие. По мере освоения этой области, вы будете встречаться с ошибками, их следует ожидать и быть готовым к ним. В этой главе я постараюсь помочь вам избежать некоторых ошибок, которые происходят вследствие недальновидности и дороже всего обходятся. Ошибки, связанные с оборудованием Поскольку компьютеры построены из набора отдельных модулей, который можно расширить, &ряд ли можно совершить ошибку, выбрав недостаточное количество оборудования. Если у вас возникнет настоятельная потребность добавить к вашему компьютеру дополнительное оборудование, которое сначала вам не было нужно, то вы всегда можете это сделать. Это, казалось бы, находится в противоречии с желанием приобрести вначале поменьше, а позже докупать дополнительное оборудование по мере необходимости. Однако на практике все обстоит иначе. Вам лучше купить компьютер в большем комплекте, чем вам кажется необхо¬ димым для начала. Почему так? По простой причине. Очень редко люди приобретают какое-либо устройство для компьютера, которое впоследствии оказывается им совершенно ненужным. Наоборот, чаще всего пользователи тратят лишнее время из-за того, что у них нет какого-либо оборудования в компьютере, которое они не решились приобрести для своей системы, либо тратят лишние деньги для замены части своей системы на более емкое, более быстродействующее устройство с лучшими техническими парамет¬ рами. Рынка подержанных запасных частей для персональных компьютеров практически нет, поэтому, если вам нужно заменить принтер или дисковод на более хороший, то вы не сможете хотя бы частично возместить свои расходы продажей старого оборудования. Если только вы» не крайне ограничены в своем бюджете, то разумнее приобретать компьютер подороже, чем подешевле. История' развития вычислительной техники показывает, что со временем людям нужно от компьютера все больше и больше. Если у вашего компьютера с самого начала заложены большие возможности, вы будете чувствовать себя увереннее на будущее. Разумеется, вы не должны покупать все, что предлагается и 277
расходовать деньги неосмотрительно. Однако практика работы с компьютерами говорит о том, что вы выиграете от того, что, оснащая свой компьютер, включите в него побольше оборудования, т.е. будете располагать большими объемами памяти и большей скоростью, чем требуется по вашему представлению. Какие ошибки вероятнее всего можно совершить, если сэкономить на оборудовании? Прежде всего, иметь память недостаточного объема, хотя в наше время ПК поставляются с дополнительной памятью сверх стандартного объема 640 Кбайт. Если выбранный вами компьютер не обязательно продается с памятью такого объема, я очень советую вам убедиться в том, что в приобретаемой вами системе память будет до этого объема доведена. Память стала сравнительно дешевой, поэтому вы можете приобрести ее в больших количествах. Конечно, память вы можете легко добавить, и ее не придется часто заменять, поэтому нет никаких проблем, чтобы расширить ее впоследствии. Однако обычно более вьпЪдно сразу приобретать память большого объема. Например, если вы сначала добавите в систему память объемом 1 Мбайт, а потом еще раз добавите 1 Мбайт, то скорее всего это обойдется вам дороже, чем сразу купить память на 2 Мбайт. Еще одна распространенная ошибка — экономия на емкости диска. Ваши потребности в объемах массовой памяти будут расти без конца. Увеличение емкости дисковой памяти вероятнее всего потребует снятия вашего старого дисковода, а это приведет к уже более ощутимым расходам. Если вы можете увеличить емкость памяти, добавив оборудование, то можно пойти на приобретение более дешевого устройства. Но если для увеличения емкости потребуется замена оборудования, то лучше будет вначале переплатить, чем недоплатить. Третья ошибка от экономии при выборе оборудования связана с качеством принтера. Принтеры, которые печатают красивЪ высококачественным шрифтом, обычно дороги. Именно в этой части большинство покупателей компьютеров старается сэкономить, но именно здесь большинство пользователей оказываются неудовлетворенными своим оборудованием. Поскольку принтеры могут быть очень дорогими, трудно советовать вам купить принтер лучшего качества, чем вам нужно. Я бы рекомендовал в данном случае хорошо подумать. Замена принтера на более качественный может оказаться слишком большой тратой денег. По собственному опыту скажу, что больше всего денег я тратил на принтеры, и хотя я покупал их по цене, на которую я сознательно шел, они оказывались хуже того, что я ожидал. Но самое важное, конечно, это выбор самого компьютера. Приобретая только игровой компьютер, вы получите компьютер с сильно ограниченными возможностями. Сравнивая между собой различные модели компьютеров, обратите особое внимание на возможность их расширения и технические возможности ’’голого” 278
компьютера. Последнее, что вы захотите заменить, это сам компьютер. Поэтому, если вы выбираете между двумя ком¬ пьютерами, то лучше ошибиться, выбрав более мощный и обладаю¬ щий большими возможностями к расширению, чем наоборот. Резюмируя, можно сказать, что наиболее распространенные и дорогостоящие ошибки, которые совершаются при покупке оборудования для персонального компьютера, состоят в приобретении дисководов с малой емкостью хранения и принтеров низкого качества. Сравнительно даже более распространенная ошибка, но зато менее дорогостоящая, это приобретение памяти недостаточного объема; в этом случае ваши денежные расходы не будут большими, но ошибка обойдете? лишними затратами времени. И наконец,' наиболее дорогая ошибка — это покупка компьютера, имеющего невысокую производительность и небольшие возможности к расширению. Ошибки, связанные с выбором программного обеспечения Ошибки выбора программного обеспечения могут дорого обойтись, причем не столько в денежном выражении, сколько в затратах времени. Можно \легко выбросить деньги в корзину, если сделать неверные шаги при покупке программного обеспечения для вашего компьютера. Скорее всего, вы ошибетесь именно при выборе программного обеспечения, чем с оборудованием. Возможно, что наиболее важной ошибкой может оказаться недооценка того, насколько существенна для вас связь отдельных частей вашего программного обеспечения между собой. Под этим я имею в виду, как часто вы будете пользоваться какой-либо программой совместно с другой. Объединение программ является ключевым вопросом, чем более интегрировано ваше программное обеспечение, тем лучше. Это серьезный -аргумент в пользу применения многоцелевых программных пакетов. Так, например, вы совершенно логично хотели бы приобрести самый лучший редактор текстов и самую лучшую программу для работы с электронными таблицами. Но еще разумнее было бы иметь интегрированный, программный пакет, который объединял бук возможности обеих программ, даже если по отдельности ни редактор текста, ни электронные таблицы, не относятся к лучшим. Такие же соображения относятся к программам бухгалтерского учета. Если вы собираетесь поставить на компьютере ведение платежных ведомостей, было бы очень недальновидным приобретать пакет программ для бухгалтерского учета без программы ведения платежных ведомостей, какой бы важной по отношению к платежной ведомости ни было ведение бухгалтерской книги. 279
Другой распространенной ошибкой бывает недооценка важности скорости работы и удобства пользования программой, которые для вас потребуются со временем. Когда вы начинаете работать с компьютером, скорость для вас может показаться не очень важной. Вы думаете, что не имеет большого значения число ударов по клавишам, которое требуется для указания программе выполнить какую-либо операцию, хотя другая программа может сделать то же самое автоматически из командного файла. Но со временем вы будете, вероятно, больше пользоваться компьютером и ваша работа будет больше зависеть от него. Поэтому скорость работы и удобство пользования станут главными факторами, от которых зависит эффективность вашей работы. Еще одна ошибка из-за недальновидности при покупке программного обеспечения состоит в недооценке важности переноса программ в быстродействующую память, например на твердый или виртуальный диск. По мере того, как число программ, которыми вы пользуетесь, увеличивается, более важной для вас становится роль твердых и виртуальных дисков. Ошибки в использовании компьютера В организации работы на компьютере вы можете допустить в основном три ошибки. Первая, которую я пока еще не вдалбливал вам в голову, поскольку вы об этом слышали из многих других источников: необходимо все время делать копии ваших рабочих данных. Я буду повторять это вновь и вновь. Компьютеры стали настолько надежными, что легко впасть в уверенность, что с вашими данными ничего не случится, но это не так. Ваши данные подвергаются опасности с двух сторон. Меньшая опасность исходит от неисправности компьютера или его программ, которая приводит к разрушению ваших данных. Большая опасность — в неумышленном стирании данных. Как я уже упоминал раньше, вы можете очень легко потерять ваши данные при ошибочном применении команд DEL/ERASE или FORMAT. Наиболее универсальным средством защиты от этой опасности является частое копирование ваших данных. Поскольку оно требует много времени, возникает желание либо не делать этого, либо отложить на время, но не надо потакать этому желанию. Как вы уже узнали раньше, лучшим и самым надежным способом защиты ваших данных может быть включение в рабочие процедуры сброса копий файлов на дискеты с помощью командных файлов. Второй ошибкой является недальновидная экономия времени на подготовку к организации работы. Может создаться впечатление, что не требуется много времени и усилий для того, чтобы правильно использовать вашу систему. Но тем не менее опыт говорит, что залог успеха — это тщательная организация рабочего процесса на 280
компьютере, включающая рациональное размещение в одном месте нужных программ и в особенности написание эффективных командных файлов. Сделав это однажды, повторяйте при изменении характера вашей работы или если придумаете лучший способ ее организации. Окупаются затраты времени удобством и простотой работы. Я заметил, что мне необходимо проделывать подобную процедуру приблизительно раз в месяц. Даже после полного года интенсивной работы на одном и том же компьютере, я провожу реорганизацию каждый месяц. Мне требуется на нее около получаса, но зато после работается лучше. Третьей ошибкой при работе является полное пренебрежение и неиспользование командных файлов. В операционной системе ДОС нет ничего, что могло бы в большей степени повысить эффективность работы и сделать ее более приятной, чем автоматизация рабочих процедур с помощью командных файлов. Теперь попробуйте что-либо придумать. Начните с простых команд типа -DIR, PROMPT, PATH и COPY. Более сложные командные файлы с командами IF, SHIFT и GOTO оставьте на будущее, когда вы приобретете больше опыта. 281
Приложение А СЛОВАРЬ ПОНЯТИЙ, ВСТРЕЧАЮЩИХСЯ В КНИГЕ Приведенный словарь предназначается для очень краткого ознакомления с наиболее общими основными понятиями и основными терминами, применяемыми при описании компьютеров. Вы можете воспользоваться этим словарем двояко: либо прочитать все подряд, либо, отыскивая интересующие вас слова-термины, напечатанные жирным шрифтом, читать относящиеся к ним пояснения. Числа и их представление Компьютеры работают только с двоичными числами, составленными из нулетй и единиц (0 и 1). Эти двоичные цифры называют для краткости битами. Компьютер работает с битами, что бы он ни делал. Даже если он имеет дело с буквами алфавита или с действиями над десятичными числами, все равно применяются методы двоичных чисел. Из-за неудобства записи многоразрядных двоичных чисел, например 0101010011101010101, были придуманы некоторые приемы для их более компактного представления. Чаще всего пользуются шестнадцатеричным, т.е. с основанием 16, представлением. Шестнадцатеричные цифры могут иметь 16 различных значений от 0 до 15; они записываются цифрами от 0 до 9, после которых продолжаются буквами, начиная с А (представляющего величину 10), далее В (со значением 11) и от С до F (значением 15). Шестнадцатеричные цифры представляют сразу четырехразрядные двоичные числа. (Для другого представления, восьмеричного, используется восемь цифр от 0 до 7, заменяющих по три бита.) Биты, которые используются в компьютере, группируются в большие группы. Так, группа из восьми битов называется байтом. Так как шестнадцатеричная цифра эквивалентна четырем битам, то для представления одного байта требуется два шестнадцатеричных разряда (иногда шестнадцатеричные цифры называют полубайтами). В байте может быть записано 28 , т.е. 256 различных значений. Их можно интерпретировать либо как числа, либо как знаки (например, буквы алфавита). В одном байте можно хранить один знак (символ), поэтому термины байт и знак иногда используются как взаимозаменяемые. Буквы алфавита и десять знаков цифр вместе называются 282
алфавитно-цифровыми символами, этот термин иногда неверно используют для обозначения любых текстовых данных. Когда байты используются для хранения символов, каждому из них можно сопоставить числовой код, представляющий этот символ* Наибольшее распространение получил Американский стандартный код для обмена информацией (American Standard Code for Information Interchange — ASCII). В коде ASCII заглавная латинская буква А имеет значение 65 (41 в шестнадцатеричном представлении), В — 66 и т.д. ASCII включает коды букв, цифр, знаки препинания и специальные управляющие коды. Собственно к стандартным в ASCII относятся 128 различных кодов, для представления которых нужно семь битов, но ввиду того, что символы ASCII почти всегда хранятся в байтах, то находится место для хранения еще 128 различных кодов. Вторую группу кодов иногда называют также расширенными кодами ASCII. Законные коды ASCII стандартизованы, расширенные могут меняться от компьютера к компьютеру. По традиции в компьютерах фирмы IBM коды ASCII не использовались. Вместо них применялись коды EBCDIC (Extended Binary Coded Decimal Information Code — расширенный двоично¬ десятичный код информации). Хотя код EBCDIC редко применялся в персональных компьютерах, он может приобрести для нас большее значение в связи с увеличением обмена информацией между обоими типами машин. Данные в кодах ASCII или файлы ASCII — это данные, которые состоят из текста — букв алфавита, знаков пунктуации и т.п., а не из цифр и^и других данных. Иногда термин ASCII -неаккуратно распространяется на текстовые данные. Правильнее говоря, файл ASCII содержит не только коды ASCII для букв, пробелов, знаков пунктуации и т.п., но также стандартные коды ASCII для форматирования текста, например возврата каретки и конца файла. Когда байт используется для представления числа, то 256 различных значений байта можно интерпретировать либо как только положительные числа от 0 до 255, либо как и отрицательные и положительные числа в диапазоне от -128 до 127. Они соответственно называются числами без знака (от 0 до 255) и числами со знаком (от -128 до 127). Чтобы представить числа с большим значением, используется вместе несколько байтов, образующих единицу, которая называется словом. На разных компьютерах в термин ’’слово” вкладывается разное значение, но чаще всего имеется в виду либо два байта (16 битов), либо четыре байта (32 бита). Для семейства компьютеров IBM PC слово означает два байта, 16-битовое число. Двухбайтовое число может иметь 216 различных значений. Они могут быть использованы как числа без знака в диапазоне от 0 до 65535 или как числа со знаком в диапазоне от -32768 до 32767. 283
‘Для некоторых задач целые числа оказываются непригодными. Если требуются числа с дробной частью или числа, изменяющиеся в широком диапазоне, применяется другая форма компьютерной арифметики. Она называется арифметикой с плавающей запятой. Числа с плавающей запятой имеют дробную часть и порядок, подобно ’’научной” форме записи, применяемой в технических науках. При работе с числами с плавающей запятой компьютер интерпретирует биты слова особым образом. Числа с плавающей запятой обычно представляют приблизительные, неточные значения. Обычно для представления чисел с плавающей запятой с различной точностью возможны несколько форматов. Принято называть их представлением с одинарной и с двойной точностью. Иногда числа с плавающей запятой называют действительными числами. Следуя природе представления чисел в компьютерах и действий над ними, нумерация элементов чаше всего начинается с нуля, первый элемент с нулевым номером называется нуль-базой. Отсчет от нуля, в частности, применяется при определению адресов ячеек памяти по отношению к некоторой начальной точке. Начальной точкой могут называться многие понятия, включая базовую точку и начало отсчета адреса. Относительное положение чаще всего называют смещением. Независимо от адреса положения начала отсчета адреса первый байт имеет смещение равное нулю, следующий байт — 1. Основы устройства компьютеров Все механические и электронные части компьютерной системы называются аппаратурой. Программы, которые используются в компьютерах, называются программными средствами. Идея компьютера начинается с концепции памяти, или запоминающего устройства. Память компьютера, состоит из множества ячеек, каждая из которых имеет свой адрес и может хранить какое-либо значение. В большинстве компьютеров, включая семейство персональных компьютеров, каждая ячейка представляет собой байт, в других компьютерах — слово. Адреса ячеек — это числа. Значения, хранимые в каждой ячейке, могут быть либо определены (считаны) , либо изменены (записаны). Когда значения считываются или записываются, необходимо задать адрес ячейки. В некоторых компьютерах память организована в большие модульные единицы, называемые страницами. В IBM PC страницы не используются, но для организации обращений по адресам память разделяется на модули по 16 байт, называемые параграфами (выбранный термин указывает на деление, более мелкое чем страница). Механизм адресации в рассматриваемых компьютерах образуется из двух частей: значения сегмента, которое указывает на границу параграфа, и относительного значения, которое указывает 284
на байт, имеющий данное смещение по отношению к сегменту параграфа. Совокупность двух значений: сегмента и величины смещения необходима для задания любого полного адреса, она называется иногда адресным вектором, или просто вектором. Количество памяти компьютера часто выражается в единицах, кратных 1024, поскольку число 1024 в двоичном представлении является круглым числом и почти круглым в десятичном представлении. Величина 1024 известна как К, от наименования метрической единицы — ’’кило”, например 64К — это 64 единицы по 1024, т.е. 65536. По отношению к общей емкости памяти К почти всегда означает 1024 байта. Однако применительно к микросхемам полупроводнико¬ вой памяти К означает 1024 бита. Если в журнальных статьях гово¬ рится о микросхемах памяти емкостью 16К или 64К, то имеется в виду 16К бит (эквивалентно 2К байт) или 64К бит (эквивалентно 8К байт). Компьютер может выполнять операции со значениями, хранящимися в памяти. Примерами могут служить арифметические операции (сложение, вычитание) или перемещение из одной ячейки в другую. Запрос компьютера на выполнение какой-либо операции называется инструкцией или командой. Последовательность компьютерных инструкций, которые выполняют некоторую работу, называется программой. Программы называются также программными кодами или кодом программы. Часть компьютера, которая интерпретирует программы и выпол¬ няет инструкции, называется процессором. Миниатюрный процессор, в особенности целиком размещающийся в единой компьютерной микросхеме (кристалл?), называется микропроцессором. Персональные компьютеры появились в результате прогресса в развитии микропроцессоров. Строго говоря, компьютер — это законченная работающая машина, в которую входит процессор и другие компоненты; но иногда компьютером называют собственно процессорную часть. Память компьютера используется для хранения как программ, так и данных. Для памяти между программами и данными нет никакой разницы. Однако для процессора только те значения в памяти, которыми записываются в виде правильных инструкций, могут представлять программу. Процессор считывает из памяти и записывает в нее команды, которые он должен исполнить, и данные, которые требуются в данной программе. Для того, чтобы помочь процессору выполнять его работу, в компьютере может быть предусмотрена специализированная память небольшого объема, которая не имеет адресов. 285
Подобную память называют регистрами. Регистры применяются для повышения эффективности выполнения арифметических опера¬ ций и облегчения обращения с адресами. Многие современные компьютеры, включая семейство ПК, используют стековый механизм для сохранения информации о своем текущем состоянии. Значения данных вводятся (проталкиваются) и выводятся (выталкиваются) из стека через его вершину по принципу (LIFO — last-in-first-out, т.е. последним_пришел-первым_вышел). Когда компьютер использует общую магистраль данных для пере¬ сылки данных из одной части в другую, такая магистраль называет¬ ся шиной. Стандартная PC имеет 8-разрядную шину; ПК класса АТ с процессором типа 286 пользуется 16-битной шиной, с процессором типа 386 используется 32-битная шина. Разрядность шины является косвенной характеристикой скорости и мощи компьютера. Память и процессор являются внутренними частями компьютера. Но у него имеется еще множество внешних частей, которые обоб¬ щенно называются периферийными (внешними) устройствами, или, короче, периферией. Большинство периферийных устройств должны подключаться к компьютерам через вспомогательные электронные блоки, называемые адаптерами. В сложных периферийных устрой¬ ствах, например, дисководах, в состав адаптера входит специальная логическая схема, которая называется контроллером. Нередко кон¬ троллер сам по себе представляет специализированный компьютер. Периферийные устройства могут быть разнообразными, но все они разделяются на несколько простых категорий. Это устройства внешней памяти, используемые для хранения программ и данных, которые могут переноситься во внутреннюю память компьютера. Примерами внешних устройств памяти могут служить устройства на гибких магнитных дисках, устройства записи на магнитную ленту кассетного типа, устройства на жестких дисках с большой емкос¬ тью. ( Более подробно об этом смотрите в разделе словаря о дисках.) Другие периферийные устройства используются для общения с человеком. Части оборудования, применяемого для общения между людьми и компьютерами, обычно называются терминалами. Терми¬ нал чаще всего состоит из клавиатуры, похожей на клавиатуру пишущей машинки, и похожего на телевизионный экран дисплея, выполненного на электронной лучевой трубке (ЭЛТ). Вместо ЭЛТ можно использовать принтер специальной конструкции. Экранный дисплей называют просто дисплеем или монитором. Цветной дис¬ плей может принимать цветовую информацию в комбинированном виде, иначе, композитной форме, или разделенными на три ком¬ поненты сигналами красного, зеленого и синего цветов, RGB-форма. Большие компьютеры снабжаются несколькими терминалами, небольшие персональные компьютеры обычно работают с одним терминалом, который может быть встроен конструктивно в систему компьютера. Именно наличие единственного терминала, 286
называемого также консолью, в большой мере определяет его персональность. Другие виды внешних устройств кроме памяти и терминалов — это принтеры и телефонные адаптеры. Адаптеры для подсоединения компьютеров к телефонным линиям называются по имени наиболее важных частей этих адаптеров, например модемы и адаптеры асинхронной связи; все эти термины широко используются для обозначения всего устройства связи компьютер-телефон, еще называемое устройством телекоммуникации. Наиболее распростра¬ ненным протоколом в сфере телекоммуникаций является стандарт RS-232C. Скорость передачи данных по телефонным каналам измеряется в бодах, т.е. битах в секунду. Обычная скорость телекоммуникации с персональными компьютерами составляет 1200 бод, или около 120 символов в секунду; 9600 бод соответствуют, приблизительно 960 символам в секунду. На персональных компьютерах соединение по стандарту RS-232C называется также последовательным соединением, поскольку через него информация посылается по одному биту одновременно. Параллельное соединение может одновременно передавать более одного бита. Имеется большое разнообразие принтеров, или печатающих устройств. Во многих ПК используются недорогие принтеры матричного типа, которые производят печать совокупностью точек. Высококачественные принтеры обеспечивают печать, не уступающую по внешнему виду качеству хорошей пишущей машинки. В большинстве высококачественных принтеров в качестве печатающегб элемента используется либо плоский диск с лепестками ("ромашка”), либо в форме большого наперстка. Существуют также два вида новых совершенно восхитительных принтеров, которые используются вместо традиционных матричных игольчатых принтеров и принтеров с "ромашкой”. Один из них — это струйный принтер, который выбрасывает очень мелкие капельки чернил, образующих на бумаге рисунок из микроскопических точек; другой вид принтера печатает так же гладко, как хорошая пишущая машинка с тканой красящей лентой. Еще один вид принтера использует метод лазерной печати. Лазерный принтер, по сути дела, представляет собой фотокопировальное устройство, управляемое компьютером, но если фотокопировальное устройство снимает оптической изображение с оригинала, то лазерный принтер создает изображение оригинала, который вы хотите напечатать. Для этого управляемый компьютером лазерный луч сначала ’’рисует” изображение внутри фотокопировального устройства, которое потом печатается на бумагу. Интерфейс, стык, представляет собой соединение между двумя какими-либо элементами компьютерной системы. Термин интерфейс относится как к соединению между собой частей оборудования, программных частей , так и к взаимодействию с человеком. 287
Многие части оборудования, которые могут присоединяться к компьютеру, называются оборудованием ввода-вывода (В/В). Наименьшая физическая часть, входящая в компьютер, — это микросхема. Микросхемы и другие компоненты электрически соединяются между собой и механически установлены на печатных платах, или просто платах. Если имеется одна главная плата, то она называется системной, или "материнской”, или планарной платой. Разъемы, позволяющие устанавливать в компьютер дополнительные платы, называются по-английски "slots” (паз, щель), в них могут быть вставлены платы памяти, платы сопряжения с дисками, платы для асинхронной связи с телефонными линиями и другие платы расширения или платы связи с внешними устройствами. Микропроцессор взаимодействует с окружающим миром через три средства: обращение к памяти, прерывания и порты. Порты имеют номер и адрес и используются для передачи данных в обоих направлениях между процессором и внешними устройствами. Прерывания* используются для привлечения внимания компьютера. Прерывания бывают трех видов (но обрабатываются все одинаково). Внешнее прерывание возникает из внешнего мира (например, от дисковода гибких дисков). Внутреннее прерывание сообщает процессору о возникновении какой-либо исключительной логической ситуации (например, делении на ноль). Программное прерывание — это запрее от программы на выполнение какого-либо обслуживания. Программное прерывание представляет альтернативу программному вызову подпрограммы. Обращения к памяти позволяют считывать из памяти и записывать в память компьютера. Память компьютера может быть нескольких типов. Обычная память, которая позволяет производить и считывание, и запись, называется по-английски RAM (random access memory — память с произвольным доступом), это — оперативная память, или ОЗУ. Память, которая содержит неизменяемые данные называется по- английски ROM (read only memory — память, из которой можно только считывать), или ПЗУ (постоянное запоминающее устройство). Память может быть выделена специально для определенной цели, например для хранения данных, выводимых на экран. Если для представления информации на экране дисплея используется память компьютера, такой дисплей называется картируемым.* * Дисплей, представляющий на экране образ памяти, или карту расположения информации в памяти . — Прим. иерее. 288
Программы и языки программирования Последовательность машинных команд называется программой. Части программ, выполняющих самостоятельную функцию, незави¬ симо от других частей программы, называются подпрограммами. Подпрограммы называются процедурами, если только они выпол¬ няют какую-либо работу. Они называются функциями, если результатом их работы является какое-то значение ("открой дверь” — это аналог процедуры; "скажи, как тебя зовут” — аналог функции). Многие подпрограммы требуют параметров для точного задания работы, которую она должна выполнить, например, подпрограмма, которая вычисляет квадратный корень требует в качестве параметра число для своей работы. Многие подпрограммы выдают по заве¬ ршении код, свидетельствующий, насколько успешно она прошла. Компьютеры могут исполнять только такие программы, которые записаны в подробном виде на так называемом машинном языке. Однако для удобства программы могут быть представлены в другом виде. Если подробные машинные команды заменить мнемонически¬ ми обозначениями (например, ADD — сложить, MOVE — пере¬ слать), то такую запись команд называют записью на языке ассем¬ блера (ассемблер, символический ассемблер или макроассемблер). Ассемблер называется языком низкого уровня, поскольку программа на языке ассемблера по своей форме записи близка к записи на машинном языке. Другие виды языков программирования больше абстрагированы от машины и порождают на каждую напи¬ санную программистом команду множество машинных команд. Они называются языками программирования высокого уровня, например к ним относятся языки Бейсик, Фортран, Кобол, ПЛ/1, Си и Форт. Программы, транслирующие написанные на языке высокого уровня программы в форму, пригодную для исполнения на компьютере, называются компиляторами, а для языков низкого уровня — ассемблерами. Практически нет разницы между компилятором и ассемблером — оба они производят трансляцию с языка программирования, понятного человеку в форму машинных команд. Программа, написанная человеком, в ее первоначальном виде ис¬ ходном виде называется исхддным текстом, или исходным кодом. Когда исходный текст транслируется (с помощью компилятора или ассемблера), то результат трансляции часто называют объектным кодом. Объектный код почти готов для использования, но его еще нужно подвергнуть небольшой переработке, которая выполняется программой редактора связей или компоновщика, чтобы в ре¬ зультате получить загрузочный модуль, представляющий собой законченную программу, готовую для применения. 10 Зак 1807 289
Процесс поиска и устранения ошибок в программе носит название отладки программы. Обычно существует множество способов получения желаемого результата при помощи программы. Схема, формула или метод, которые используются в программе, называются ее алгоритмом. Алгоритмы могут существенно различаться по эффективности даже для решения таких простых задач, как сортировка данных в алфавитном порядке. Поэтому поиск более эффективных алгоритмов не прекращается. Программа работает с символическими объектами, которые назы¬ ваются переменными. В действительности переменная — это имя ячейки памяти, в которой хранится бдноименная единица данных определенного типа. В переменную можно занести конкретное зна¬ чение данных, можно считать значение переменной, и ее назначе¬ ние состоит в том, чтобы обеспечить механизм манипулирования с данными. Переменные обычно имеют фиксированный тип, указыва¬ ющий, какие данные они могут принимать: например, данные цело¬ го типа, данные, представленные в форме с плавающей запятой оди¬ нарной или двойной точности, или строковых данных (последова¬ тельности символов текста). Файл также может быть в программе представлен переменной специального типа, которая может быть связана с дисковым файлом или каким-либо устройством, например с экраном дисплея. О распределении обязанностей При работе на персональном компьютере один человек выполняет все необходимые действия сам. На более старых больших ЭВМ, нао¬ борот, существует разделение труда, устанавливающее обязанности каждого сотрудника в процессе работы на машине. Поэтому пользо¬ вателя ПК могут заинтересовать названия различных должностей персонала ЭВМ. Пользователь, или конечный пользователь, — это человек, задача которого выполняется на машине. Системный программист, или аналитик, разрабатывает общую стратегию решения задачи конечного пользователя и согласует с ним детали выполняемой работы. Программист преобразует общую стратегию, намеченную систем¬ ным программистом, в подробную тактику и выбирает методы, кото¬ рые будут использованы. Обычно эта работа включает в себя напи¬ сание (и проверку) действующей программы. Впрочем фактическое написание и отладка программы иногда поручается кодировщику. Кодировщик превращает подробно разработанную програм¬ мистом методику в последовательность инструкций программы. Оператор запускает программу на ЭВМ, чтобы получить результа¬ ты для конечного пользователя. 290
Организация данных В зависимости от того, кто будет просматривать информацию, данные организуются и представляются по разному. Для самого компьютера данные представляются просто битами и байтами. Для программиста, оперирующего данными, существуют принятые способы логического деления данных. Полный набор связанных между собой данных называется файлом (например, файл почтовой переписки). Законченная единица информации в файле называется записью, например в файле почтовой переписки вся корреспонденция, относящаяся к одному адресату, может быть записью. Наконец, в записи выделяются поля, т.е. информация одного типа. Например, в записи файла почтовой переписки полем может быть почтовый индекс. Записи, которые считывает или пишет программа , — это логические записи. Логические записи помещаются в память в виде физических записей, которые фактически считываются с дискеты или на нее записываются. Программа просматривает логические записи, в противоположность этому операционная система выполняет необходимые преобразования между логическими и физическими записями. Физическая запись на диске называется сектором. Термины "База данных" и "Система управления базами данных (СУБД)" используются (иногда неверно) так часто, что фактически они не имеют точно определенного смысла. Если данные многочисленны, имеют сложную структуру и распределены между несколькими файлами, то их можно рассматривать как базу данных. СУБД — это программа, обычно большая и сложная, которая может управлять и организовывать базу данных. Терминология диска Данные на диске хранятся в секторах, доступных для считывания и записи по отдельности. Обычно для ДОС сектор — это 512 байт. Секторы представляют собой физические записи на диске, т.е. единицы информации, фактически считываемые или записываемые при обращении к диску. Дорожкой называется несколько секторов, находящихся на диске на одной окружности, обычный формат диска имеет 9 секторов на одну дорожку. Если диск имеет более одной поверхности, то все дорожки, находящиеся на одинаковом расстоянии от центра диска, называются цилиндрами. Секторы, находящиеся на одном цилиндре, могут считываться без перемещения механизма подвода головок считывания-записи. Перемещение механизма подвода головок с одной дорожки (цилиндра) на другую называется поиском, оно совершается 291
относительно медленно. Типичные диски имеют 40 или 80 дорожек на каждой стороне дискеты и по нескольку сот на каждой поверхности жесткого диска. Для хранения файлов на диске должна быть предусмотрена таблица содержимого диска. Она называется каталогом диска в ДОС. Необходимо предусмотреть также средства для слежения за изменениями занятости места на диске файлами, в ДОС это осуществляется с помощью таблицы размещения файлов (FAT — File Allocation Table). Первый сектор каждого диска предназначается для хранения начальной части программы загрузки операционной системы (’’раскручивающий” загрузчик). На каждом диске имеются секторы четырех типов: начальный загрузчик, таблица размещения файлов (FAT), каталог и область хранения данных( в которой находятся файлы). Внутренняя часть дискеты для записи данных сделана из гибкого материала, поэтому дискеты иногда по-старому называют флоппи- дисками (flop — шляпа с мягкими полями). Жесткий диск имеет одну или несколько жестких ’’тарелок” вместо гибкого пластмассового диска в дискете; жесткость диска позволяет делать высокоточную запись, благодаря этому получается более высокая плотность записи и большая информационная емкость. Фирма IBM называет жесткие диски в своих ПК фиксированными, все другие — жесткими дисками или жесткими файлами. Дискеты выпускаются двух размеров. Существуют дискеты диаметром три с половиной дюйма. Они достаточно малы и свободно умещаются в кармане, снаружи защищены жесткой пластмассовой оболочкой. Другой тип дискет более раннего выпуска имеет диаметр 5,25 дюйма размещаются в действительно гибком конверте. Самые старые дискеты диаметром 5,25 дюйма имели емкость 360 Кбайт. Дискеты с высокой плотностью записи такого же диаметра могут хранить до 1,2 Мбайт. Самые распространенные дискеты размером 3,5 дюйма имеют емкость 1,44 Мбайт, но бывают также с емкостью всего 720 Кбайт. Кроме стандартных жестких дисков и дискет встречаются также некоторые конструктивные варианты. В съемном жестком диске пакет дисков можно заменять как дискеты. В оптическом диске при¬ меняется компактный диск в сочетании с лазерным способом считывания-записи. Оптический диск с неизменяемой пользователем после записи на заводе информацией называется оптическим ПЗУ (постоянным запоминающим устройством). На некоторые оптичес¬ кие диски пользователь может однократно записать свои данные, но изменить их больше не сможет. Они называются дисками с одно¬ кратной записью и многократным считыванием. Оптический диск, на котором информация может многократно переписываться, назы¬ вается оптическим стираемым диском. Гибкие оптические диски имеют гораздо больший объем памяти, чем обычные. Они сочетают в себе традиционную технологию 292
магнитных дисков с метками на поверхности для позиционирования, нанесенными по оптической технологии. Виртуальный диск создается в оперативной памяти с помощью драйвера устройства для эмуляции настоящего диска. Они имеют высокую скорость работы, но не сохраняются при выключении питания компьютера. Виртуаль¬ ные диски называют также дисковыми ПЗУ или электронными дисками. Операционные системы Операционная система представляет собой программу, которая управляет работой компьютера и контролирует ее. Операционные системы имеют сложное устройство и состоят из нескольких частей. Одним из элементов операционной системы является ее базовая система ввода-вывода (BIOS — basic input-output system). BIOS (БСВВ) отвечает за организацию всех операций ввода-вывода низкого уровня, включая- преобразования программных логических записей в физические записи на внешних устройствах. На самом подробном уровне BIOS имеет процедуры, учитывающие особенности работы каждого внешнего устройства, они называются драйверами устройств или ’’обработчиками” для устройств. Обычно операционная система организована по уровням иерархии в соответствии с уровнями обслуживания. Находящиеся на самом нижнем уровне драйверы устройств освобождают операционную систему от технических подробностей обслуживания каждого устройства. На следующем уровне производится' связывание логических записей с физическими записями. На еще более высоком уровне обеспечивается обслуживание основных запросов, как, например, передача выходных данных из программы в файл. Кроме обслуживания внешних устройств и передачи данных операционная система должна следить за исполнением программ, включая их загрузку, перемещение (настройку внутренних адресов в соответствии с правильным положением программ в памяти) и выход из аварийных ситуаций с помощью обработчика ошибок. Другим элементом операционной системы является командный процессор, который принимает команды пользователя и обрабатывает их. Обычно команды доходят до какого-либо запроса на исполнение программы обслуживания. Многие думают, что командный процессор — это и есть операционная система. Командный процессор ДОС находится в файле, который называется COMMAND.COM. Программа, которая облегчает работу с ДОС с помощью специ¬ ального интерфейса, называется оболочкой. Оболочка находится между пользователем и операционной системой и служит для пользователя окнбм в мир компьютера. 293
Приложение Б ПРИМЕНЕНИЕ УТИЛИТЫ ОТЛАДЧИКА DEBUG В этом разделе мы углубимся в техническую часть ДОС. Предметом нашего рассмотрения будет инструментальная команда ДОС DEBUG. DEBUG представляет собой достаточно мощный инструмент программиста, не рассчитанный на обыкновенного пользователя ДОС. Однако эта программа может дать вам возможности, в которых вы нуждаетесь, и нужно, по крайней мере, знать, что можно делать с помощью этой программы. Данный раздел даст вам начальные сведения о программе DEBUG. Если вы не хотите узнать о подобных технических возможностях или они вам неинтересны, не чувствуйте себя обязанными читать данный материал внимательно. Итак, если вам это не нужно, то не насилуйте себя — материал адресован тем, кто хочет узнать все о ДОС. Утилита DEBUG работает почти так же, как имеющийся в ДОС редактор EDLIN, поэтому придется частично повториться, особенно знакомой вам покажется построчная структура команд. Фактически утилиты DEBUG и EDLIN используются одинаково, но с разными типами файлов. Редактор EDLIN используется для “просмотра и внесения изменений в исходные тексты программ, написанных кодами ASCII, в то время как утилита DEBUG применяется для просмотра и редактирования двоичных программных файлов (т.е. исполняемых файлов машинных инструкций (команд)). Утилита DEBUG имеется в виде программы DEBUG.COM, которая присутствует в каталоге DOS. Однако в связи с тем, что утилита DEBUG предназначена для профессиональных программистов, в фирменное руководство IBM по ДОС включено только ее краткое описание. Полное описание утилиты содержится в Техническом Справочном Руководстве, которое должно быть приобретено за отдельную плату. В противоположность этому фирма Microsoft включила описание утилиты DEBUG в общее руководство по операционной системе MS-DOS. Некоторые основы утилиты DEBUG Почти все в ДОС рассчитано на обыкновенного, как мы с вами, пользователя. Однако кое-что предназначено для использования квалифицированными специалистами, для которых я сделана программа DEBUG. Она дает возможность выполнения некоторых задач, которые невозможно сделать, не имея таких умных и сложных средств, как это. Чтобы грузовик выполнял свое предназначение, он должен быть таким же приятным и легким ,в управлении, как и легковой автомобиль. То же относится и к программе DEBUG. Утилита предназначена для выполнения технической работы, поэтому и применение ее имеет технический характер. Это не означает, что 294
она недоступна для нашего понимания, как вы сами сможете убедиться. Могу заверить вас, что на самом деле это наиболее сложная и техническая программа из всех составных частей ДОС. Особенности применения этой программы непосредственным образом связаны с особенностями конкретного микропроцессора, имеющегося в вашем компьютере. Мы будем иметь в виду при рассмотрении здесь микропроцессор Intel серии 86, которая применяется в ПК фирмы IBM. Большинство свойств утилиты DEBUG можно понять, имея хотя бы начальное представление об этом микропроцессоре, а для понимания некоторых из них требуются детальные знания о его работе. Шестнадцатеричная арифметика и программа DEBUG Первое, что мы должны знать о программе DEBUG, — все операции в ней выполняются в шестнадцатеричной арифметике. К сожалению, в ней даже не предусмотрена как необязательная возможность работы с десятичными числами, т.е. все действия требуют шестнадцатеричных чисел. Таблица Б.1 Шестнадцатеричные цифры и их эквиваленты Шестнадцатеричные Десятичный Двоичный цифры эквивалент эквивалент 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 А 10 1010 В 11 1011 С 12 1100 D 13 1101 Е 14 1110 F 15 1111 В шестнадцатеричной системе счисления в качестве основания используется число 16, а не 10, к которому мы привыкли. Все компьютеры работают с двоичными числами, поэтому в них необходимо вводить двоичные числа в той или иной форме. Шестнадцатеричное представление — это свернутая форма 295
представления двоичных чисел, где каждый шестнадцатеричный разряд представляет четверку двоичных разрядов (битов). В то время как в десятичной системе представления чисел используется 10 цифр от 0 до 9, в шестнадцатеричной арифметике используется 16 цифр, те же 10 от 0 до 9, за которыми следуют цифры от А (имеет значение 10) до F (со значением 15). В приведенной таблице можно быстро найти описание каждой из шестнадцатеричных цифр. Шестнадцатеричные числа интерпретиру¬ ются так же, как и десятичные, но с основанием 16, а не 10. Так, например, если мы интерпретируем десятичное число 12 как ’’один, умноженное на 10, плюс 2, что дает двенадцать”, то шестнадцате¬ ричное 12 следует понимать как ’’один, умноженное на 16, плюс 2, что дает восемнадцать”. Числа могут иметь длину до четырех шестнадцатеричных разрядов в диапазоне от 0 до FFFF, что эквивалентно десятичному числу 65535. Утилита DEBUG и память При использовании утилиты DEBUG приходится обращаться к ячейкам памяти, называемым адресами. Для компьютеров, подобных семейству IBM PC, выполненных на микропроцессорах серии Intel 8086, полная длина адреса равняется пяти шестнадцатеричным разрядам, но необходимо их представлять числами не длиннее четырех разрядов. Это досгигается/ использованием двух чисел для представления адреса. Первое число, которое называется сегментной частью, рассматривается так, как будто бы мы смещаемся на одну позицию в числе, что эквивалентно умножению его на 10. Второе число, которое называется смещением, или относительной частью, добавляется к значению сегмента (сдвинутого на одну позицию в сторону старших разрядов), при этом получается полное значение адреса. Это делается, как в данном примере: 1234 5678 179В8 При записи адреса обе его части разделяются двоеточием, например: 1234:5678 Адреса, выдаваемые программой DEBUG, всегда показываются именно в такой форме. Если вы вводите адреса в программу DEBUG, то можете напечатать их либо в указанном виде, либо вы можете опустить сегментную часть адреса с двоеточием и указать только величину относительного смещения. В этом случае 296
программа DEBUG будет принимать значение сегмента по умолчанию, которое будет равно значению первого свободного сегмента. Имеется другая возможность указания сегментной части адреса. г В микропроцессоре есть регистры, которые используются для хранения значений адресов памяти. Каждый из регистров имеет символьное имя, например, регистр CS — это имя регистра для хранения кода сегмента, обычно он и используется для хранения сегментной части адреса в самой программе (в противоположность данным программы). Вы можете воспользоваться любым символьным именем регистров, если вы их знаете и понимаете их работу. Имеется еще множество технических подробностей, в которые необходимо углубиться, но вместо того, чтобы излагать их здесь, мы будем рассматривать их по мере возникновения при рассмотрении команд, которые может выполнять программа DEBUG. Команды программы DEBUG Можно начать работу с программой DEBUG одним из двух способов. Можно ввести имя программы DEBUG, и она начнет работать, выдавая свое приглашение для ввода команды в виде черточки (-). Утилита DEBUG, как и EDLIN имеет свое приглашение, отличающееся от приглашения операционной системы. Если вы увидите приглашение-черточку, то знайте, что это пригла¬ шение программы DEBUG к вводу команды. Другой способ начать работу с программой DEBUG точно такой же, как начало работы с программой EDLIN. Вы должны задать имя файла после команды, например: DEBUG А.FILENAME.EXT (Имяфайла расширение) Если вы начинаете работу с утилитой DEBUG этим способом, то она сначала считает файл в память и вы сможете работать с данными этого файла. После того, как вы начали работать с утилитой DEBUG, вы должны также знать, как остановить ее. Прекратить работу программы DEBUG, позволяет команда Q (от Quit-прекратить). В ответ н& приглашение программы (черточку) вы должны напечатать Q, нажать клавишу ввода, и программа DEBUG прекратит работу. Как и в редакторе EDLIN, все команды программы DEBUG представляются однобуквенными аббревиатурами. Теперь первое, что вы, возможно захотите сделать с программой, это посмотреть информацию, находящуюся в некоторой части памяти. Просмотр информации производится по команде D (от Display — показать). Необходимо сообщить программе, что вы хотите просмотреть. Это всегда какая-то область памяти, и DEBUG 297
должен знать две вещи о том, что он должен представить: начиная с какого адреса и сколько ячеек памяти. Вы должны задать начальный адрес памяти (как было сказано в последнем параграфе), а что касается числа ячеек, то здесь возможны два способа сообщить это программе DEBUG. Если вы пропустите эту часть команды, то DEBUG представит стандартное число байт, 128. Если же вы зададите величину относительного смещения, то DEBUG представит информацию вплоть до указанного адреса. Можно указать число символов, которое нужно просмотреть, задавая команду L (от Length — длина), после которой указывается число байт обязательно ъ форме шестнадцатеричного числа. Приведем примеры всех трех способов задания команды D (показать): D F000.6000 показать, начиная с адреса 6000, число байт по умолчанию D F000:6000 6800 показать, начиная с одного адреса до другого D F000:6000 L 100 показать заданное явно число байт (100 шестнадцатетиричных) Все три способа задания области памяти называются заданием диапазона, задание диапазона используется в ряде других команд программы DEBUG, поэтому, когда мы говорим, что программа требует указать диапазон, то вы имеете возможность задать его одним из трех указанных способов. Для удобства команда D запоминает адрес последнего представленного байта, поэтому, вводя команду D без параметров, можно последовательно просматривать содержимое памяти, т.е. как^ бы перелистывать файл. (Далее мы подойдем к команде U, которая позволяет просматривать память другим способом, но пока сконцентрируем наше внимание на команде D.) По команде D содержимое памяти представляется одновременно в шестнадцатеричной форме и в символьном формате, так что можно прочитать его в любом виде. Вот типичный пример того, что выводится на дисплей по команде D: —к о о “Л О о о Е8 2D 10 А2 36 06 ЗС FF-75 0B BA 78 06 B4 09 CD о т— т— О U. о о т— 21 В4 4С CD 21 BE 80 00-80 3C 00 74 OF BE 82 00 1D0F:0120 80 24 DF 81 ЗС 44 0D 75-03 E9 B9 04 B8 09 35 CD о со т— О LL О О 1— 21 В8 85 01 89 1Е 81 01-8C 06 83 01 39 C3 74 35 О о “П О Jb О ВА 85 01 В8 09 25 CD 21-B8 28 35 CD 21 89 1E 37 1D0F:0150 06 8С 06 39 06 BA C8 01-B8 28 25 CD 21 B4 34 CD о <0 т— О LL О о г- 21 06 8F 06 31 06 53 8F-06 33 06 B8 8B 11 05 44 о о LL О О г- 01 8В D0 CD 27 BA 3B 06-B4 09 CD 21 E8 E1 02 CD 298
А вот пример, как, используя команду D, можно вывести дату записи встроенной в вашем компьютере программы ввода-вывода BIOS, если она имеет стандартную запись даты: D FFFF:6 L 8 Информация, выводимая по команде D или какой-либо другой команде, появляется только на экране компьютерного дисплея, впрочем вы можете сохранить ее в виде записи несколькими способами. Один из них — это использование кнопки распечатки экрана (PrtScr), о которой мы уже знаем. Другой способ состоит в перенаправлении выходной информации программы DEBUG, например в файл. Приведенные здесь примеры вывода информации из программы DEBUG были пересланы в файл с помощью перенаправления, а затем они были вставлены в текст данной главы. Кроме представления содержимого памяти, программа DEBUG позволяет также сравнивать содержимое двух областей памяти с помощью команды С (Compare — сравнить). Для своей работы команда С требует указания диапазона, т.е. начального адреса и длины первого участка памяти и начального адреса второго участка памяти. Программа DEBUG производит сравнение байт за байтом и выводит различия. Вот как выглядит команда С: С F000:1000 L 200 F000: 2000 Похожа на команду С команда перемещения информации в памяти М (от Move — переместить), которая копирует данные, взятые из одной части памяти, в другую часть. Как и команде С, команде М нужно указать диапазон, чтобы задать адрес, откуда начать копирование, и адрес, куда нужно переместить информацию. Например, следующая команда сделает перенос 1К байт из ПЗУ BIOS в ОЗУ : М F000:0 L 1000 100 Поскольку в программе DEBUG все действия производятся с шестнадцатеричными данными, полезно было бы иметь какие-либо средства для облегчения перевода чисел. К сожалению, в программе DEBUG не предусмотрено никаких мер для перевода между десятичной и шестнадцатеричной системами, так что эта задача предоставлена на усмотрение программиста, который может воспользоваться карманным калькулятором или программой на языке Бейсик (удобном для таких преобразований). Если преобразование в программе DEBUG чисел между десятичной и шестнадцатеричной системами не предусмотрено, то средства сложения и вычитания шестнадцатеричных чисел в виде команды Н (Hexarithmetic — шестнадцатеричная арифметику) в ней имеются. 299
Для использования команды Н, надо напечатать Н, а после нее два шестнадцатеричных числа. По команде Н будут выведены сумма и разность двух введенных чисел. Эта команда является полезным средством для шестнадцатетиричного сложения и вычитания, что оказывается нужным при работе с адресами. Например, команда Н 1234 ABCD в результате покажет ВЕ01 6667 Возможно, с помощью программы DEBUG вы пожелаете внести изменения в информацию, находящуюся в памяти. DEBUG предос¬ тавляет для этого две возможности с помощью команд Е (Enter — ввести) и F (Fill — заполнить). Начнем с команды Е. Команда Е (Enter) позволяет производить непосредственные изменения в памяти. Можно применять ее двумя разными способа¬ ми: либо прямо вводить данные, либо, прежде чем изменить данные, предварительно их просматривать. Применяя первый способ, команду записывают следующим обра¬ зом: Е адрес список_данных По команде список данных вводится в память, начиная с указанного адреса, и ввод продолжается до тех пор, пока не исчерпается весь список. Для того чтобы вам было удобно, список может состоять как из символов, так и шестнадцатеричных чисел. Если вы вводите алфавитно-цифровые символы, то их нужно заключать с двух сторон в кавычки, чтобы отличать от шестнадцате¬ ричных чисел. Например, Е 0F32:100 25 "If you figure it out you re" 63 6C 65 76 65 72 * Другой способ использования команды Е — интерактивный, при котором DEBUG сначала показывает старое содержимое каждого байта памяти, прежде чем вы его измените. Это очень важно и полезно, так как обеспечивает защиту от ч изменения данных в неправильно выбранной области памяти. Один из случаев, когда вы можете использовать команду Е в таком виде, — это частичное исправление программы ("наложение заплатки”) согласно поступив¬ шей от разработчика информации. ’’Заплатки” чаще всего делают с помощью интерактивного использования команды Е, так что вы * Перевод текста: ’'Если вы ;уго поняли, то вы — умница”. Последнее слово (clever умница) вводится шестнадцатетиричными кодами символов ASCII. — Прим. перев. 300
можете подтвердить, что вы изменяете именно то, что вам предлагается, а не что-либо другое. Интерактивная форма команды Е вызывается указанием после нее адреса, а не списка данных для записи. После этого команда Е выведет только в шестнадцатеричном виде содержимое по указанному адресу и будет ожидать ввода вами нового значения, также шестнадцатеричного. Вы можете ввести новое значение или просто нажать клавишу пробела, чтобы оставить старое значение. Программа DEBUG продолжит работу, показывая байт за байтом, до тех пор, пока вы не прекратите процесс, нажав клавишу ввода. Вы можете подтвердить вводимые изменения двумя способами. Можно сделать это либо после ввода изменений, пользуясь командой D для просмотра измененного места, либо на текущем месте, пользуясь еще одной возможностью команды Е, дефисом. Если вы работаете с командой Е в интерактивном режиме, то при вводе дефиса вы вернетесь на один байт назад (так же, как нажатие пробела вызывает продвижение на один байт вперед). Это облегчает возможность возврата и подтверждения сделанных вами изменений. Для изменения содержимого памяти может быть также использо¬ вана команда F (от Fill — заполнить). Команда F представляет собой автоматический вариант команды Е, но для нее должен быть указан диапазон адресов, а не единственный адрес: F диапазон список_ данных Причина состоит в том, что команда F будет копировать список данных столько раз, сколько потребуется для заполнения указанного диапазона адресов. Список данных может быть произвольного содержания и длйны, но чаще всего эту команду используют для заполнения определенной области памяти одинаковыми байтами, например нулями. Если вам не требуется записывать что-либо в память, а наоборот, нужно искать в ней определенные данные, то вы сможете сделать это, пользуясь командой S (от Search — искать). Для команды S требуются такие же параметры, как и для команды F: диапазон (определяющий, в какой области памяти нужно искать) и список данных, либо в шестнадцатеричном виде, либо в форме строки символов. Команда S сообщает адреса начала тех областей памяти, в которых будет обнаружен набор данных, совпадающий с заданным для поиска списком данных. Если вы пользуетесь программой DEBUG для ’’влезания” в программы и ’’наложения заплаток” (два наиболее популярные применения утилиты DEBUG), то, несомнен¬ но, команда S предназначена для вас. 301
Программа DEBUG и регистры Помимо основной памяти в вашем компьютере также есть регистры, которые он использует для хранения адресов и промежу¬ точных результатов арифметических операций. В программе DEBUG имеется команда R (от Register — регистр), позволяющая просматривать и изменять значения регистров. Если вы введете одну команду R, то программа DEBUG покажет содержимое всех регистров компьютера и некоторую относящуюся к ним информацию. Если ввести после команды R имя определенного регистра, то DEBUG выведет его содержимое и даст вам возможность ввести в него новое значение таким же образом, как и при интерактивном режиме ‘для команды Е. Для успешного применения этой команды вы должны отчетливо представлять себе, как DEBUG использует регистры при своей работе. Вот пример вывода программой DEBUG содержимого регистров, как вы видите на экране : AX*0000 BX=0000 CX=0000 DX-0000 SP=FFEE BP=0000 S1=0000 D1=0000 DS*4531 ES=4531 SS=4531 CS=4531 IP=0100 NV UP El PL NZ NA P0 NC 4531:0100 0A496E OR CL.9BX+DI+6E:OS:006E=20 Программа DEBUG и порты Одним из путей, по которому ваш компьютер общается с различными частями и с внешним миром, является элемент, называющийся портом. Порты представляют собой пути, выходящие из микропроцессора и входящие в него, причем каждый порт может пропускать. через себя либо входные, либо выходные данные. Каждый порт имеет свой адрес, по которому порт идентифицируется, который походит на адрес памяти, но сильно от него отличается. Может быть большое разнообразие портов и в вашем компьютере, некоторые из них используются для специфических целей. Вообще говоря, вы должны хорошо знать, как работает ’’начинка” компьютера, чтобы понимать работу портов и использовать их. Если вы достаточно знаете о портах вашего компьютера, DEBUG позволит вам передавать данные через них с помощью двух команд: I (от In — вход) считывает данные из порта и показывает их; О (от Out — выход) посылает данные из порта. Команды используются следующим образом: I адрес_порта 0 адрес_порта данные 302
Программа DEBUG и диски В то время как DEBUG дает вам средства для представления на экране и изменения данных в памяти, вашей настоящей задачей является просмотр и изменение того, что хранится на дисках. DEBUG позволяет вам считывать данные с диска в память и записывать их из памяти на диск. Для этого используются команды L ( от Load — загрузить) и W ( от Write — записать). Команды L и W работают двумя разными способами. Они могут считывать и записывать как файлы целиком, так и отдельные части файлов. Сначала рассмотрим операции с целым файлом. Считывание с диска и запись данных на диск Как вы помните из начала данного приложения, когда вы начинаете работу с утилитой DEBUG, вы можете просто вызвать ее по имени или указать имя файла, который она автоматически загрузит в память машины. Если вы произвели изменения в памяти, то каким образом вы можете записать их обратно на диск? Команда W без параметров записывает копию содержимого памяти обратно на диск, замещая исходную копию файла на диске. Обратите внимание, что когда DEBUG выполняет команду W, то она ожидает, что в регистрах ВХ и СХ находится число байт, которое нужно записать на диск. В каждом из этих регистров может находиться до четырех шестнадцатеричных цифр. Комбинация регистров ВХ+СХ рассматривается как один длинный восьмиразряд¬ ный шестнадцатеричный регистр. В регистре ВХ находится левая часть числа, в СХ — правая часть числа. При начале работы программы эти регистры соответствующим образом установлены. Но они могут измениться, если вы пользуетесь командами G (от Go — запустить) и Т (от Trace — проследовать до данной точки). Если это произошло, то вы должны восстановить значения в регистрах ВХ и СХ, прежде, чем воспользуетесь командой записи W. Целесообразно списать первоначальные значения ВХ и СХ сразу после загрузки файла. Значения регистров вы можете вывести при помощи команды R (регистр). Предположим, что вы хотите теперь считать в память другой файл. Как вы можете сделать это? Как ни странно, с помощью двух команд. Первой командой N (от Name — имя) программе сообщается DEBUG имя файла, который должен быть считан, и второй командой L без параметров (так же, как запись файла производится командой W без параметров). Например, для считывания файла вы должны сделать что-нибудь вроде: N А:FILENAME.EXT L (имя_файла.расширение) 303
и тогда файл будет считан в память так же, как если бы вы ввели имя файла при вызове программы DEBUG. Считывание данных с диска Команды L и W в "голом” виде используются для считывания и записи файлов целиком, но существует еще другая форма этих команд, позволяющая считывать с диска отдельные части данных. В этом случае вы указываете адрес памяти, куда вы собираетесь считать данные и из какой части диска вы хотите считать. Команда выглядит следующим образом: L адрес номер_привода номер_сектора число секторов Адрес — это положение элемента памяти, куда направляются данные. Номер привода — это номер, эквивалентный буквенному Обозначению, которое используется ДОС для идентификации дисковых устройств, причем 0 соответствует дисководу А, 1 — В и т.д. Номер сектора указывает, какая часть диска должна быть считана, соответствующее значение номера сектора зависит от вашего конкретного компьютера, конкретного формата диска и версии ДОС. Число секторов указывает количество единиц информации на диске, выраженное в секторах, которое должно быть считано в память. Запись в определенные позиции производится по команде W с такими же параметрами, как в команде L. Утилита DEBUG и другие программы Все, что до сих пор обсуждалось, отнбсилось к работе с абстрактными данными. Но DEBUG имеет также ряд интересных возможностей для работы с программами. С помощью команды D вы могли просматривать данные и в шестнадцатеричном и в символьном виде. Это прекрасно, если вы действительно представляете данные, но очень мало дает, если информация представляет собой часть программы. Чтобы перевести сырую (raw) программу в более удобный для восприятия вид, в программе DEBUG имеется команда U (от Unassemble — дизассемблировать). Команда U транслирует шестнадцатеричные коды машинных команд в команды языка ассемблера. Рядовые пользователи не смогут воспринимать полученный текст, однако те пользователи, которые, хотя бы и с затруднениями, разбираются в программах на языке ассемблера, сумеют расшифровать частично или полностью 304
работу программы. Привожу реальный пример дизассемблирования, произведенного на моем компьютере : F600:0000 E98F7E JMP 7Е92 F600:0003 Е8А76В CALL 6BAD F600:0006 СВ RETF Выведенный текст, как видите, состоит из адресов памяти, данных в шестнадцатеричном представлении, и эквивалентных кодов ассемблерных команд, например ”JMP” h”CALL”. Формат ассемблерных команд не строго следует правилам составления программы на ассемблере, но очень близок к нему. Debug имеет также команду, обратную по отношению к U, — это команда А (от Assemble — ассемблировать). Команда А позволяет вам вводить подобные ассемблерным инструкции типа ”JMP 7Е92” и транслировать их на машинный язык и заносить в память. Если командой U может пользоваться любой, а некоторые будут успешно понимать результат ее работы, то пользоваться столь же успешно командой А смогут только те, кто свободно владеет ассемблером. Пользоваться командой А в программе DEBUG значительно сложнее, чем писать обычные ассемблерные программы, поскольку ассемблер дает вам больше подсказок и помощи, чем может дать DEBUG. Поэтому команда А предназначается только для настоящих специалистов. Имеются еще две команды, которые ориентированы на работу с программами. Обе они относятся к сложным, и ими смогут воспользоваться только профессиональные программисты на ассемблере. Даже в этом случае две эти команды используются в исключительных ситуациях, когда проблемы программирования не могут быть решены более обычными способами. Данные команды называются Т и G. Команда Т используется для исполнения программы в пошаговом режиме. После помещения программы в память команда Т будет исполнять программу по одной команде за раз, показывая состояние компьютера, отображаемое его регистрами. Команде Т можно дать указание останавливаться после выполнения одной инструкции или останавливать работу после исполнения нескольких инструкций, показывая результат на каждом шаге. Чаще всего команда Т используется, когда программист не уверен в правильном результате некоторых инструкций или на небольшом участке программы. Команда Т очень трудоемкая, чтобы быть эффективным средством для обширной проверки программы. Команда G также запускает исполнение программы, но не прослеживает результаты. Команда G будет выполнять программу со скоростью работы программы DEBUG. Для команды G можно указать места в программе, которые называются точками прерывания, где DEBUG должна остановиться после исполнения 1 1 Зак 1807 305
программы. Существует различие при самостоятельном исполнении программы и при исполнении ее под управлением программы DEBUG. Если вы установили точки прерывания, то можно запустить программу и остановить ее для проверки результатов, когда она дойдет до интересной или важной точки. Это было краткое и не очень детальное изложение основных возможностей программы DEBUG. В следующем разделе мы рассмотрим, как можно делать "заплатки” в программе, т.е. как вносить в них изменения. Применение утилиты DEBUG для внесения изменений в программы Как бы иначе вы ни использовали программу DEBUG, существует одно применение, в котором нуждается каждый: это внесение исправлений или так называемое наложение "заплаток" в программе. Различают два вида исправления программы, которые можно производить при помощи утилиты DEBUG. Один из них состоит в мелких изменениях шестнадцатеричных кодов, чтобы исправить программу или изменить некоторые ее рабочие характеристики (свойства). Так, например, в некоторых редакторах и текстовых процессорах производятся исправления, чтобы приспособить их для определенных целей. Когда вы занимаетесь этой работой, вы должны тщательно следовать подробным указаниям, какие необходимо сделать изменения. Иное дело, когда вы производите изменения по собственной инициативе. При этом вам не обязательно знать тонкости программы, которую вы изменяете. Как прабило, вы собираетесь изменить что-то более очевидное и простое, чем код программы. Одним из примеров такого рода изменений может служить изменение текста сообщения, выдаваемого программой. Пример изменения программы Чтобы проиллюстрировать, как это делается, приведем типичный пример. Предположим, что у вас есть программа с именем SUPER и вы считаете, что она и в самом деле превосходна во всех отношениях, кроме одного: она запрашивает данные с диск& В, а вам бы хотелось, чтобы можно было пользоваться любым дисководом, в качестве которого по умолчанию ДОС использует текущий. Если вы сумеете так изменить программу SUPER, чтобы в ней не было явного указания дисковода, тогда вы сможете записывать данные из программы SUPER и на жесткий диск р на электронный диск, фактически на любой диск, а не только В, который запрашивается программой. Вот что вам следует попытаться сделать, чтобы изменить SUPER. Вы не знаете заранее, будет ли это работать, —• метод этот экспериментальный, однако есть большая вероятность, что вы добьетесь успеха и не испортите программу. Сначала найдите программу SUPER. Она должна быть записана в файле с именем SUPER.COM или SUPER.EXE. Если эта программа написана на Бейсике, то ее файл 306
будет иметь имя SUPER.BAS. Каково бы ни было ее имя, найдите ее и скопируйте на отдельный диск (чтобы вы могли с полной безопасностью изменять ее, не изменяя основной копии). Запишите при этом длину исходного файла программы. Далее нужно обратить внимание на следующую деталь. Если файл программы имеет расширение EXE, тогда DEBUG может обращаться с ним по-особому, разрешая пользоваться командами Т и G. Но это не желательно по техническим причинам. Прежде всего потому, что, имея файл с расширением EXE, вы не хотели бы, чтобы об этом стало известно программе DEBUG. Если файл имеет расширение EXE, вы можете выйти из положения, воспользовавшись командой операционной системы RENAME для изменения типа расширения на другой. Пусть файл SUPER имеет расширение ЕХЕ, и тогда вы изменяете его расширение с помощью команды: REN SUPER.ЕХЕ SUPER.XXX После этого вы запускаете программу DEBUG, чтобы загрузить фа^л программы. Для этого нужно ввести: DEBUG SUPER.XXX Теперь DEBUG имеет копию программы SUPER в памяти. Вы догадываетесь, что в теле программы существует конкретное обращение к дисководу В в форме В:. Поэтому вы собираетесь запросить DEBUG поискать это обращение. Чтобы воспользоваться командой поиска, вы должны сообщить отладчику длину поиска, которая равна длине файла SUPER.XXX. Если вы можете перевести десятичное число в шестнадцатеричное, то сделайте это. Если не можете, задайте отладчику поиск на максимально возможную длину. Вот как это можно сделать с помощью команды S: SOL FFFF "В:" Рассмотрим последовательно, что вы задали сделать отладчику. Команда S подразумевает поиск вообще. Число 0 указывает начало поиска с начала рабочей области памяти. Буква L говорит о том, что нужно произвести поиск на некоторую длину. Число FFFF определяет, что поиск должен продолжаться на максимально возможную длину. (Если вы знаете точную длину файла в шестнадцатеричном коде, то можете заменить ею число FFFF.) Последняя часть команды, выражение в скобках, указывает отладчику дать спецификацию привода В:. В ответ на эту команду отладчик сообщит адрес, по которому он обнаружил В:. Если же он не сообщит никакого адреса, вам не повезло, нужно выходить из программы. Однако более вероятно, что отладчик укажет один или даже несколько адресов. Теперь, если хотите, вы можете просмотреть данные, находящиеся после указанных адресов. Если отладчик выдает адрес 04EF:0220, то нужно ввести команду D, чтобы просмотреть информацию в памяти, начиная с этого адреса: О 04EF:0220 пользуясь адресом, который был обнаружен командой поиска S. 11* 307
Если вы выведете эту информацию, то можете увидеть только В:, но более вероятно, что можно будет увидеть полное имя файла, начинающееся с В:. Вот примерно что будет выведено: 04EF: 0220 42 ЗВ 46 49 4С 45 4Е 41-40 45 32 32 32 32 32 32 В: FILENAME Комбинация В: с именем файла — это свидетельство того, что вы нашли то, что искали. Теперь ваша цель — удалить часть В:. Можно использовать для этого команду Е, чтобы занести в эту часть пробелы следующим образом: Е 04EF:0220 " " Этот процесс нужно повторить для каждого адреса, по которому команда поиска обнаружила В:. После того как это будет сделано вам нужно записать файл обратно на диск командой W. Теперь у вас есть модифицированная программа, подготовленная для опробования. Если вы изменяли название программы EXE, то теперь ей нужно вернуть старое имя с помощью команды RENAME: RENAME SUPER.XXX SUPER.EXE После этого программа подготовлена к тому, чтобы посмотреть, как она будет работать. Для безопасности сделайте копии данных, с которыми работает программа SUPER, на тот случай, если модифицированная версия поведет себя неправильно. Вы будете работать с одной из копий ваших данных, зная, что если программа будет работать неверно, то у вас останется другая неповрежденная копия. Затем вы попробуете запустить программу SUPER, чтобы проверить, как она будет обращаться к файлам, не находящимся на диске В, а на других дисководах, к которым ДОС обращается по умолчанию. Если испытание пройдет успешно, вы можете в дальнейшем пользоваться модифицированной программой с обычными данными. Такими же приемами можно воспользоваться для поиска и изменения сообщений, выдаваемых программами. Мне представляются два разумных соображения для подобных изменений. Первое — заменить сообщение, которое выдает ДОС, названием своего учреждения, и если у вас есть такое желание, то вы должны найти сообщение ДОС в файле COMMAND.COM. Вторая разумная цель —• перевод сообщений программы с английского языка на другой. Какими бы ни были ваши соображения, вы можете воспользоваться изложенными здесь приемами, чтобы внести изменения в разумных пределах. Даже если у вас. нет никакой практической необходимости менять что-либо в программах, вам стоит попробовать так поработать просто для того, чтобы приобрести навыки, которые смогут вам пригодиться. Внесение изменений в программы представляет собой, однако, потенциально опасный процесс, так как вы рискуете "прикончить" программу, сделав ее совершенно неработоспособной: либо по своей вине, либо из-за каких-либо программных трюков. Вы должны быть очень осторожны, когда проводите изменения в программе. Обычно же те приемы, которые были описаны, работают надежно и пользоваться ими просто. Вам должно быть также известно, что в некоторых программных продуктах имеющиеся программы недопустимо дизассемблировать и вносить в них правки. 308
Чтобы убедиться в этом, вы должны просмотреть распространяемые с ними лицензионные соглашения. Например, фирма IBM разрешает вносить изменения в ДОС (и поэтому в OS/2) только для собственного употребления любым пользователем. Другие поставщики программного обеспечения не столь великодушны. Практически вам не грозят никакие неприятности, если вы делаете какие-либо модификации только для себя. Но если вы изменяете коммерческий продукт и затем начинаете его распространение другим пользователям, то вы нарушаете закон. А здравый смысл подскажет вам, что незаконным и невежливым было бы "вымарывание” надписей авторского права. Работа с расширенной памятью Начиная с версии 4.0, ДОС обеспечивает поддержку расширенной памяти. В программе отладчика имеются четыре команды, начинаю¬ щиеся с буквы X, которые позволяют работать с расширенной памя¬ тью. Ввиду сложности детали работы с расширенной памятью здесь не приводятся. Для справки укажем названия команд и их функции: ХА размещает указываемое число страниц расширенной памяти на рабочем устройстве ; XD освобождает рабочее устройство от размещенных ранее страниц расширенной памяти ; ХМ переносит карту размещения логической страницы памяти с рабочего устройства в расширенную память ; XS выводит информацию о статусе расширенной памяти . Коды ошибок программы DEBUG В отладчике предусмотрено некоторое число сообщений об ошиб¬ ках, многие из которых легко понять. Однако четыре сообщения вы¬ даются в виде двухбуквенного кода, и предполагается, что вы дол¬ жны быть с ними знакомы. Приводим эти сообщения и их значение: Таблица Б.2. Сообщения об ошибках программы DEBUG КОД ЗНАЧЕНИЕ BE Неверный флаг. Вы хотели изменить флаг, но напечатали невозможное для него значение ВР Чересчур много точек останов^. Вы задали число точек останова больше допустимого значения 10 в команде G( пуск). BR Неверный регистр. Вы пользуетесь командой R (регистр) с неверным именем регистра. 0F Дублирование флага. В команде RF (регистрация флага) вы напечатали два значения вместо одного 309
Приложение В СПРАВОЧНЫЕ СВЕДЕНИЯ О КОМАНДАХ ДОС Здесь приводятся справочные сведения о командах ДОС и командах, используемых для конфигурирования системы в файле CONFIG.SYS. Чтобы не увязнуть в трудных для восприятия обозначениях синтаксиса команд, приведенных в вашем руководстве по ДОС, я их упростил. Обязательная часть каждой команды напечатана заглавным шрифтом, другие части команды необязательны (опции). При обращении с файлами желательно указывать полную подробную спецификацю, обязательным является имя файла (с расширяющими символами * и ? или без них). Кроме того, в спецификацию могут входить необязательные части: спецификация маршрута для поиска и расширения. Под маршрутом понимается спецификация пути доступа, включая необязательное название дисковода. Сокращения d: и е: означают названия соответствующих дисководов. Подобные аббревиатуры будут появляться по мере изложения. Команды ДОС APPEND задает список каталогов, в которых ДОС будет искать неисполняемые файлы. APPEND задает пути доступа ASSIGN Перенаправление действий с одного дисковода надругой. Например, если программа настаивает на работе с дискетами А: и В:, то командой ASSIGN можно перенаправить ее действие на жесткий диск С: ASSIGN d=e где d и е — это буквенные обозначения дисководов; в одной команде можно задать несколько команд "равенства", команда без присвоений отменяет ранее заданные перенаправления. Когда программа запрашивает диск d, ДОС перенаправляет ее действия на диск е. ATTRIB управляет установкой атрибутов файлов "только для чтения" и "не архивный". ATTRIB параметры_установки файлы Параметры установки атрибутов — это +R или -R, +А или -А соответственно для того, чтобы установить (+) или отменить (-) атрибут "только для чтения" (R) и "не архивный" (А). Если никакие параметры не заданы, команда выводит список файлов с указанием текущих значений их атрибутов. BACKUP делает резервную копию файлов с одного диска на другой (обычно на несколько дискет). BACKUP файлы дисковод: параметры_режимов Эта команда копирует "файлы" на устройство "дисковод:". Параметры режимов: /S — задает копирование из подкаталогов; /М — задает копирование модифицированных (архивных) файлов; /А — дописывает на диск-копию новые файлы, без этого параметра записывает поверх существующих записей; /D.MM-ДД- ГГ — записывает только те файлы, которые имеют дату создания не раньше указан¬ ной даты. Копирование делается особым образом, вследствие чего, между прочим, можно копировать файлы, превышающие размерами объем дискет, на которые производится копирование. Копии, полученные при помощи программы BACKUP, 310
перед использованием должны быть восстановлены в первоначальный вид при помощи команды RESTORE. BREAK устанавливает режим проверки операционной системой нажатия комбинации клавиш Control-Break. BREAK ON или OFF Установка BREAK ON позволяет операционной системе реагировать на клавишу прерывания при разнообразных ситуациях. CALL команда вызова другого командного файла, когда вызывающий командный файл не закончился. По окончании оаботы второго командного файла первый продолжает работу с того места, откуда был сделан вызов. CALL имя_командного_файла СНСР выбирает кодовую страницу для национальной языковой поддержки. CHCP CHDIR изменяет рабочий каталог на диске. CHDIR пути Команда CHDIR может быть сокращена до CD. Изменяет текущий каталог на указанный в качестве параметра путь поиска, а если параметр не указан, то выводит текущий путь. CHKDSK анализирует диск, чтобы проверить правильность логической организации каталогов и таблицы размещения файлов. Сообщает о результатах проверки и фиксирует некоторые ошибки CHKDSK файлы параметры режимов Если указаны файлы, то CHKDSK сообщит результат проверки обозначенных файлов. Параметры: /F — задает режим фиксации всех обнаруженных ошибок; /V — задает вывод всех файлов. Скрытые файлы можно включить в список файлов только в режиме /V. CLS Очистка всего экрана. CLS COMMAND запускает вторую копию процессора команд; чаще всего применяется для исполнения вложенных командных файлов. COMMAND пути параметры режимов Если задан параметр "пути1*, то процессор команд будет найден по этому пути. Параметры этой команды: <\>С-сфока — запускает процессор команд для выполнения команды, указанной С-строкой (обычно командный файл), а затем прекращает операцию, возвращая управление основному процессору команд; /Р - задает процессору команд резидентный режим; и /Е: размер — задает размер окружения. СОМР производит сравнение двух групп файлов. СОМР файлы_1 файлы_2 Сравниваются две группы файлов. Если какая-либо группа не указана, команда запросит спецификацию; "фаилы_2” -это обычно либо название диска, либо путь поиска, по которому нужно проверить наличие файлов, совпадающих с первым списком. COPY копирует файлы на диске с одного места на другое. СОРУ режимы_1 файлы_1 режимы_2 файлы_2 Параметры режимов могут быть: /А — для копирования файлов в виде текстовых файлов ASCII или /В — для копирования двоичных файлов; /V — задает проверку скопированного файла. Несколько файлов можно скопировать, объединив в один, если в списке "файлы_1 ” между именами файлов вставить знак +. 311
С TTY позволяет использовать в качестве управляющей консоли (клавиатура и экранный дисплей) другое устройство (обычно линию связи СОМ1). СТТУ устройство Устройством может быть СОМ1, или COM2, или CON, чтобы возвратить управление консоли. DATE устанавливает и показывает текущую дату. DATE части_даты Если "части_даты" не указаны, ДОС запрашивает их ввод. Формат представления даты зависит от страны, для которой производилась установка ДОС. Для США дата вводится в формате: 12-31-87 или 12/31/87. DEBUG запускает программу интерактивного отладчика ДОС. О подробностях можно узнать в гл.24. DEBUG файл параметры DEL стирает файлы с диска. DEL файлы Если указаны все файлы, программа будет останавливаться для получения подтверждения. Команда ERASE является синонимом команды DEL. DIR выводит названия файлов в каталоге. DIR файлы параметры_режимов Параметр /Р задает останов вывода списка файлов, когда будет заполнен весь экран; /W — задает режим вывода в широком формате только названий файлов без их размеров и дат. DISKCOMP производит сравнение двух дискет на полную идентичность. DISKCOMP d: е: На обеих дискетах может быть совершенно одинаковая информация, но DISKCOMP не признает их идентичными, если данные будут записаны в разных местах. DISKCOPY копирует дискеты целиком. DISKCOPY d: е: Команда DISKCOPY делает точную копию дискеты, повторяя не только содержимое, но также и расположение файлов. DOSSHELL запускает оболочку ДОС. DOSSHELL ECHO управляет выводом сообщений об исполняемых командах при выполнении командных файлов. ECHO ON или OFF или сообщение Режим OFF подавляет последующий вывод на экран команд или сообщений до конца командного файла; режим ON возобновляет вывод; "сообщение” выдает сообщение, даже если командой ECHO задан режим OFF. EDLIN запускает интерактивный редактор ДОС. Подробнее см. в гл. 18. EDLIN файлы параметры_режимов ERASE стирает файлы с диска. ERASE файлы Если указаны все файлы, программа будет останавливаться для получения подтверждения. Команда ERASE является синонимом команды DEL. 312
EXIT прекращает работу второго процессора команд и возвращает управление первому. Применяется для исполнения вложенных командных файлов. EXIT FASTOPEN дает ДОС указание занести в память информацию, необходимую для доступа к диску. Тем самым достигается более быстрое выполнениё операций ввода и вывода с диском. FASTOPEN d: Для этой команды требуются другие параметры, касающиеся технической стороны. Подробности вы можете узнать из вашего руководства по ДОС. PC производит сравнение двух’ групп файлов и выводит на дисплей различия между ними. FC файлы_1 файлы_2 параметры режимов Эта команда присутствует только в MS-DOS, а в PC-DOS ее нет. Для управления сравнением предусмотрено множество различных параметров. Как правило, они вам не потребуются. Подробности вы можете узнать из вашего руководства по ДОС. FDISK запускает программу для создания/изменения разделов на диске в режиме диалога. FDISK FIND пропускает любую строку ввода в файле, если в ней не встречается заданная подстрока текста. FIND параметры_режимов "подстрока” файль* Используются параметры: /V (Vice-versa — наоборот) — задает режим вывода на экран строк файла, если в ней не встречается заданная лодстрока текста; /С — задает счет числа совпадений с заданной подстрокой во всем файле; /N — задает вывод номера строки, в которой встречается заданная подстрока текста. Подстрока должна быть заключена в двойные кавычки. Если программа FIND используется не в конвейерном режиме, то параметр "файлы” позволяет задать поиск в совокупности файлов (т.е. для поиска может быть указан не один файл, а список файлов). FOR задает повтор исполнения команды для каждого файла, указанного в спецификации. FOR переменная IN (набор) DO команда где "команда” — это любая команда ДОС, которая будет повторно выполняться индивидуально с каждым файлом из "набора”; в команде в качестве параметра может быть переменная. Переменная — это формальное имя в виде "%%х” (где х — любые символы), используемое для замены имени файла на новое имя из "набора”; для прямой команды используется один символ %, %% используется для указания на часть командного файла, "набор” — перечень спецификаций файлов. FORMAT подготавливает диск для работы в ДОС. FORMAT d' параметры режимов Параметры режимов: /S~ — дает возможность использовать диск как системный; /В — задает резервирование места на диске для системных файлов, но не копирует эти файлы; /1 — задает форматирование дискеты с одной стороны; /8 — задает фор¬ матирование диска с восемью секторами на дорожке; /4 — задает форматирование диска с низкой плотностью записи на дисководе для дискет с большой емкостью. GOTO применяется в командных файлах для организации циклов и переходов на метки. GOTO метка Выполнение командного файла продолжается со строки, в которой найдена указанная метка. Строка с меткой должна начинаться с двоеточия, после которого помещается имя метки. 313
GRAPHICS позволяет вывести на принтер копию с экрана, при работе с адаптером CGA (Color Graphics Adapter — адаптер графического цветного дисплея). GRAPHICS принтер параметрырежимов Эта команда работает только с некоторыми типами принтеров, совместимых (или полностью эквивалентных) с принтерами фирмы IBM и только с адаптером CGA. Допустимые параметры: COLOR1, COLOR4, COLORS, COMPACT и GRAPHICS. Параметр /R задает режим печати без реверсирования черного и белого цвета, а /В — задает печать цвета фона (только для цветного принтера). Широкого применения эта команда не имеет. IF позволяет в командном файле выполнять команды при соблюдении некоторых условий. IF NOT условие команда Условие — это результат одной из трех проверок: ERRORLEVEL номер (который имеет значение истины, если предыдущая программа завершилась с кодом результата большим или равным указанному числу); строка_1—чггрока_2 (который имеет значение истины, если строки, которые обычно включают параметры одного из командных файлов, совпадают); EXIST файлы (который имеет значение истины, если существуют указанные файлы). Необязательная часть NOT изменяет результат проверки на обратный. В параметре "команда" может быть задана любая команда, чаще всего это команда GOTO. JOIN — заменяет имя диска именем подкаталога другого диска. Противоположна по смыслу другой команде ДОС SUBST. JOIN d: путь_лоиска параметры_режимов Доступ к диску d: осуществляется через спецификацию пути поиска на другом дисководе — как будто бы этот диск становится подкаталогом. Указанный ”путь_поиска" не должен содержать никаких файлов или других подкаталогов, т.е. должен быть подключен к корневому каталогу. Параметр /D отменяет текущее присоединение. Без указания параметров команда JOIN показывает, какие присоединения существуют в данный момент. KEYB определяет, какой тип клавиатуры вы хотите использовать. Подробности вы можете узнать из вашего руководства по ДОС. LABEL позволяет наносить, изменять или уничтожать метку тома на дисках. LABEL d: метка На диске d: записывается метка; если она не указана, то команда попросит ее ввести в командной строке ввода. МЕМ выводит на экран текущее состояние (статус) размещения памяти. МЕМ параметрырежимов MKDIR создает новый подкаталог. MKDIR пути Допускается сокращенная форма команды MD. MODE управляет различными характеристиками оборудования. MODE LPTn:ширина.высота,Р MODE режим_Экрана.L R.Т MODE СОМп:бод,четность.битов_данных,стоповых^битов MODE LPTn:*COMn MODE CON: COLS=XX LINES-YY 314
MOOE CON: RATE-XX DELAY-Y MODE /STATUS В гл. 19 вы сможете найти все сложные подробности использования этой команды. MORE выводит на экран информацию до его заполнения, затем останавливает вывод. MORE Команда MORE была введена для конвейерной обработки команд, но ее можно также использовать вместо TYPE для вывода файлов на экран с паузой, применяя для этого команду перенаправления вывода. PATH определяет список подкаталогов, в которых ДОС будет вести поиск командных файлов. PATH пути При перечислении путей в качестве разделителя используется точка с запятой. PAUSE делает временную остановку при выполнении командных файлов. PAUSE сообщение Приостанавливает выполнение командного файла до тех пор, пока не будет нажата любая клавиша. Чтобы прекратить исполнение, после паузы, можно воспользоваться клавишей Break. PRINT запускает программу печати файлов в фоновом режиме, оставляя компьютер свободным для выполнения другой работы. PRINT файлы параметры_режимов Параметр "файлы** указывает файлы, которые нужно напечатать. Параметры режимов задают технические подробности, относящиеся к принтеру: /0:устроиство — указывает, на какой принтер выводить информацию; /В:размер_буфера — задает величину рабочего буфера; /и:число — время ожидания программы; /М:число — задает интервал времени для обслуживания принтера в режиме разделения времени; /фчисло — число файлов, находящихся одновременно в очереди на печать; /Т — служит для прекращения дальнейшей печати; /С — служит для удаления из очереди указанных файлов; /Р — задает печать только указанных файлов (нужен только в сочетании с параметром /С). PROMPT устанавливает вид приглашения ДОС. PROMPT конанда_установки Подробности применения команды смотрите в гл.11. Команда PROMPT без параметров устанавливает вид приглашения по умолчанию. Я рекомендую такую команду установки: $P$G. RECOVER либо удаляет часть файла, которую невозможно считать, либо восстанавливает формальный каталог всего диска. RECOVER файлы RECOVER d: Если задана спецификация файла, то команда удаляет внутри файла все, что невозможно прочесть. Если не задана спецификация файла, то команда стирает файловую структуру каталога и создает новый формальный каталог диска, основываясь на таблице размещения файлов FAT. Обратите внимание, что первая форма команды сравнительно безвредная, в то время как вторая может испортить весь диск из за потери названий всех файлов. REM вводит комментарии в файлах пакетной обработки. REM комментарий RENAME изменяет имя одного файла или группы файлов. RENAME файлы_1 файлы_2 315
Другое имя этой команды — REN. REPLACE копирует файлы с одного диска на другой, либо заменяя все файлы с совпадающими именами, либо добавляя несуществующие на диске копии. REPLACE файлы пути_поиска лараметры_режимов Параметр "файлы" задает список файлов, подлежащих копированию. Параметр ”пути_поиска" задает место, где нужно искать совпадающие по имени файлы. Параметры режимов: /А — задает режим добавления несуществующих на выходном диске файлов; /S — служит для замены всех совпадающих файлов во всех подкаталогах; /R — дает разрешение на замещение файлов с атрибутом "только для считывания**; /W — задает режим ожидания после считывания для возможности замены дискеты перед записью; и /Р — задает режим копирования с подтверждением на копирования каждого файла. RESTORE восстанавливает файлы, скопированные командой BACKUP. RESTORE d файлы параметры_режимов Операция копирует с дисковода d: в каталог, заданный именем "файлы”. Используются параметры: /S — для восстановления подкаталогов, находящихся ниже каталога "файлы" и /Р -для приостановки операции перед замещением файлов с атрибутом только для считывания** или файлов с более поздней датой создания. Ооратите внимание, что копия, сделанная командой BACKUP, содержит управляющую информацию и поэтому не может быть использована без восстановления ее командой RESTORE. RMDIR удаляет подкаталог. RMDIR путь_поиска Другая форма команды — RD. Каталог не может быть удален, если в нем содержатся файлы или другие подкаталоги, не может быть также удален корневой каталог. SELECT устанавливает ДОС с указанным драйвером клавиатуры, настроенным на определенную страну, и кодом страны для учета национальных особенностей изображения времени и даты. SELECT d: епути номер_страны код_клавиатуры Необязательное имя первого дисковода d: — это дискета, с которой нужно копировать; е: — диск, на который нужно записать копию (может быть указано также имя каталога). Номер страны — это численный код (смотрите объяснение команды COUNTRY) и код клавиатуры — код, который используется в команде KEYBxx. SET устанавливает переменную окружения ДОС, которая используется в различных программах для управления. SET имя=значение Это равенство помещается в область памяти, где хранятся переменные окружения, которые может анализировать любая программа. Если никакого значения не задано, то переменная "имя" обнуляется (удаляется из окружения). SHARE устанавливает средства поддержки для совместного использования файлов в сети. SHARE параметры_режимов Параметры: /Р:размер — определяет размер области памяти для записи числа файлов, доступных для совместного использования, и /L:число — максимальное число замков при совместном использовании файлов. SHIFT используется в командных файлах для сдвига параметров и организации перебора. SHIFT Параметры командных файлов сдвигаются таким образом, что бывший вторым становится первым, третий —• вторым и т. д. 316
SORT сортирует строки из входного потока. SORT параметры_режимов Параметры: /R — задает сортировку в обратном алфавитном порядке (Z..A); /+п — при сортировке не учитываются первые п-1 позиций в строках, а начинается с п-й позиции. Команда SORT предназначена в основном для использования в конвейерных операциях, однако, применяя перенаправление ввода и вывода, ее удобно использовать для сортировки текстовых файлов. SUBST писваивает каталогу имя отдельного диска. Противоположна по смыслу команде JOIN. SUBST d: пути режим В результате исполнения этой команды доступ к каталогу "пути" можно осуществить по имени дисковода d:. Параметр /D отменяет ранее сделанное присвоение. Команда без параметров выводит список всех действующих присвоений. SYS копирует два скрытых файла, которые образуют ядро ДОС, на другой диск. SYS d: Два скрытых файла обычно называются IBMDOS.COM и IBMBIO.COM, но возможны и другие имена на других компьютерах. Эта команда обычно используется для обновления версии ДОС на диске либо для переноса операционной системы на диск, сформатированный в режиме /В. TIME устанавливает и показывает текущее время. TIME время Если не указано "время”, то ДОС попросит его ввести. TREE показывает дерево каталога диска. TREE d: параметр_режима С параметром /F команда выводит все файлы по всем каталогам. TYPE копирует файл на экран дисплея. TYPE файлы VER показывает номер версии ДОС. VER VERIFY устанавливает и отменяет режим проверки при записи на диск. VERIFY ON или OFF VOL сообщает информацию о метке диска (тома). VOL d: Команда LABEL позволяет наносить, изменять или уничтожать метку тома на дисках. XCOPY копирует группы файлов, включая подкаталоги. XCOPY файлы_1 файлы_2 параметры_режима В первой спецификации "файлы_1" должно быть указано, по крайней мере, имя диска, пути или части имени (Ьайла. Параметры в этой команде имеют существенное значение. Их назначение: /S — задает копирование всех файлов из всех подкаталогов; /А — задает копирование только архивных файлов, без изменения бита; /М — копирует только архивные файлы с установкой бита; /Е *— задает ко¬ пирование, включая пустые каталоги; /0:дата — задает копирование файлов с текущей датой или с более поздней датой, чем указанная; /V — для включения проверки с копированных файлов; /Р — задает копирование с остановками для получения подтверждения на копирование следующего файла; /W — с остановкой для замены исходного диска на диск, куда производится копирование. 317
Команды для конфигурирования системы, используемые в командном файле CONFIG.SYS ANSI.SYS Драйвер устройства, позволяющий расширить возможности вывода информации на экран дисплея и клавиатуры, пользуясь набооом команд, определенных Национальным Институтом Стандартов США (ANSI). Он управляет форматом вывода информации на экран независимо от типа оборудования и, кроме того, позволяет переопределять назначение клавиш, в частности вводить с помощью одной клавиши цепочки символов, "макросы”. DEVICE=ANSI.SYS BREAK устанавливает по умолчанию проверку нажатия клавиши Break (может быть изменено по команде ДОС BREAK ). BREAK=ON или OFF BUFFERS устанавливает число буферов диска, которыми может пользоваться ДОС. BUFFERS=n Если не включать эту команду, то число буферов диска равно 2 или 3 по умолчанию. Я вам рекомендую установить намного больше, например 32 для большого диска. COUNTRY устанавливает код страны, которым задается форма представления времени и даты и другие особенности данной страны. C0UNTRY=HOMep DEVICE используется для загрузки драйверов устройств в ДОС; имеющиеся драйверы устройств включают в себя ANSI.SYS, DRIVER.SYS и VDISK.SYS, DISPLAY.SYS, IBMCACHE.SYS, PRINTER.SYS, RAMDRIVE.SYS, SMARTDRIVE.SYS, XMAEM.SYS и XMA2EMS.SYS. 0Е\/1СЕ=файлы параметры У каждого драйвера имеются свои параметры. Чтобы узнать подробности, просмотрите гл.24 и ваше руководство по ДОС;. DISPLAY.SYS драйвер устройства, который позволяет установить кодовую страницу в вашем дисплее. DEVICE=DISPLAY.SYS параметры Параметры зависят от типа дисплея и кодовой страницы, которую вы хотите установить. Обычно эта команда генерируется автоматически при установке ДОС. Подробности посмотрите в вашем руководстве по ДОС. DRIVER.SYS драйвер устройства, позволяющий присвоить новое логическое буквенное обозначение любому дисководу для дискет в вашей системе. DEVICE=DRIVER.SYS параметры_режима Параметры режима: /0:число — задает номер физического устройстваО -128 для дискет и 129-255 для жестких дисков); /S:4ncno —* задает число секторов на дорожке; /Н:число — задает число головок, приходящихся на цилиндр; /Т:число — задает число дорожек; /С — обозначает, что дисковод должен почувствовать замену дискеты в дисководе; /N — для указания с незаменяемым носителем информации; /Р:тип — для задания типа фактора формы. FCBS устанавливает максимальное число блоков управления файлами ;ГСВ), которое может быть одновременно в работе. РСВ5=максимум,минимум Параметр "максимум” определяет максимальное число одновременно открытых блоков FCB, параметр "минимум” задает минимальное число блоков FCB, которое защищено от возможности их закрытия, когда ДОС нуждается в освобождении нескольких блоков FCB. 318
Замечание. Блоки управления файлами (FCB) использовались в более старых версиях ДОС. Об этом будет сказано в следующей рубрике FILES. FILES определяет максимальное число одновременно открытых файлов с современной логической организацией (обработчики файлов). FILES=4Hcno Число может быть задано в диапазоне 8 — 255; по умолчанию 8. Предел не зависит от числа блоков управления файлов FCB. IBMCACHE.SYS создает кеш для диска. DEVICE*IBHCACHE.SVS параметры Предназначен только для системы PS/2. Этот драйвер поставляется на эталонной дискете PS/2. Для установки драйвера в систему вы должны загрузить эту дискету и вызвать программу. INSTALL производит установку в память некоторых резидентных программ. INSTALL файлы параметры Спецификация файла должна указывать на один из следующих файлов: FASTOPEN, KEYB, NLSFUNCT, SHARE. Параметры задаются в соответствии с устанавливаемой программой. LASTDRIVE определяет максимальное число логических дисков, которое может быть установлено в системе. LASTDRIVE=d Команда задает с помощью последней буквы обозначения диска, а не числа, количество логических дисков, которое можно использовать в системе. Команда используется для того, чтобы преодолеть предел, установленный числом физических устройств и включать в систему новые устройства, не только дисковые. Дополнительные логические устройства требуются для таких команд, как SUBST. PRINTER.SYS драйвер устройства, который позволяет установить кодовую страницу в вашем принтере. DEVICE=PRINTER.SYS параметры Параметры зависят от типа принтера и кодовой страницы, которую вы хотите установить. Обычно эта команда генерируется автоматически при установке ДОС. Подробности посмотрите в вашем руководстве по ДОС. RAMDRIVE.SYS драйвер устройства, который позволяет создать виртуальный диск. Представляет собой версию VDISK.SYS в операционной системе MS-DOS. Параметры такие же, как для драйвера VDISK, за исключением того, что для размещения драйвера в расширенной памяти нужно использовать параметр режима /А вместо /X. REM вводит комментарии в файле CONFIG.SYS. SHELL определяет имя и указывает имя каталога, в котором находится файл принятого по умолчанию процессора команд. SHELLsфaйлы параметры режима Обычно процессор команд ДОС находится в корневом каталоге загружаемого диска и называется COMMAND.COM. Эта команда допускает использование процессора команд с любым другим именем или находящегося в другом каталоге. Кроме того, она позволяет передать в процессор команд некоторые управляющие параметры и параметры режимов работы до того, как он начнет работать. Для стандартного процессора команд COMMAND.COM определены два переключателя режима: /Ё:размер — задает размер окружения (измеряемый в некоторых версиях ДОС в байтах, а в других — в 16-байтовых параграфах) и /Р, который заставляет COMMAND.COM выполнить командный файл AUTOEXEC.BAT. 319
SMARTDRIVE.SYS драйвер устройства, который позволяет создать кеш для диска. DEVICE=SMARTDRIVE SYS размер режим Этот драйвер входит только в MS-DOS и соответствует драйверу IBMCACHE.SYS в операционной системе OS/2. Размер — это объем области памяти в килобайтах, который вы хотите выделить для кеша. Переключатель режима /А направляет кеш в область расширенной памяти. STACKS увеличивает размер системного стека Для аппаратных прерываний, принятый по умолчанию. STACKS параметры Эта команда предназначена только для самых опытных пользователей. Подробности посмотрите в вашем руководстве по ДОС. SWITCHES позволяет клавиатуре нового типа работать так же, как старой. SWITCHES /К Используйте эту команду только в том случае, если у вас имеются программы, которые могут работать только с клавиатурой старого типа. Единственный параметр /К является обязательным. VDISK.SYS драйвер устройства, позволяющий создать виртуальный диск как в обычной, так и в расширенной памяти. DEVICEsVDISK.SYS параметры параметррежима Параметры — это три числа, которым могут предшествовать буквенные пояснения, означающие размер диска в Кб, размер сектора (эмулируемого) в байтах и число файлов в корневом каталоге виртуального диска. Параметр режима /Е:число — задает размещение виртуального диска в расширенной памяти и число секторов, которое будет передаваться между обычной и расширенной памятью. XMAEM.SYS драйвер устройства, позволяющий эмулировать адаптер расширенной памяти. DEVICE.=XMAEH SYS параметры Этот драйвер поставляется только в составе операционной системы IBM PC-DOS для компьютеров типа PS/2 с процессором на микросхемах типа 386 и 486. Драйвер использует увеличенную память для эмуляции адаптера расширенной памяти фирмы IBM. Эта команда обычно вставляется в Файл конфигурации при установке ДОС. Параметры этой команды сложные. Подробности посмотрите в вашем руководстве по ДОС. XMA2EMS.SYS драйвер устройства, обеспечивающий поддержку расширенной памяти, организованной по стандарту EMS 4.0. DEVICE=XMA2EMS SYS параметры Этот драйвер поставляется только в составе операционной системы IBM PC-DOS для компьютеров IBM с процессором на микросхемах типа 286,386 и 486. Драйвер преобразует расширенную память в соответствии со спецификацией EMS 4.0. Чтобы использовать этот драйвер, вы должны иметь либо компьютер типа PS/2 с процессором на микросхемах типа 286 и адаптером расширенной памяти IBM 80286 Expanded Memory Adaptor /А, либо компьютер типа PS/2 с процессором на микросхемах типа 386 и 486 и драйвер XMAEM.SYS. Эта команда обычно вставляется в файл конфигурации при установке ДОС. Параметры данной команды сложные. Подробности посмотрите в вашем руководстве по ДОС. 320
ОГЛАВЛЕНИЕ Предисловие 5 Введение 7 Если вам понадобится помощь 7 Различия в ДОС 8 ДОС и ваш ПК 9 Глава 1. Компьютер. Основные понятия 10 Компьютер — исполнитель заданий 10 Части коипьютера 11 Память 11 Дисковая память 13 Периферия 14 Программное обеспечение 15 Знакомство с ДОС 15 Компьютер за работой 16 Что может и чего не может компьютер 16 Значение операционной системы 18 Глава 2К Начало работы с ДОС 20 Установка ДОС 20 Что необходимо знать в первую очередь 20 Задание команды ДОС 23 Обретение чувства защищенности 24 Форматирование 25 Глава 3. Дискеты 26 Дискеты 26 Подготовка дискет для использование — форматирование 27 Глава 4. Жесткие диски 32 Жесткие диски 32 Емкость жесткого диска 33 Создание разделов жесткого диска 34 Форматирование жесткого диска 37 Другие типы дисков 40 Глава 5. Установка ДОС 44 Составные части ДОС 44 Установка ДОС 45 Глава 6. Основы команд ДОС 48 Контроль за дисководами 48 Встроенные и внешние команды 50 Общие правила написания команд 52 Задание переключателей 54 Обобщающие символы 56 Глава 7. Элементарные команды 57 Три простые команды 57 Команды, связанные с календарем 60 Глава 8. Основные файловые команды 62 Копирование файлов 62 Стирание файлов командами DEL и ERASE 64 Переименование файлов командой REN 66 Просмотр файлов командой TYPE 67 Сравнение копий файлов 67 321
Глава 9. Основные дисковые команды 70 Проверка дисков 70 Команда CHKDSK 74 Имя тома для обозначения диска 76 Команды подготовки дискет 79 Копирование и сравнение дисков 81 Глава 10. Основы командных файлов 84 Знакомство с командными файлами 84 Первые две команды — REM и PAUSE 89 Как сделать командные файлы более привлекательными 91 Как скрыть команды командного файла 94 Слегка усложненная пакетная обработка 96 Другие свойства пакетной обработки 96 Глава 11. Еще о командных файлах 98 Усложненные команды 98 Вложение командных файлов с помощью команды CALL 104 Предложения и примеры хитростей командных файлов 105 Глава 12. Загрузка с AUTOEXEC 111 Для чего нужен файл AUTOEXEC.BAT и где его использовать 111 Использование AUTOEXEC.BAT 112 Конструирование вашего файла AUTOEXEC.BAT 116 Настройка вашего файла AUTOEXEC.BAT 118 Глава 13. Диски 119 Что находится на диске 119 Все об именах файлов 121 Важность расширений имен файлов 123 Обобщающие символы и их использование 126 Форматы дисковых файлов и что они для вас значат 128 Рискованное восстановление файлов программой RECOVER 132 Глава 14. Установка жесткого диска 133 Скорость вычислений 133 Временные испытания 134 Емкость диска 135 Организация жесткого диска 136 Ключевые команды для жесткого диска 137 Защита ваших данных 138 Восстановление данных на жестком диске 141 Сохранение больших сйстем 141 Глава 15. Работа с подкаталогами 142 Каталоги с древовидной структурой 142 Когда вам нужен подкаталог? 144 Маршруты к каталогу 145 Создание каталогов командой MKDIR 146 Смена каталога командой CHDIR 148 Поиск ветвлений командой TREE 149 Приемы указания маршрута 150 Маршруты, программы и данные 152 Команда PROMPT 153 Глава 16. Организация жесткого диска 155 Зачем организовывать жесткий диск 155 Рекомендации по организации структуры дерева 156 Куда поместить программы 157 Куда помещать файлы данных 161 Общая стратегия организации жесткого диска 164 Установка системы более чем для одного пользователя 167 Как организовывать жесткий диск 172 322
Глава 17. Команды повышенного уровня для работы с дисками 173 Двойная проверка дисковых операций — команда VERIFY 173 "Маскировка” диска 174 Использование команд ASSIGN, SUBST и JOIN 179 Особые способы копирования 179 Глава 18. Трюки с конвейеризацией 183 Знакомство с перенаправлением 183 Программы фильтрации в ДОС 189 Использование SORT, MORE и FIND 192 Глава 19. Специальные команды 193 Управление внешними устройствами с помощью команды MODE 193 Управление прерыванием программы командой BREAK 199 Дистанционное управление при помощи команды CITY 201 Передача информации через команду SET 202 Глава 20. Резидентные программы ДОС 205 Резидентные программы и что они делают 205 Фоновая печать 206 Помощь при распечатке экрана 209 Управление распределенными* данными 210 Повышение скорости работы с диском. Команда FASTOPEN 211 Глава 21. ДОС и национальные особенности 212 Средства поддержки национальных языков 212 Как установить средства поддержки национальных языков 213 Кодовые страницы 213 Команды запуска средств поддержки национальных языков 214 Команды модификации средств поддержки национальных языков 215 Глава 22. Клавиши для редактирования в ДОС 216 Подготовка базы клавиш для редактирования 216 Как работают клавиши для редактирования 218 Другие специальные клавиши 224 Глава 23. Простой редакпюр EDLIN (построчный редактор) 228 Текстовые файлы в кодах ASCII 228 Программы редактирования 229 Как работает редактор EDLIN 229 Начало работы с программой редактора EDLIN 231 Завершение работы с редактором EDL1N 233 Использование команд редактора EDLIN 234 В каких случаях нужно пользоваться редактором EDLIN 243 Команды редактора EDLIN улучшенного типа 243 Глава 24. Файл конфигурации системы 246 Файл конфигурации системы 246 Команды конфигурирования 247 Другие команды файла конфигурации CONFIG.SYS 250 Драйверы устройств 252 Поддержка расширенной памяти — драйверы XMAEM.SYS и XMA2EMS.SYS255 Автоматическая установка программ — команда INSTALL 257 Сводный перечень команд конфигурации и драйверов устройств 257 Глава 25. Дополнительная (extended) и расширенная (expanded) память.. 260 В чем состоит проблема 260 Решение проблемы./. 262 Глава 26. Оболочки 265 Оболочка DOS Shell 265 Глава 27. Как не попасть в ловушку 270 Разрушительные прерывания 270 Обычные способы потери информации 272 323
Глава 28. Как избежать других ошибок 277 Ошибки, связанные с оборудованием 277 Ошибки, связанные с выбором программного обеспечения 279 Ошибки, в использовании компьютера 280 Приложение А. Словарь понятий, встречающихся в книге 282 Числа и их представление 282 Основы устройства компьютеров 284 Программы и языки программирования 289 О распределении обязанностей 290 Организация данных 291 Терминология диска 291 Операционные системы 293 Приложение Б. Применение утилиты отладчика DEBUG 294 Некоторые основы утилиты DEBUG 294 Утилита DEBUG и память 296 Команды программы DEBUG 297 Программа DEBUG'и регистры 302 Программа DEBUG и порты 302 Программа DEBUG и диски 303 Утилита DEBUG и другие программы 304 Применение утилиты DEBUG для внесения изменений в программы 306 Работа с расширенной памятью 309 Коды ошибок программы DEBUG 309 Приложение В. Справочные сведения о командах ДОС 310 Команды ДОС 310 Команда для конфигурирования системы, используемые в командном файле CONFIG.SYS 318 Оглавление 321
Справочное издание Нортон Питер Справочное руководство по MS-DOS Справочник Заведующий редакцией Ю.Г. Ивашов Редактор Л.Ю. Камочкина Художественный редактор В.И. Мусиенко Обложка художника В.Д. Лыськова Технический редактор Л.А. Горшкова Корректор Г.Г. Казакова ИБ №2412 Подписано в печать с оригинал-макета 09.04.92 Формат 60 X 88/16 Бумага офсетная №2 Гарнитура литературная Печать офсетная Усл.печл. 20,58 Усл.кр.-отт. 20,83 Уч.изд.-л. 19.69 Тираж 50 000 экз. Изд № 23431 Зак.тип. N9 1507. С-078 Издательство "Радио и связь". 101000 Москва, Почтамт, а/я 693 Московская типография N? 4 Министерства печати и информации РФ. Москва, И-41, Б Переяславская, 46
Книжные магазины — опорные пункты издательства ’’Радио и связь 111024, Москва, шоссе Энтузиастов, 24/43, магазин №15 197198, Санкт-Петербург ПС, Большой пр., 34, магазин №55 700070, Ташкент, ул.Шота Руставели, 43, магазин №21 226050, Рига, бул. Падомью, 17, магазин ’’Гайсма” 634032, Томск, ул.Нахимова, 15/1, магазин №2 503000, Нижний Новгород, пр.Гагарина, 110, магазин №9 630091, Новосибирск, Красный пр., 60, магазин №7 ’’Техническая книга” 443090, Самара, ул.Советской Армии, 124, магазин №16 ’’Техническая книга” 173016, Новгород, Ленинградская ул., 13, магазин №2 ’’Прометей” ВНИМАНИЮ ЧИТАТЕЛЕЙ! В издательстве "Радио и связь” в 1992 году для специалистов в области управления, информационных систем и вычислительной техники выйдут в свет следующие книги : Келли М., Спайс Н. Язык программирования Форт. Пер. с англ. В книге американских авторов описаны основные версии языка Форт, включая стандарты 1978 и 1983 гг., а также версия MMSFORTH для IBM PC. Рассмотрены процедуры для работы с файлами и последовательностями символов, техника расширения списка стандартных операторов. Показана возможность включения программ, написанных на языке ассемблера. При¬ ведено большое число примеров, представляющих практический интерес. Для широкого круга программистов.
Верма П. Коммутационные сети ЭВМ. Оценка функционирования. Пер. с англ. В книге американского автора рассматриваются вопросы оценки функционирования сетей ЭВМ с пакетной коммутацией. Описаны примеры построения современных сетей, изложены методики оценки среды и процессов передачи данных, приведены модели для выбора типа сети. Для инженерно-технических работников. Джамп Д. AutoCAD. Программирование. Пер. с англ. В книге американского автора описывается система авто¬ матизированного проектирования AutoCAD, позволяющая син¬ тезировать двух- и трехмерные изображения на экране дисплея, редактировать их, получать копии в виде чертежей. Рассмотрены особенности реализации системы на компьютерах различных типов. Для разработчиков графических систем, пользователей системы AutoCAD. Хаусли Т. Системы передачи и телеобработки данных. Пер. с англ. Книга известного американского автора посвящена актуальным вопросам проектирования сетей передачи данных для терри¬ ториально распределенных систем телеобработки и сетей ЭВМ. Рассмотрена передача данных по аналоговым (в основном телефонным) и цифровым каналам, сети связи с интегральным обслуживанием, рекомендации МККТТ, относящиеся к про¬ цедурам доступа в сети коммутации пакетов. Для инженерно-технических работников, связанных с разработ¬ кой сетей передачи данных.
лтот\т Акционерное общество "Диалог-МИФИ" предлагает пройти курс обучения работе на компьютерах IBM PC в Учебном центре, имеющем сертификаты фирм: BORLAND, SYMANTEC и AUTODESK Обучение проводится по следующим направлениям: - работа на персональных компьютерах IBM PC; - языки программирования; - работа с новейшими программными продуктами (электронными таблицами, базами данных, текстовыми редакторами и др.) Прошедшим обучение выдается сертификат международного образца от имени соответствующей фирмы. Учебный центр организует: - обучение на предприятиях; - прием экзаменов для подтверждения квалификации. А/О "Диалог-МИФИ"- дистрибутор крупнейших фирм США: Borland и Symantek - осуществляет продажу новейших программных продуктов этих и других фирм. ($тю rnwm Адрес: 115409 Москва, ул.Москворечье, 31, корп. 2. Телефоны: учебный отдел - 324-83-56,320-30-88 коммерческий отдел - 320-32-11,320-43-66 Факс: (095)3243055
А/О “Интерквадро” предлагает Вам сотрудничество Американская корпорация BORLAND твердо удерживает лидирующие позиции на мировом рынке программного обеспечения. Недавнее присоединение компании Ashton-Tate укрепило положение корпорации. Базы данных, компиляторы, электронные таблицы и прочие средства фирмы BORLAND Вы можете приобрести сегодня за рубли! Компиляторы А/О "Интерквадро" поставляет: Turbo C++, Borland C++, Borland C++& Application Frameworks, Turbo C++-for Windows, Turbo Pascal, Turbo Pascal for Windows Базы данных и окружение Paradox, Paradox Engine, Paradox Lan Pack, Paradox SQL Link, dBASE, dBASE Lan Pack, dBASE Developer Edition Электронные Quaftro Pro, таблицы и Sidekick, «»ХегРированные Object Vision, пакеты Framework Для использования в учебных целях возможно приобретение пакетов Lab Pack (компиляторы, базы данных, электронная таблица Quattro Pro), позволяющих оснастить программами от пяти до десяти машин. Лицензионные пакеты программ содержат полную документацию, обеспечиваются технической поддержкой наших специалистов, Вы сможете посещать регулярные научно- практические семинары, проводимые совместно с Ассоциацией групп пользователей BORLAND. С покупкой программного обеспечения наше сотрудничество только начинается! Дилерская сеть А/О "Интерквадро" позволит Вам сэкономить время и получить программный продукт в Вашем регионе Телефоны А/О "Интерквадро”: 150-92-01 (доб. 115) - группа технической поддержки 150-92-01 (доб. 110) - коммерческий отдел, работа с дилерами 248-30-96 - оформление счетов и выдача продукции
Руководители предприятий, банков, бирж, работники финансовых управлений, бухгалтеры ! А/О “Интерквадро” предлагает оснастить Ваши производства передовой информационной технологией на базе устройств Minitel, подключаемых к телефонной сети, работающих в стандарте Videotex и современными Западными программными продуктами - много¬ язычной и поливалютной бухгалтерии, управления коммерческой деятельностью и др., адаптированными к условиям России. Мы предлагаем двухнедельные курсы в Париже по обучению анализу хозяйственной деятельности предприятий всех форм собственности, Западным системам управления коммерческой деятельностью предприятий, проведению банковских операций. Обучение проводится на русском языке. За Вами - принять решение, за нами - оформить документы, обеспечить проживание в 3-х звездном отеле, питание и культурную программу. Телефон: 150 92 01 Телекс: 413560 Телетайп: 207321 Факс: 943 00 59 ИНТЕРКВАДРО
УСПЕШНАЯ ДЕЯТЕЛЬНОСТЬ НА МИРОВОМ .РЫНКЕ НЕВОЗМОЖНА ВЕЗ ИНФОРМАЦИИ И СВЯЗИ Фирмой «ОКТОПУС-ВАРИОЛАЙН» (Германия) предлагается [ СИСТЕМА ИНФОРМАЦИИ И СВЯЗИ ^ [ S Е D А В Через терминал, который будет установлен непосредственно у Вас на предприятии, Вы сможете: * получить подробную информацию о более чем 100.000 предприятий, расположенных на территории бывшего СССР, и ведущих стран Запада, предлагающих оборудование, товары и услуги; • вести поиск фирм-производителей по более чем 40.000 наименований товаров и услуг (кодировка наименований на основе Гармонизированной системы); * получить активные курсы валют и котировки на крупнейших товарных биржах мира; * иметь доступ к информационной бирже товаров и неликвидов на внутреннем и внешнем рынках; ♦ вводить в систему SEDAB собственные коммерческие предложения; • установить прямую связь с любой фирмой мира, используя современные виды связи, такие как международный телекс, телефакс, телетайп и электронная почта. Участниками системы SEDAB могут стать любые предприятия и организации, которые имеют автоматическую телефонную связь с Москвой. Заинтересованные предприятия и организации просим обращаться по адресу: Фирма «Октопус-Вариолайн» телекс: Отдел SEDAB телефаксы; Москва 109202 телетайп: шоссе Фрезер, 17 телефоны; 413600 > 274-0057, 170-4550 611211 адамит 170-4681, 170-4101 ПОСЕТИТЕ НАШ ТЕХНИЧЕСКИЙ ТОРГОВЫЙ ЦЕНТР! остфрцс;
«РАДИО И СВЯЗЬ»