Создание специальной таблицы файлов для имен в формате ms dos

Обновлено: 07.07.2024

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

Смена текущей директории

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Операционные системы MS-DOS, Windows 95, Windows 98 и старое железо компьютера — установка, настройка, использование.

Основные команды MS-DOS . Часть 2.

Команды ms-dos . Format c: .

Рассмотрим минимальный список команд, которые нам могут понадобиться для работе в DOS. Мы их будем использовать для установки операционных систем на базе DOS или поиска и запуска установленного файлового менеджера.

Команды MS-DOS общесистемного назначения.

При запуске MS-DOS вы увидите приглашение работы в командной строке. По умолчанию оно будет обозначать корневой каталог диска с установленной операционкой. Допустим, операционная система установлена на диск C: , приглашение будет выглядеть:

Сменить текущий диск можно набрав новое имя дисковода.

prompt

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

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

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

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

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

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

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

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

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

deltree

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

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

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

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

copy con

Создать текстовый файл (copy console- англ. скопировать консоль (то, что набираем клавиатурой на экране) в файл).

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

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

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

Удалить файл (delete- англ. удалить).

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

Переименовать файл (rename- англ. переименовать).

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

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

format

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

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

Перенести на диск системные файлы DOS (system- англ. система).

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

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

fdisk

  • создание основного раздела MS-DOS;
  • создание расширенного раздела MS-DOS;
  • установка активного раздела;
  • удаление раздела;
  • вывод данных раздела;
  • выбор следующего жесткого диска для создания разделов (если система имеет несколько жестких дисков).

Формат команды:
fdisk [параметры]

label

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

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

8,3 файла (также называется короткое имя файла или SFN ) является имя файла соглашение , используемое старыми версиями DOS и версии Microsoft Windows до Windows 95 и Windows NT 3.5 . Он также используется в современных операционных системах Microsoft в качестве альтернативы длинному имени файла для совместимости с устаревшими программами. Соглашение об именах файлов ограничено файловой системой FAT . Подобные схемы именования файлов формата 8.3 также существовали в более ранних операционных системах миникомпьютеров CP / M , TRS-80 , Atari и некоторых Data General и Digital Equipment Corporation .

СОДЕРЖАНИЕ

Обзор

8.3 имен файлов ограничены не более восьми символов (после любого каталога спецификатора), а затем при необходимости путем расширения имени файла , состоящем из периода . и не более трех дополнительных символов. Для систем, которые поддерживают только имена файлов формата 8.3, лишние символы игнорируются. Если имя файла не имеет расширения, замыкающая . не имеет никакого значения (то есть, myfile и myfile. эквивалентны). Более того, имена файлов и каталогов в этой системе пишутся в верхнем регистре , хотя системы, использующие стандарт 8.3, обычно не чувствительны к регистру (что CamelCap.tpu эквивалентно имени CAMELCAP.TPU ). Однако в операционных системах , отличных от 8.3 (например, почти любая современная операционная система), обращающихся к файловым системам 8.3 (включая дискеты в формате DOS , но также включая некоторые современные карты памяти и сетевые файловые системы), базовая система может изменять имена файлов внутри, чтобы сохранить регистр и избегайте усечения букв в именах, например, в случае VFAT .

VFAT и компьютерные имена файлов формата 8.3

VFAT , вариант FAT с расширенным форматом каталогов, был представлен в Windows 95 и Windows NT 3.5. Это позволило использовать длинные имена файлов Unicode (LFN) в смешанном регистре в дополнение к классическим именам 8.3, используя несколько 32-байтовых записей записей каталога для длинных имен файлов (таким образом, что только одна из них будет распознаваться старым системным программным обеспечением 8.3 как допустимая запись каталога. ).

Для обеспечения обратной совместимости с устаревшими приложениями (в DOS и Windows 3.1 ) в файловых системах FAT и VFAT автоматически создается имя файла 8.3 для каждого LFN, через которое файл все еще можно переименовать, удалить или открыть, хотя сгенерированное имя (например, OVI3KV

N ) может иметь небольшое сходство с оригиналом. В файловых системах NTFS создание имен файлов формата 8.3 может быть отключено. Имя файла 8.3 можно получить с помощью функции Kernel32.dll GetShortPathName.

