Что называется атрибутами файла в dos

Обновлено: 06.07.2024

Атрибуты файлов – это специальные системные метаданные, которые описывают свойства конкретного файла или целой папки. Часто под атрибутами подразумевают также некоторые дополнительные параметры, вроде, даты создания файла, или специализированную метаинформацию о конкретных типах данных (например, EXIF для изображений или ID3-теги для музыки). [Источник 1]

Содержание

Описание

Атрибут файла — это некая метка (или флаг), которая сообщает операционной системе о существовании особых правил для работы с конкретным файлом.

Место хранения атрибутов файлов

Место хранения атрибутов в частном случае зависит от реализации конкретной файловой системы. В качестве примера можно привести файловую систему Ext4 в силу ее популярности в ОС Linux. Как и во многих других файловых системах семейства UNIX\*Nix в Ext4 есть понятие inode (айнод). Изначальное название — index node — индексная точка/вершина. Inode — это специальная структура данных в файловой системе, которая хранит определенную информацию об объектах файловой системы — стандартных файлах, каталогах и т.д. Айноды хранятся в таблице айнодов, для которой файловая система выделяет необходимое количество блоков. Под определенной информацией подразумеваются отметки времени доступа, флаги, расширенные атрибуты, карты блоков данных и др. В официальной документации по ext4 те атрибуты, о которых идет речь в этой заметке, называются флагами (flags). Не стоит путать с расширенными атрибутами (extended attributes) — это несколько иная сущность.

Виды функций атрибутов (флагов)

Если обратится к man chattr то можно увидеть почти полный список атрибутов (флагов):

  • A — не обновлять время доступа к объекту. Теоретически установка этого атрибута должна повысить производительность файловой системы при работе с файлом (если не используются опции монтирования noatime, nodiaratime )
  • а — указывает, что в файл можно добавлять информацию, но нельзя удалять. Может быть установлен только суперпользователем.
  • d — указывает на то, что не нужно делать резервные копии файла. Файл будет проигнорирован командой dump.
  • i — указывает на то, что файл нельзя удалять и модифицировать, так же нельзя создать ссылку на файл. Может быть установлен только суперпользователем.
  • s — указывает, что при удалении файла место где был размещен файл будет перезаписано нулями. Для невозможности восстановления после удаления.
  • u — указывает на то, что при удалении файла его нужно куда-то сохранить. Наоборот, чтоб гарантировать возможность восстановления после удаления.
  • c — указывает на то, что файл сжат. Перед записью в этот файл ядро сжимает данные, а чтение соответственно возвращает разархивированные данные.

Сжатие данных

Атрибут «c» существует для того,чтобы указывать пользователю,что файл сжат. Теоретически кроме экономии дискового пространства выгодой от использования этого флага может быть и ускорение дисковых операций (зависит от алгоритма сжатия). Данный атрибут, к сожалению, не работает в ext4, так как данная ФС не поддерживает механизм сжатия. Но зато работает в новой файловой системе BTRFS, где на данный момент реализованы целых два алгоритма сжатия — LZO, и ZLIB. Как раз с алгоритмом LZO разработчикам удалось добиться увеличения производительности дисковых операций за счет того, что файлы стали занимать меньше места, соответственно времени на их запись и считывание нужно меньше, а операции сжатия и распаковки занимают совсем немного процессорного времени. К сожалению, от выборочного использования этого флага эффекта будет немного — так же как и с атрибутом «A» — для достижения максимального эффекта лучше будет использовать опцию монтирования, чтоб поведение опции было глобальным для всех файлов. [Источник 2]

Виды атрибутов для Windows

В Windows существует несколько атрибутов файлов, в том числе:

  • Атрибут архивного файла.
  • Атрибут каталога.
  • Скрытый атрибут файла.
  • Атрибут файла только для чтения.
  • Атрибут системного файла.
  • Атрибут метки тома

Для Windows с NTFS

  • Атрибут сжатого файла.
  • Шифрованный атрибут файла.
  • Индексированный атрибут файла.

Редкие атрибуты

Вот несколько дополнительных, хотя и более редких, атрибутов файлов, распознаваемых Windows:

  • Атрибут файла устройства.
  • Атрибут файла целостности.
  • Не индексированный атрибут файла содержимого.
  • Нет атрибута файла scrub.
  • Автономный атрибут файла.
  • Атрибут разреженного файла.
  • Атрибут временного файла.
  • Атрибут виртуального файла.

Атрибуты для Linux

В Linux каждый файл имеет свойство, характеризующее владельца файла. Управление доступом к файлам осуществляется с помощью атрибутов – специальных характеристик, имеющихся у каждого файла. Всего существует 12 характеристик. Девять из них можно разделить на три класса:

  • Разрешение/запрет на чтение файла владельцем, группой владельца и всеми остальными пользователями.
  • Разрешение/запрет на запись файла владельцем, его группой и всеми остальными.
  • Разрешение/запрет на запуск файла владельцем, группой владельца и остальными пользователями.

Размещение атрибутов

Пользователь может получать доступ к атрибутам, используя средства, предоставленные для этих целей файловой системой. Обычно разрешается читать значения любых атрибутов, а изменять — только некоторые. Например, пользователь может изменить права доступа к файлу (при условии, что он обладает необходимыми для этого полномочиями), но изменять дату создания или текущий размер файла ему не разрешается. Значения атрибутов файлов могут непосредственно содержаться в каталогах, как это сделано в файловой системе MS DOS (см. рисунок 1). На рисунке представлена структура записи в каталоге, содержащая простое символьное имя и атрибуты файла. Здесь буквами обозначены признаки файла: R — только для чтения, А — архивный, Н — скрытый, S — системный.


Способ размещения атрибутов UNIX

Другим вариантом является размещение атрибутов в специальных таблицах, когда в каталогах содержатся только ссылки на эти таблицы. Такой подход реализован, например, в файловой системе ufs ОС UNIX. В этой файловой системе структура каталога очень простая. Запись о каждом файле содержит короткое символьное имя файла и указатель на индексный дескриптор файла, так называется в ufs таблица, в которой сосредоточены значения атрибутов файла.В том и другом вариантах каталоги обеспечивают связь между именами файлов и собственно файлами. Однако подход, когда имя файла отделено от его атрибутов, делает систему более гибкой. Например, файл может быть легко включен сразу в несколько каталогов. Записи об этом файле в разных каталогах могут содержать разные простые имена, но в поле ссылки будет указан один и тот же номер индексного дескриптора. [Источник 3]

Использование атрибутов файлов

Атрибуты файлов существуют так, что вы или программа, которую вы используете, или даже сама операционная система, могут быть предоставлены или лишены определенных прав на файл или папку. Изучение общих атрибутов файлов может помочь вам понять, почему определенные файлы и папки называются «скрытыми» или «только для чтения», например, и почему взаимодействие с ними настолько отличается от взаимодействия с другими данными. Применение атрибута файла только для чтения к файлу будет препятствовать его редактированию или изменению каким-либо образом, если атрибут не будет отменен, чтобы разрешить доступ на запись. Атрибут «только для чтения» часто используется с системными файлами, которые нельзя изменять, но вы можете сделать то же самое с вашими собственными файлами, которые вам бы хотелось, если бы кто-то с доступом не редактировал.Файлы со скрытым набором атрибутов фактически будут скрыты от обычных представлений, что делает эти файлы очень трудными для случайного удаления, перемещения или изменения. Файл по-прежнему существует, как и любой другой файл, но поскольку атрибут скрытого файла переключается, он не позволяет случайному пользователю взаимодействовать с ним.

Атрибуты файлов и атрибуты папок

Атрибуты можно включать и выключать как для файлов, так и для папок, но последствия этого немного отличаются друг от друга. Когда атрибут файла, такой как скрытый атрибут, переключается на файл , этот единственный файл будет скрыт - ничего другого. Если тот же скрытый атрибут применяется к папке , вам предоставляется больше опций, чем просто скрыть папку: у вас есть возможность применить скрытый атрибут к папке в отдельности или к папке, ее подпапкам и всем ее файлам. Применение атрибута скрытого файла к подпапкам папки и ее файлам означает, что даже после того, как вы откроете папку, все файлы и папки, которые содержатся в ней, также будут скрыты. Первый вариант просто скрыть только папку позволит сделать вложенные папки и файлы видимыми, но просто скрыть основную корневую область папки.

Применение атрибутов файлов

Хотя все доступные атрибуты для файла имеют общие имена, которые вы видели в списках выше, они не все применяются к файлу или папке таким же образом.Небольшой выбор атрибутов можно включить вручную. В Windows вы можете сделать это, щелкнув правой кнопкой мыши или нажав и удерживая файл или папку, а затем включив или отключив атрибут из предоставленного списка.

В Windows больший выбор атрибутов также можно установить с помощью команды , доступной с панели управления . Управление атрибутом с помощью команды позволяет сторонним программам, таким как программное обеспечение резервного копирования , легко редактировать атрибуты файлов.Операционные системы Linux могут использовать команду chattr (Change Attribute) для установки атрибутов файлов, а chflags (Change Flags) используется в Mac OS X. [Источник 4]

Примеры: cd \ – переход в корневую директорию текущего диска; cd \exe – переход в директорию exe в корневой директории; cd .. – переход в наддиректорию; cd – сообщает текущий диск и директорию.

Просмотр содержимого директории

Формат команды: dir [дисковод:][путь\][имя-файла] [параметры]

Параметры: /p – поэкранный вывод; /w – вывод в широком формате; /s – оглавление указанного в команде директорий и всех их поддиректорий; /b – только имена файлов без заголовочных и итоговых сведений; /a атрибут – сведения о файлах, имеющих указанные атрибуты.

Сортировки: /on – по имени; /oe – по расширению; /od – по времени; /og – сначала выводить сведения о директориях;

Примеры: dir – оглавление текущей директории dir *.exe – сведения обо всех файлах .exe текущей директории dir a: – оглавление текущей директории диска а: dir /w – оглавление текущей директории в широком формате dir с:\*.exe /s – сведения обо всех файлах .exe на диске с: dir *.* /ash /b – сведения обо всех файлах текущей директории с атрибутами “системный” и “скрытый”, при этом выводить только имена файлов без заголовочных и итоговых сведений.

Вывод оглавления в файл или на принтер: dir > prn – вывести оглавление текущей директории на принтер; dir c:\*.txt > txtfiles.txt - создать в файле txtfiles.txt список всех файлов с расширением .txt, находящихся в корневой директории диска c:.

Создание директории

Формат команды: md [дисковод:][путь\]имя-директории

Примеры: md abc – создать директорию abc в текущей директории; md c:\users\my – создать директорию my в директории users в корневой директории диска c:.

Удаление директории

Удаление пустой директории

Формат команды: rd [дисковод:][путь\]имя-директории

Примеры: rd abc – удалить директорию abc из текущей директории; rd c:\users\my – удалить директорию my из поддиректории users корневой директории диска c:.

Удаление директории со всем содержимым

Формат команды: deltree [/y] имя-файла-или-директории