Хотя не существует обязательного алгоритма для создания имени 8.3 из LFN, Windows использует следующее соглашение:

  1. Если LFN в верхнем регистре 8,3, LFN вообще не будет храниться на диске.
    • Пример: TEXTFILE.TXT
  2. Если LFN имеет смешанный регистр 8.3, LFN будет хранить имя в смешанном регистре, а имя 8.3 будет его версией в верхнем регистре.
    • Пример: TextFile.Txt становится TEXTFILE.TXT .
  3. Если имя файла содержит символы, недопустимые в имени 8.3 (включая пробелы, которые были запрещены соглашением, но не API-интерфейсами), или какая-либо часть слишком длинная, имя удаляется из недопустимых символов, таких как пробелы и дополнительные точки. Если имя начинается с точек, . ведущие точки удаляются. Другие символы, например + , заменяются подчеркиванием _ , а буквы вводятся в верхнем регистре. Затем удаленное имя обрезается до первых 6 букв базового имени , за которым следует тильда , за которой следует одна цифра , за которой следует точка . , за которой следуют первые 3 символа расширения.
    • Пример: TextFile.Mine.txt становится TEXTFI

1.TXT (или уже TEXTFI

2.TXT должен TEXTFI

1.TXT существовать). ver +1.2.text становится VER_12

1.TEX . .bashrc.swp становится BASHRC

    Пример: TextFile.Mine.txt делается TEXTF

10.TXT если TEXTFI

1.TXT через TEXTFI

NTFS , файловая система, используемая семейством Windows NT , изначально поддерживает LFN, но имена 8.3 по-прежнему доступны для устаревших приложений. При желании это можно отключить для повышения производительности в ситуациях, когда в одной папке находится большое количество файлов с одинаковыми именами.

ISO 9660 файловой системы ( в основном используется на компакт - дисках ) имеет те же ограничения , на самом базовом уровне 1, с дополнительным ограничением , что имена каталогов не могут содержать расширения и что некоторые символы ( в частности , дефисы ) не допускается в именах файлов. Уровень 2 допускает имена файлов длиной до 31 символа, более совместимые с классическими именами файлов AmigaOS и Mac OS .

Во время антимонопольного дела Microsoft 2001 года названия MICROS

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

Совместимость

Эта устаревшая технология используется в широком спектре продуктов и устройств в качестве стандарта для обмена информацией, например, компактные флэш-карты, используемые в фотоаппаратах. Длинные имена файлов VFAT LFN, представленные в Windows 95/98 / ME, сохранили совместимость. Но VFAT LFN, используемый в системах на базе NT (Windows NT / 2K / XP), использует модифицированное короткое имя 8.3.

Если имя файла содержит только строчные буквы или представляет собой комбинацию базового имени в нижнем регистре с расширением в верхнем регистре , или наоборот; и не имеет специальных символов и соответствует ограничениям 8.3, запись VFAT не создается в Windows NT и более поздних версиях, таких как XP. Вместо этого используются два бита в байте 0x0c записи каталога, чтобы указать, что имя файла следует рассматривать как полностью или частично в нижнем регистре. В частности, бит 4 означает расширение в нижнем регистре, а бит 3 в нижнем регистре базового имени , что позволяет использовать такие комбинации, как example.TXT или, HELLO.txt но не Mixed.txt . Немногие другие операционные системы поддерживают это. Это создает проблему обратной совместимости с именами файлов со старыми версиями Windows (95, 98, ME), которые видят имена файлов с заглавными буквами, если это расширение использовалось, и, следовательно, могут изменять регистр символов в файле при его транспортировке, например, на USB-накопитель. Это может вызвать проблемы для операционных систем, которые не демонстрируют нечувствительность к регистру имен файлов, как это делают DOS и Windows. Текущие (> 2.6) версии Linux распознают это расширение при чтении; короткое имя параметра монтирования определяет, используется ли эта функция при записи. Для MS-DOS вы можете использовать DOSLFN Хенрика Хафтманна.

Таблица каталогов

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

Допустимые символы для имен файлов DOS включают следующее:

Это исключает следующие символы ASCII :

  • " , * , + , , , / , : , ; , < , = , > , ? , \ , [ , ] , |
    Windows / MS-DOS не имеет оболочки экранирующего символа
  • . ( U + 002E . ПОЛНЫЙ ОСТАНОВ ) в имя и расширение полей, за исключением . и .. записи (см ниже)
  • Строчные буквы a - z , хранящиеся как A - Z в FAT12 / FAT16
  • Управляющие символы 0–31
  • Значение 127 ( DEL )

Имена файлов DOS находятся в наборе символов OEM . Код 0xE5 в качестве первого байта (см. Ниже) создает проблемы при использовании дополнительных символов ASCII .

Записи каталога, как в области корневого каталога, так и в подкаталогах, имеют следующий формат:

Смещение байта Длина Описание
0x00 8 Имя файла DOS (с пробелами)

Первый байт может иметь следующие специальные значения:

Первый байт может иметь следующие специальные значения:

Немного Маска Описание
0 0x01 Только чтение
1 0x02 Скрытый
2 0x04 Система
3 0x08 Метка тома
4 0x10 Подкаталог
5 0x20 Архив
6 0x40 Устройство (только для внутреннего использования, на диске не обнаружено)
7 0x80 Неиспользованный

Значение атрибута 0x0F используется для обозначения записи с длинным именем файла.

Обратите внимание, что секунды записываются только с разрешением 2 секунды . Более точное разрешение для создания файла находится по смещению 0x0d.

Работа с короткими именами файлов в командной строке

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

    Имя файла SFN может содержать не более 8 символов перед точкой. Если их больше, необходимо написать первые 6, затем тильду

  • Любые пробелы в именах файлов следует игнорировать при преобразовании в SFN.
  • Игнорируйте все точки, кроме последней. Не включайте никакие другие точки, как и пробелы. Используйте последнюю точку, если есть, и следующие символы (до 3). Например, для .manifest будет использоваться только .man.
  • Запятые, квадратные скобки, точки с запятой, знаки = и + заменяются подчеркиванием.
  • Регистр не важен, символы верхнего и нижнего регистра обрабатываются одинаково.

Чтобы точно узнать имена SFN или 8.3 файлов в каталоге

использование: dir /x показывает короткие имена, если они есть, и длинные имена.

или: dir /-n показывает только короткие имена в исходном формате списка DIR.

В операционных системах на базе Windows NT апплеты командной строки ( cmd.exe ) принимают длинные имена файлов с подстановочными знаками (вопросительный знак ? и звездочка * ); длинные имена файлов с пробелами должны быть экранированы (т.е. заключены в одинарные или двойные кавычки).

Начиная с Windows Vista , консольные команды и апплеты PowerShell выполняют ограниченное сопоставление с образцом , разрешая использование подстановочных знаков в имени файла и каждом подкаталоге в пути к файлу и автоматически подставляя первую соответствующую запись каталога (например, изменит текущий каталог на ). C:\> CD \prog*\inter* C:\Program Files\Internet Explorer\

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

Создание нового файла

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


Запись данных в файл

Запись в файл выполняется функцией DOS 40h. Этой функции нужно передать в регистре BX тот самый дескриптор, который был получен при создании файла.


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

Закрытие файла

После работы с файлом нужно его закрыть с помощью функции DOS 3Eh.


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

Пример первый

Программа создаёт новый файл и записывает в него данные. Так как диск и директория не указаны, то файл создаётся в текущей папке. В данном примере в файл записываются 2 строки, получается текстовый файл. Можно работать с двоичными файлами, записывая любые байты, слова и т.д.

В результате работы программы создаётся файл, который можно открыть блокнотом:


Открытие существующего файла

Для открытия файла используется функция DOS 3Dh. В отличие от создания файла, эта функция завершится ошибкой, если файл не существует.


Чтение данных из файла

Чтение из файла выполняется функцией DOS 3Fh.


Размер буфера для данных должен быть больше или равен количеству считываемых байтов. Обратите внимание, что в AX функция возвращает количество реально прочитанных байтов. Это количество может быть меньше требуемого, например, если файл слишком короткий.

Пример второй

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