Команда deltree может удалять как директории, так и файлы. В имени файла-или-директории можно использовать символы * и ?.

Примеры: deltree temp – удалить директорию или файл с именем temp из текущей директории; deltree /y d* – удалить из текущей директории все директории и файлы, имя которых начинается на d, не запрашивая подтверждение.

Переименование директории

Формат команды: move [дисковод:][путь\]имя-директории новое-имя-директории

Примеры: move a:\temp tmp – переименовать директорию temp корневой директории диска а: в tmp.

Установка списка директорий для поиска выполняемых программ

Формат команды: path [дисковод:][путь\]имя-директории [; [дисковод:][путь\]имя-директории]

Примеры: path ; – поиск программ должен вестись только в текущей директории path – имена директорий, в которых производится поиск программ path c:\exe; c:\exe\program; d:\msdos – поиск программ производить в директориях exe, program, msdos.

Команды MS-DOS для работы с файлами

Создание текстовых файлов

Формат команды: copy con имя-файла

Ctrl+Z, F6 - признак конца файла. Enter – признак конца строки.

Примеры: copy con work.txt – создать в текущей директории текстовый файл work.txt.

Удаление файлов

Формат команды: del имя-файла

Примеры: del *.txt – удалить все файлы с расширением .txt из текущей директории; del name.doc – удалить из текущей директории файл с именем name.doc.

Переименование файлов

Формат команды: ren имя-файла1 имя-файла2

В параметре имя-файла1 можно указывать дисковод и путь, в имя-файла2 – нет. Команда ren не обрабатывает скрытые файлы.

Примеры: ren xxx.doc xxx.txt – переименовать файл xxx.doc текущей директории в xxx.txt; ren a:*.txt *.doc – переименовать все файлы текущей директории на диске а: с расширением .txt в файлы с такими же именами и расширениями .doc.

Копирование файлов

Формат команды: copy имя-файла1 имя-файла2 copy имя файла1 [имя-директории2]

В именах файлов можно употреблять символы * и ?, а также указывать имя диска и путь. Команда copy не копирует скрытые файлы и файлы нулевой длины. Если файл с таким же именем, как у копии, создаваемой командой уже существует, то он замещается.

Примеры: copy x.txt z.txt – скопировать файл x.txt в текущую директорию с именем z.txt; copy a:\*.* – cкопировать все файлы из корневой директории диска а: в текущую директорию текущего диска; copy \text\*.txt a:*.doc – скопировать из поддиректории text текущей директории все файлы с расширением txt в текущую директорию диска а:. Файлы получат расширения doc.

Использование устройств: copy t1.txt prn – копирование файла t1.txt на принтер; copy t1.txt con – копирование файла t1.txt на экран монитора.

Соединение (конкатенация) файлов

Формат команды: copy имя-файла [+имя-файла]…[имя файла]

Если имя исходного файла (или одного из файлов) совпадает с именем создаваемого командой copy файла, то существующий файл замещается. Например, если файл all.doc уже существует, то команда copy *.doc all.doc будет ошибочной, т.к. файл all.doc будет уничтожена в начале копирования.

Примеры: copy .lst+*.ref *.prn – к каждому файлу текущей директории с расширением lst добавить файл с тем же именем и расширением ref, результат записывается в файл с тем же именем и расширением prn; copy f1.doc+f2.doc – объединить файлы f1.doc и f2.doc, содержимое объединенного файла записывается в файл f1.doc; copy *.txt all.prn – содержимое всех файлов с расширением txt записывается в файл all.prn.

Перемещение файлов в другую директорию

Формат команды: move [/y] имя-файла имя-директории move [/y] имя-файла [дисковод:][путь]новое-имя-файла

С параметром /y при существовании в директории-приемнике файлов с теми же именами, что и пересылаемые, выполняется замещение этих файлов без запроса. Задание нового имени возможно только при пересылке одного файла. Например, команда move *.bac a:\*.old ошибочна.

Примеры: move *.doc d:\ – переместить файлы с расширением doc из текущей директории в корневую директорию диска d:; move f1.txt tmp\f2.txt – переместить файл f1.txt в директорию tmp с переименованием в f2.txt.

Сравнение файлов

Формат команды: fc [параметры] имя-файла имя-файла [имя-файла-протокола]

Если имя файла-протокола не задано, сведения о сравнении выводятся на экран.

Параметры: /l – построчное сравнение. Если программа обнаруживает различия в файлах, она пытается найти после точки рассогласования места, начиная с которых файлы снова становятся одинаковыми. На выходе – различающиеся строки; /b – побайтовое сравнение. После обнаружения различия файлов сравнение прекращается.

Параметры построчного сравнения: /c – игнорировать различия между строчными и прописными буквами; /n – вывод номеров строк; /число – сколько строк файлов должно совпадать, чтобы файлы считались снова согласованными. По умолчанию 2 строки; /lbчисло – размер внутреннего буфера для нахождения соответствий в файлах после рассогласования. По умолчанию 100 строк.

Примеры: fc doclad.doc doclad1.doc > diff – сравнить файлы, отчет поместить в файл diff.

Вывод файла на экран

Формат команды: type имя-файла

Примеры: type t1.doc – вывод на экран файла type t1.doc из текущей директории.

Команда копирования xcopy

Формат команды: xcopy имя-файла-или-директории [имя-файла-или-директории]…[параметры]

Преимущества команды xcopy:

 работает быстрее, чем copy;

 позволяет копировать файлы из всех поддиректорий указанной директории;

 позволяет выборочное копирование файлов, в зависимости от значения атрибута «архивировать» или даты файла.Ограничения команды xcopy:

 не поддерживает копирования с логических устройств или на логические устройства;

 не позволяет объединять файлы;

 копирует файлы всегда целиком, команды copy может прекращать копирование, если в исходном файле встретится символ конца файла.Параметры: /s – копирование файлов из указанных директорий и всех их поддиректорий. Файлы из поддиректорий копируются в соответствующие поддиректории той директории, в который копируются файлы; /e – копирование всех поддиректорий, даже если они пусты. Используется только вместе с режимом /s;

/a – копирование только тех файлов, у которых установлен атрибут “архивировать”; /m – копирование только тех файлов, у которых установлен атрибут “архивировать”. После копирования, атрибут “архивировать” отменяется; /dдата – копирование файлов, созданных или измененных начиная с указанной даты. Если дата не указана, то копируются только файлы, более новые, чем файлы, которые они замещают; /p – запрос на копирование каждого файла; /y – перезапись имеющихся файлов с теми же именами без запросов; /n – проверка правильности копирования каждого файла. Примеры: xcopy a:\ b:\ /s /e – копирование всех директорий с диска а: на b:; xcopy *.doc a:\ /s – копирование всех файлов с расширением .doc из текущей директории в корневую директорию диска а:. Файлы с расширением .doc из поддиректорий текущей директории копируются в одноименные поддиректории корневой директории диска а:; xcopy *.* a:\ /s /e – копирование всех файлов и поддиректорий текущей директории в корневую директорию и соответствующие поддиректории диска а: (создание архивной копии файлов текущей директории); xcopy *.* a:\ /m /s /e – копирование всех измененных файлов и поддиректорий текущей директории в корневую директорию и соответствующие поддиректорию диска а:, (обновление архивной копии файлов текущей директории).

Команды MS-DOS для работы с дисками

Смена текущего дисковода

Формат команды: Имя-дисковода:

Примеры: С: – установить текущим диск с:; a: – установить текущим диск a:.

Режим проверки при записи на диски

Формат команды: verify [on/off]

Примеры: verify on – включить режим проверки при записи на диски; verify off – отключить режим проверки при записи на диски; verify – вывести информацию о том, включен или выключен режим проверки.

Форматирование дискет

Формат команды: format дисковод: [параметры]

Параметры: /s – создать системный диск; /v:метка – задание метки диска; /u – безусловное форматирование с уничтожением имеющихся данных; /q – быстрая очистка без контроля наличия сбойных участков.

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

Примеры: format a: /u – безусловное форматирование дискеты а:; format a: /q – очистка дискеты; format a: /s – форматировать дискету и сделать ее системной.

Перенос на диск системных файлов MS-DOS

Формат команды: sys [путь] диск:

Если путь не задан, системные файлы берутся из корневой директории текущего диска.

Примеры: sys a: – перенести на диск а: системные файлы из корневой директории текущего диска.

Задание метки диска

Формат команды: label дисковод:

Метка – обозначение длиной до 11 символов. Недопустимые символы: * ? / \ | . , ; : + = [ ] ( ) & < > ^ ” . Чтобы узнать метку диска, можно использовать команду vol. (vol дисковод:)

Примеры: label a: – сообщить меткe диска а:.

Программы и команды MS-DOS общесистемного назначения

Вывод информации о дате и установка даты в компьютере

Формат команды: date

Примеры: date Запрос: Введите новую дату (дд-мм-гг): (Enter new date (dd-mm-yy)) Вводимая строка: 10-12-2010

Вывод информации о времени и установка времени в компьютере

Формат команды: time

Примеры: time – вывести текущее время; time 11:29 – установить время 11 часов 29 минут.

Изменение вида приглашения MS-DOS

Формат команды: prompt [текст]

Специальные сочетания символов: $p – текущий дисковод и директория; $n – текущий дисковод; $d – текущая дата; $t – текущее время; $v – версия MS-DOS; $_ – переход на новую строку; $s – пробел; $g – символ “>”; $h – удаление предыдущего символа.

Примеры: prompt $p$g – устанавливает приглашение вида c:\users\doc>; prompt $t$h$h$h$h$h$h$g – устанавливает приглашение вида 13:38>.

Получение информации о версии MS-DOS

Формат команды: ver

На экран выводится версия используемой операционной системы. Например: MS-DOS Version 6.22

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Направление стандартного вывода одной программы на вход другой обеспечивается за счет использования конвейеров.

Конвейер – это последовательность команд, осуществляющих поэтапную обработку данных. Для сцепления команд в конвейер используется символ | . Для реализации конвейера MS-DOS использует временный файл, который операционная система сама создает в корневом каталоге и уничтожает после отработки конвейера, т.е. обмен между командами конвейера реализуется через файловую систему.

Пример: P1|P2|P3 – выходной поток программы P1 подается на вход программы P2, а выходной поток P2 является входным для P3.

В конвейерах в основном используются три команды-фильтра MORE, SORT, FIND.

Фильтром называется программа, считывающая данные со стандартного устройства ввода, преобразующая их по определенному алгоритму и выводящая результат работы на стандартное устройство вывода. Для переадресации отфильтрованных данных в файл или входных данных на фильтр используются символы > и <.

Команды-фильтры: (в них команда должна выводить информацию на экран)

MORE – постраничное отображение (файла или результата работы команды):

MORE [< имя_файла] или

команда|MORE.

DIR|MORE – постраничное отображение содержимого текущего каталога;

MORE < a.txt – постраничное отображение содержимого файла a.txt;

TYPE a.txt |MORE – то же самое;

ECHO|MORE – генерирует маркер EOL, т.е. моделирует нажатие клавиши Enter.

SORT – сортировка строк текстового файла в лексикографическом порядке:

SORT [/R][/+n][имя_файла-источника][> имя_файла-приемника] или команда|SORT [/R][/+n][> имя_файла-приемника].

/R – сортировка в обратном порядке (от 9 к 0, от Z к A);

/+n – указывает номер позиции в строке, по которой осуществляется сортировка.

SORT /R < a.txt – отсортировать в обратном порядке строки файла a.txt, результат сортировки вывести на экран;

SORT /R < a.txt > b.txt – то же самое, но результат сортировки вывести в файл b.txt;

DIR|SORT/+10 – отсортировать содержимое текущей директории по расширению имен файлов, результат сортировки вывести на экран.

Find – поиск заданной последовательности символов в текстовом файле:

FIND[/V][/C][/N][/I] «фрагмент» имя_файла или команда|FIND[/V][/C][/N][/I] «фрагмент».

/V – выводить строки, в которых отсутствует «фрагмент»;

/C – выводятся только номера строк, содержащих «фрагмент»;

/N – выводятся номера строк и сами строки, содержащие «фрагмент»;

/I – игнорируются различия строчных и прописных букв.

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

Командные файлы принадлежат к категории исполняемых файлов и имеют тип bat. Командный файл – это текстовый файл, строки которого могут содержать:

вызовы других командных файлов;

специальные команды для управления выдачей на экран;

специальные команды для организации ветвлений и циклов;

Файлы с расширением bat можно создавать текстовым редактором. Командный файл представляет собой системную макрокоманду и является аналогом процедуры в программировании. Командные файлы предназначены для упрощения процесса задания часто используемых последовательностей команд. В частности, они полезны при выдаче команд, требующих много аргументов и переключателей, чтобы не вводить каждый раз с клавиатуры длинную строку. Для описания действий, которые необходимо осуществить после загрузки ОС, используется командный файл AUTOEXEC.BAT.

Командные файлы обрабатываются командным процессором построчно, причем каждая прочитанная строка отображается на экране дисплея (если не был установлен режим ECHO OFF), а затем интерпретируется. Если в начале строки командного файла указать символ @, то данная строка не будет отображаться на экране перед ее интерпретацией.

Некоторые команды .bat -файлов:

CLS – очистка экрана;

[@]ECHO [ON][OFF]

ECHO [строка] – отображение строки на экране;

GOTO – безусловный переход (признаком метки является двоеточие в начале строчки);

IF – проверка условия и ветвление:

IF EXIST имя_файла (или шаблон) … – проверка существования файла;

IF текстовая_строка1==текстовая_строка2 … – сравнение двух строк;

IF %1= = Y GOTO m – переход на m, если фактический параметр = Y;

IF EXIST a.txt ECHO файл существует! – вывод надписи, если файл имеется;

PATH – работа с поисковыми маршрутами: (путь без пробелов!)

PATH имя_каталога[;имя_кат] – установка списка каталогов для поиска программ;

PATH ; – установка поиска только в текущем каталоге;

PATH без пар-в – вывод имен каталогов, в которых производится поиск программ;

PAUSE – приостановка выполнения программы и ожидание нажатия клавиши;

PROMPT аргумент – задание формата приглашения DOS.

Аргумент – строка из управляющих символов:

$b – выдача символа-разделителя |;

$d – выдача текущей даты;

$g – выдача символа-разделителя >;

$h – стирание предыдущего символа (BackSpase);

$n – выдача имени текущего дисковода;

$p – выдача имени текущего (рабочего) каталога;

$t – выдача текущего времени;

$v – выдача номера версии MS-DOS;

$_ – последовательность символов «возврат каретки» и «перевод строки»;

PROMPT $p$g – стандартное приглашение, содержащее путь к текущему каталогу;

REM – строка комментариев;

SHIFT – сдвиг списка формальных параметров;

Командные файлы с параметрами:

При вызове командного файла можно задать последовательность аргументов, отделенных друг от друга пробелом, которые будут замещать формальные параметры при интерпретации строк .bat -файла. Допускается использовать до 10 формальных параметров с именами %0, %1, …, %9. Действует принцип позиционного соответствия параметров и аргументов, т.е. вместо %0 подставляется имя командного файла, вместо %1 подставляется первый аргумент и т.д. Для обрабатывания неизвестного заранее количества параметров можно использовать команду SHIFT.

Пример: Пусть имеется командный файл pf.bat, содержащий строки:

@ECHO OFF TYPE %1 PAUSE TYPE %2 PAUSE

Запустить его на выполнение можно следующим образом: pf.bat f1.txt f2.txt.

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

Пример: Для добавления маршрута поиска к уже имеющимся в командный файл можно включить строку @SET PATH=%PATH%;H:\PAS.

Рекурсивные (вложенные) вызовы командных файлов:

Пусть имеется два командных файла – «вызывающий» x.bat и «вызываемый» y.bat. Оформление вызова y.bat из x.bat и возврат обратно осуществляется по следующей схеме:

Файл x.bat

<начало x> …

Файл y.bat


COMMAND/C y

<начало y>


<продолжение x>

Задание на лабораторные работы по MS-DOS

Выйти из оболочки NC. Работу выполнять только средствами DOS.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Эта статья написана для тех, кто слишком часто слышит обидное - RTFM (Read Twice the Fine Manual), для тех, кто родился вместе с Windows 95, для тех, кто подозревает, что за иконками на рабочем столе и кнопкой "пуск" прячется другой мир, для тех, кто ищет туда дверь.

Я постараюсь популярно объяснить несколько важнейших понятий уровня пользователей дисковых операционных систем, совместимых с PC-DOS.

Вы спросите: а причём здесь PC-DOS?

Дело в том, что сегодняшняя архитектура PC происходит от знаменитого IBM-PC, выпущенного в 1981 году. А первая операционная система для этой машины называлась "IBM PC-DOS".

Строго говоря, это была "86-DOS", разработанная "Seattle Computer Company". Но вот здесь появился Билл Гейтс - молодой предприимчивый специалист из "Microsoft". Он, за скромную плату, получил права на перепродажу и переделку этой ОС и практически сразу же предложил её фирме IBM в качестве базовой системы для их будущего шедевра - IBM PC 5150 (первая модель архитектуры PC).

Спустя несколько лет появилась версия этой операционной системы под названием MS-DOS.

Дальше MS-DOS обзавелась графической оболочкой Windows 1 и 2 (тем же путём выгодных сделок), а затем и Windows 3.

Первая операционная система семейства Windows - "Windows 95". Она тоже всё ещё базировалась на MS-DOS.

Параллельно разрабатывалось новое ядро - "Windows NT". В нём осталась лишь совместимость с MS-DOS и, как любая совместимость, - с ограничениями.

Однако до сегодняшнего дня сохранились основные понятия, применяемые ещё в PC-DOS v1.0.

Примечание

1. Далее в статье аббревиатура DOS будет означать семейство операционных систем от первой PC-DOS до последней WinXP.

2. Слово команда в этой статье не имеет отношения к командам процессора или Ассемблера. Здесь речь пойдёт о командах DOS.

Основные понятия

Файл (file) - целая единица для хранения любых доступных компьютеру видов информации.

Самые важные свойства файлов - имя, расширение и атрибуты.

Имя файла - обязательное свойство, оно позволяет обратиться к файлу и помогает определить его содержимое.

До Win95 имена у файлов могли быть не больше восьми символов. Теперь такие имена называются короткими. Для совместимости их оставили, и сейчас у каждого файла фактически два вида имени - короткое и длинное.

Значит, к любому файлу можно обратиться и по короткому имени (только его нужно знать).

Расширение файла - необязательная часть имени, она сообщает OS о том, какие действия производить с файлом. То есть расширение создано, чтобы определять тип файла (exe, doc, htm. ). У коротких имён расширение не может быть больше 3 символов.

Сегодня расширением считается всё, что идёт после последней точки в названии файла.

Атрибуты файлов - они сообщают основные характеристики.

Read Only - файл только для чтения

Hidden - скрытый от пользователя

System - системный файл

Директория, она же каталог, она же подкаталог, она же папка (directory, (sub)folder, catalog) - это следующая за файлом целая единица.

Призвана объединять группы файлов.

Фактически, на уровне системы, директория - это тот же файл.

Соответственно, она имеет аналогичные свойства - имя, расширение, атрибуты.

Система файлов и папок в DOS имеет иерархическую структуру, называемую.

  1. Каждый файл обязательно имеет свою директорию.
  2. Каждая директория обязательно имеет свою наддиректорию.

Второе правило не включает только.

Корневой каталог (корень, рут, root (directory). Не путать с system root!) - начальный каталог в структуре каталогов, только в нём могут храниться файлы и другие подкаталоги. Корень не является файлом ни на каком уровне, соответственно он не имеет имени, расширения, атрибутов и других свойств файлов.

Корень не может быть помещён в другую папку.

Теперь осталось рассказать о самой общей категории пользователя DOS.

Здесь в терминологии не всё так просто, как хотелось бы (программисты и сисадмины долго трудились).

Обычно в быту мы называем эту категорию просто диском (disk).

Некоторые обязательно подчёркивают, что диск логический (logical disk).

Другие называют томом (volume).

Есть также любители слова раздел (partition), или логический раздел.

К сожалению, у каждого из этих слов есть ещё как минимум одно значение из области системных и дисковых терминов. Поэтому я всё время подчёркиваю, что такое описание даётся только для пользователей.

Ведь если задуматься, то пользователям всё равно, как это называть, лишь бы понять, что оно даёт. Так что начну описывать.

Все остальные объекты (корень, а в нём файлы, папки. ) могут существовать только внутри логического диска.

Каждый диск (будем считать отформатированный диск DOS) обязательно содержит свою корневую папку.

И, вопреки представлениям некоторых пользователей, недавно освоивших мышку под WinXP, диски нельзя "перетаскивать" в папки. Это вам не UNIX.

Буква диска (drive later, volume later)

За каждым диском закрепляется определённая буква. Одна латинская буква от A до Z (A и В зарезервированы под дисководы).

С буквой диска тоже возникла путаница.

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

метка диска ((volume) label), она может быть до 11 или до 32 символов (на FAT-дисках или NTFS соответственно).

Я бы не стал называть метку именем диска. Хотя бы потому, что используя средства ОСи, через метку к диску обратиться нельзя, и если диску не присвоена буква, то метка вам ничем не поможет.

Давайте подытожим сказку "о смерти кощеевой".

Иголка, то бишь файл, находится в каталоге, над ним может быть ещё энное количество каталогов, и всё это в корне, который обязательно есть на диске.

Сейчас рассмотрим всё это на практике, но сначала хорошо бы узнать, что такое.

Интерфейс командной строки

Существует такое важное понятие, как программный интерфейс.

Говоря простым языком, это способ, которым программа общается с пользователем. То есть принимает и выдаёт информацию (ввод-вывод для пользователя).

В стародавние времена, когда ещё не было не то что мышек, но даже персональных компьютеров, придумали интерфейс командной строки (ИКС).

Командная строка - это довольно удобный способ общения с программой, по сравнению с переключением тумблеров в качестве ввода и ожиданием контрольных ламп как вывод (а ведь долго было и такое).

  1. Пользователь набирает управляющие команды с клавиатуры (ввод пользователя).
  2. Операционная система сразу же отображает всё, что пользователь набирает в одну строку (вывод пользователю).
  3. Командная строка начинает выполняться только после нажатия Enter.
  4. Выполнив задуманное действие, программа выводит пользователю информацию о том, что она сделала.

В общем, всё довольно просто. Вы спросите: зачем командная строка, когда уже давно есть Форточки и там всё можно делать мышкой в окнах?

Да, современный оконный интерфейс имеет свои преимущества, но полностью отказаться от командной строки пока что могут только начинающие пользователи (полные чайники). Даже для того, чтобы зайти на новый сайт, нужно ввести его адрес в командной строке интернет-проводника, и мышкой это делать не очень удобно.

Многие полезные программы (особенно для системщиков, программистов и хакеров) не знают про существование окон и мышей, они ждут от вас заветного ключика, и если вы не умеете пользоваться командной строкой, то не сможете профессионально пользоваться тем же компилятором.

Теперь ближе к практике.

До сих пор командное управление лежит в основе ОСей. Любое действие DOS можно выполнить по старинке - из командной строки, и это довольно полезно.

Именно поэтому менеджеры файлов (FAR, Total Commander и т.п) имеют приглашение командной строки. Даже в стандартном проводнике есть строка, только она ограничена, так как это не строка операционной системы, а строка IE, в ней нельзя выполнять внутренние команды cmd.exe.

Синтаксис путей DOS

Итак, мы открыли консоль командной строки cmd.exe.

После представления операционной системы видно саму строку ввода, она называется строка приглашения и выглядеть может по-разному (смотри команду PROMPT). Но допустим, что вид такой:

Здесь есть путь к текущей папке - "С:\Documents and Settings\User\"

и курсор ввода - "_" (обычно он мигает).

Путь всегда начинается с диска.

С: - имя диска (то есть буква диска и двоеточие составляют имя диска в DOS).

Дальше идёт символ обратной дроби (reverse solidus) - "\".

Его также называют обратная косая черта (backslash). Этот символ в путях разделяет каталоги.

Дальше у нас идёт название папки - "Documents and Settings".

Затем опять косая черта - разделитель папок. И ещё один каталог "User".

Такая строка сообщает нам, что мы находимся на диске "C" в папке "User", которая вложена в "Documents and Settings", а та находится в корне, и теперь от нас ждут ввода.

Сейчас можно просто набрать на клавиатуре имя файла, точку и расширение, затем нажать Enter. Система выполнит то, что предусмотрено для расширения этого файла.

Однако важно понять, что файлы будут искаться в текущей папке (не включая подкаталоги). То есть в нашем примере в папке "User". Если здесь нет нужного файла, то дополнительно ОС будет искать его в прописных каталогах.

Кроме файлов, в командной строке можно выполнять внутренние команды DOS.

Ключи командной строки (command line options)

После имени файла или команды можно добавить дополнительные параметры (как правило, через пробел), которые называются ключами командной строки. Какие параметры нужно добавлять - зависит от того, что именно вызываете.

Большинство команд DOS принимают универсальный ключ справки - /?.

К примеру, выполните в командной строке:

И вы увидите самые важные сведения о команде FC.

Первое, что стоит в этой справке, - это описание команды (для чего она).

Потом идёт вид команды (синтаксис выполнения):

В описании командных параметров принято использовать разные скобки, и вот что они означают:

Для того чтобы команда выполнила своё предназначение, всё, что вне скобок, нужно вводить обязательно.

Теперь должно быть понятно, что запускать команду FC имеет смысл как минимум с именами двух файлов.

Точно так же некоторые программы бесполезно запускать без ключей. Ведь у них нет другого пользовательского интерфейса.

Кроме того, многие оконные приложения тоже обладают ключами. Даже explorer.exe (проводник Windows) имеет кучу полезных ключей (здесь описана лишь небольшая часть).

  1. Ключи обычно идут через пробел.
  2. Справку о большинстве команд можно получить с ключом /?.
  3. Бывают команды и программы с обязательными ключами.

Внутренние и внешние команды DOS

По-научному это звучит так: приоритет ключей внутренних команд выше файлов. Объясню на конкретном примере.

Команда CD. Cправку о ней можно получить, набрав её с ключом вопроса без пробела:

на запрос "cd" - выполнится файл.

на запрос "cd верный параметр" - выполнится команда CD.

на запрос "cd абракадабра" - выполнится файл с ключом абракадабра.

Чтобы это переварить, можно провести эксперимент.

Поместите в текущую папку наш пример prax07.exe и переименуйте его в cd.exe. Выполняя CD с разными параметрами, вы получите то запуск примера cd.exe, то команды CD.

Пожалуй, это всё что нужно знать о внутренних командах для начала.

Внешние команды - это просто самостоятельные программы, каждая из которых находится в своём собственном exe- или com-файле.

Выше мы запускали FC, она как раз одна из внешних команд DOS.

Вот ещё один пример.

Внешняя команда TREE

Команда даёт "графическое" представление структуры папок и сведения о томах.

Её файл можно найти тут - "C:\WINDOWS\SYSTEM32\tree.com"

На самом деле это PE-файл, так что формально у него должно быть расширение exe. Но поскольку раньше многие команды были в формате com, для совместимости им оставили расширение com.

Попробуйте выполнить эту команду (обязательных ключей у неё нет).

Бывает такое, что весь текст, который выводит команда или программа, не умещается в окне консоли. Текст быстро "пролетает", и нам остаётся только последняя страница.

Использовать оператор "|more".

Попробуйте ввести команду TREE вот так:

Кстати говоря, прервать выполнение любой команды ДОС можно комбинацией клавиш Ctrl+Pause (Ctrl+Break).

Теперь попробуем ввести с ключом "|more":

Уже лучше, мы можем спокойно прочитать каждую страницу. Однако в данном случае удобнее получить весь вывод (текст) в отдельный файл и спокойно изучать его. Для этого нужно всего лишь набрать:

В текущем каталоге будет создан (или переписан) текстовый файл в кодировке MS-DOS. В этот файл переназначится весь вывод команды.

Довольно полезный пример переназначения вывода команды FC.

Предположим, нам нужно сравнить два exe-файла и получить текстовый файл с отличиями. Пожалуйста:

Для самообразования рекомендую освоить ещё несколько полезных команд: DIR, COPY, CLS, REM и, разумеется, самую важную команду HELP. =)

Кроме того, загляните в "Центр справки и поддержки" Windows. Прочитайте там хотя бы главу "Использование операторов перенаправления команд".

Переменные окружения (environment variables) - команда SET

В MS-DOS не было реестра, некоторые его функции выполняли переменные окружения (переменные средЫ). Что это такое?

Наборы переменных с именами и значениями, которые используют ОС и другие программы.

Для установки переменной в одном сеансе запуска консоли можно воспользоваться командой SET из командной строки.

Суть переменных определяет программа, которая их использует, поэтому все переменные описать нельзя (так же, как все ключи реестра или все файлы в мире). Но есть общесистемные переменные, такие как TEMP.

В переменной TEMP и TMP (второе для совместимости) задаётся путь временной папки пользователя. Эту папку используют многие программы для хранения промежуточных файлов (ещё бы они их удаляли всегда сами, было бы совсем хорошо).

Есть и такие переменные, которые определяются для одной программы. Например, переменную ML будет использовать компилятор MASM для настроек компиляции.

Однако для нас с вами самая важная системная переменная - PATH, переменная прописных путей.

Прописные пути (common path)

ОС, получив запрос выполнить тот или иной файл, сначала ищет его в текущем каталоге, а затем в путях, которые прописаны в переменной PATH.

Если вы желаете вызывать какой-либо файл из любой папки (как команду), то следует добавить путь к нему в переменную PATH (и расширение в переменную PATHEXT, если его там нет). Формат переменной выглядит просто:

(можно с пробелами, можно без, главное через точку с запятой)

Для установки значения прописных путей можно использовать команду PATH или команду SET. Однако такая установка будет действовать только в рамках текущего консольного окна. Для общего изменения списка прописных путей используется способ, описанный выше.

Операторы DOS

Они позволяют дополнить поведение команды.

Сейчас покажу ещё пару полезных операторов:

nul - ничего

* - всё что угодно

Допустим, нам нужно скопировать все файлы из папки Windows\system32, которые начинаются на ms (а дальше может быть любое сочетание символов в именах и любое расширение) на диск D в папку MS. Вот как это делается с помощью команды COPY:

Очень удобно с оператором * обрабатывать все файлы с одним расширением (например *.txt) или искать сочетание букв (например *ms.*).

Кстати, в FAR'e удобно выделять желаемое, используя клавишу "+" на нампаде.

Оператор nul действительно означает "ничего", допустим, строка:

приведёт к тому, что вывод команды tree уйдёт в никуда.

Так можно указывать ещё и nul-файлы (мнимые) в командной строке.

Для чего вам нужно "ничего" - соображайте сами =).

Пакетные файлы DOS (командные бат-файлы)

Главный недостаток ИКС заключается в том, что нам нужно каждый раз много набирать на клавиатуре, чтобы выполнить одно действие с программой. Не очень удобно. Хотя бы потому, что нужно всё время помнить ключи, операторы и команды.

Этот недостаток исправляет возможность записи повторяющейся последовательности команд в отдельный файл.

При запуске файлов с расширением bat система воспринимает их как набор команд и операторов DOS.

В текстовом виде в DOS-кодировке мы можем напечатать команды и операторы (каждая новая строка - ввод на выполнение) и сохранить как "имя.bat".

Так можно автоматизировать ввод часто повторяемых команд.

Язык команд и операторов DOS довольно развит. Мы можем создавать целые сценарии в bat-файлах, используя различные меню, циклы и многое другое. По сути, это макроязык DOS.

Рассмотрим пару простых bat-примеров.

Оператор "@" - подавляет вывод команды (в окне консоли не будет видно echo off).

"echo off" - отключает вывод дальнейших команд (в окне консоли не будет видно следующих команд).

"echo текст" - выводит текст (однако раз выше было echo off, слово echo выводиться не будет).

%PATH% - заменяется содержимым переменной окружения с именем PATH.

А вот такой батник покажет 3 ключа, которые переданы ему из командной строки:

Описывать язык DOS дальше в рамках данной статьи - уже явный перебор.

Всё, что нужно, чтобы освоить команды и операторы, вы можете получить, воспользовавшись командой HELP.

Ещё есть "центр справки и поддержки Windows".

Книги никто не отменял.

Кроме того, недавно придумали Интернет. Хотя, конечно, вы-то про него знаете, раз уж дочитали этот бред.

Читайте также: