Какие символы разрешено использовать в именах файлов в операционной системе ms dos

Обновлено: 03.07.2024


MS-DOS и Windows. Часть I

2.1 Введение в MS-DOS

До сих пор в этом курсе мы в основном обсуждали аппаратное обеспечение, из которого состоит микрокомпьютер. Теперь мы рассмотрим программное обеспечение, которое выполняет все задачи управления данными, включая ввод данных в компьютер и обратно. Поскольку ввод-вывод данных обычно включает хранение и извлечение данных на диске, программное обеспечение, ответственное за управление всем этим, называется дисковой операционной системой (DOS) или просто операционной системой (ОС). В самом прямом смысле ОС, которую использует компьютер, придает оборудованию своего рода индивидуальность. Поскольку все остальное программное обеспечение, используемое на компьютере, работает под управлением операционной системы, сильные и слабые стороны ОС отражаются в этих других программах.

Подавляющее большинство современных микрокомпьютеров работают под управлением той или иной версии Microsoft Windows (3.x, 95, 98 или NT) в качестве операционной системы. Windows является примером операционной системы с графическим пользовательским интерфейсом или GUI. Графический интерфейс заменяет графические объекты и щелчки мышью на имена файлов и вводимые команды. Хотя это значительно упрощает использование компьютера, оно снижает производительность процессора и памяти, необходимых для поддержки всей графики. Windows будет обсуждаться более подробно в следующем разделе.

До разработки Windows на большинстве компьютеров использовалась другая операционная система от Microsoft, известная как MS-DOS (Microsoft Disk Operating System). MS-DOS — это неграфическая операционная система. Это означает, что все команды, данные компьютеру, должны быть либо набраны с клавиатуры, либо введены из файла. Многие компьютерные программы, которые используются для сбора данных или управления лабораторными приборами, по-прежнему работают под MS-DOS (как и многие компьютерные игры). Поэтому базовые знания MS-DOS необходимы всем, кто планирует использовать компьютеры в лабораторных условиях (или любому серьезному игроку в компьютерные игры).

Ранняя разработка MS-DOS была тесно связана с разработкой микрокомпьютера IBM-PC. В 1980 году, когда IBM покупала операционную систему для своего первого персонального компьютера, они обратились в Digital Research Corporation (поставщик ОС CP/M) с предложением лицензировать у них ОС. Digital Research не проявила большого интереса к сделке, поэтому IBM обратилась к Microsoft с аналогичным предложением.

Microsoft была основана в 1975 году двумя школьными друзьями Полом Алленом и Биллом Гейтсом. В 1980 году Microsoft была небольшим разработчиком языков программирования и не имела в своем арсенале операционной системы для микрокомпьютеров, особенно такой, которая работала бы с Intel 8088 — центральным процессором для нового IBM-PC. Однако Билл Гейтс знал, где он может получить прототип ОС, поэтому он заключил сделку с IBM и пообещал, что Microsoft подготовит ОС к дебюту IBM-PC в августе 1981 года. Контракт между IBM и Microsoft позволил Microsoft предлагать модифицированные версии ОС другим производителям ПК. В IBM не думали, что рынок ПК когда-либо будет очень большим (они рассчитывали продать всего около 500 штук в первый год), поэтому они не видели ничего плохого в заключении неэксклюзивного контракта.

Microsoft обратилась к Seattle Computer с предложением приобрести QDOS (Quick and Dirty DOS), написанную Тимом Патерсоном. Сделка была завершена в июле 1981 года. Microsoft модифицировала QDOS и представила ее через месяц как PC-DOS для IBM-PC, а в следующем году как MS-DOS для Compaq, Tandem и других клонов IBM-PC.

MS-DOS претерпела множество улучшений с момента своего появления в версии 1.0 в 1981 году. Последним полным выпуском MS-DOS была версия 6.22 в 1995 году. Ограниченная версия MS-DOS, версия 7.0, поставляется с Windows 95 и 98.


2.2 Файлы и имена файлов MS-DOS

Одной из основных функций ОС является обработка файлов на диске. Файл — это набор информации, хранящейся на диске под определенным именем. Файл может содержать только данные или набор инструкций, называемых программой, сообщающих компьютеру, как выполнять определенную задачу. В этом разделе мы не будем различать эти разные типы файлов. Мы будем просто называть каждый тип файлом.

Каждый файл имеет связанное с ним уникальное имя файла, которое используется для его идентификации на диске. Имя файла в MS-DOS состоит из двух частей; имя и расширение. Имя может содержать до восьми символов. Кроме того, каждое имя файла может иметь расширение из трех символов. Расширение отделяется от имени точкой. Точка служит разделителем, указывающим, где заканчивается одна часть имени файла и начинается следующая (рис. 2.1). Расширение обычно используется для идентификации файлов, которые каким-то образом связаны. Например, Microsoft Excel использует расширение XLS для идентификации всех файлов электронных таблиц, созданных Excel.

Рис. 2.1 Имя файла MS-DOS

Любой другой символ, используемый в имени файла, включая пробелы, приведет к тому, что имя будет заканчиваться этим символом. Обычно рекомендуется не использовать специальные символы в именах файлов, поскольку некоторые программы могут использовать их в качестве разделителей или для других специальных целей. Кроме того, расширения BAT, COM, EXE и SYS имеют особое значение в MS-DOS и поэтому обычно не должны использоваться с вашими собственными файлами данных. Ниже показаны примеры допустимых и недопустимых имен файлов.

Действительные имена файлов MS-DOS:

Недопустимые имена файлов MS-DOS:

EXP 1.DAT (пробел не допускается)
BEERSLAWDATA (слишком много символов в имени)
CHRM.EXP1 (слишком много символов в расширении)
HG> HE (> недопустимый символ)


2.3 Компоненты операционной системы

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

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


2.4 Загрузка в MS-DOS

Чтобы лучше понять отношения, существующие между различными частями MS-DOS, мы проследим за цепочкой событий, происходящих с момента включения компьютера до тех пор, пока он не будет готов принимать команды от пользователя. Однако прежде чем мы начнем, мы должны знать, как MS-DOS маркирует дисководы на ПК. На рис. 2.2 показано соглашение об именовании дисков, используемое в MS-DOS. Первый дисковод гибких дисков, подключенный к плате контроллера дисковода, помечен как диск A. Первый жесткий диск, подключенный к карте контроллера дисковода, называется дисководом C. Если дисководов два, второй помечен как диск B. Если есть два или более жестких диска, тогда второй жесткий диск называется D, третий — E и т. д.

Рисунок 2.2 Расположение дисковых накопителей на IBM-PC

Загрузка: шаг 1.

При включении ПК вступает в действие набор инструкций, содержащихся в ПЗУ BIOS. Эти инструкции сначала выполняют быструю проверку основного компьютерного оборудования. Эта проверка называется Power-On-Self-Test или POST-тестом. POST определяет, сколько памяти в компьютере, проводит простой тест микросхем оперативной памяти, определяет, подключена ли клавиатура к компьютеру, проверяет карту видеоадаптера, определяет, сколько последовательных портов доступно, и проверяет наличие параллельный порт. Если к компьютеру подключен видеомонитор, результаты POST-теста можно увидеть в левом верхнем углу экрана.

Загрузка: шаг 2.

На этом шаге ROM BIOS проверяет, есть ли системный диск на диске A. Если он не найден, он проверяет, находятся ли системные файлы на диске C. Как только системный диск найден, короткий набор инструкций, называемый загрузочной записью, загружается в оперативную память. Загрузочная запись содержит информацию, необходимую для загрузки обработчика ввода-вывода в ОЗУ.

Обратите внимание, что первым диском, проверенным на наличие операционной системы, является гибкий диск в дисководе A. Это позволяет загрузить компьютер, даже если жесткий диск вышел из строя. Это также позволяет вам загрузить компьютер, используя операционную систему, отличную от той, что установлена ​​на жестком диске. К сожалению, это также дает возможность компьютерному вирусу заразить ваш компьютер. Компьютерный вирус — это компьютерная программа, предназначенная для проникновения в ваш компьютер без вашего ведома. Хотя некоторые компьютерные вирусы довольно безобидны, многие из них могут повредить ваши файлы или полностью стереть содержимое вашего жесткого диска. Многие компьютерные вирусы предназначены для заражения загрузочной записи на гибких дисках. Если вы загрузите компьютер с зараженным диском в дисководе A, вирус распространится на ваш жесткий диск, где он продолжит заражать любую дискету, вставленную в дисковод A. Эти дискеты затем могут заразить жесткие диски других компьютерных систем в которые они используют.

Прежде чем использовать любую дискету на своем компьютере, которая использовалась кем-то другим, вы должны сначала проверить ее на наличие вирусов с помощью любой из имеющихся на рынке коммерческих антивирусных программ (Norton Antivirus, McAfee Antivirus, Dr. Solomon’s и т. д.). .). Рекомендуется постоянно запускать антивирусное программное обеспечение на своем компьютере, чтобы предотвратить заражение вирусами с гибких дисков или программ, загруженных из Интернета.

Загрузка: шаг 3.

Системные файлы, из которых состоит обработчик ввода-вывода (IO.SYS и MSDOS.SYS), загружаются в ОЗУ.После загрузки эти файлы начинают инициализировать все основное оборудование, подключенное к компьютеру, и подготавливают компьютер к обычному дисковому вводу-выводу.

Загрузка: шаг 4.

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

Загрузка: шаг 5.

Загрузка: шаг 6.

Последним шагом в процессе загрузки является проверка системного диска на наличие файла с именем AUTOEXEC.BAT. Файл AUTOEXEC.BAT содержит введенные пользователем команды, которые должны выполняться при запуске компьютера. Например, если вы хотите, чтобы компьютер отображал время и дату при загрузке, команды MS-DOS TIME и DATE можно ввести в файл AUTOEXEC.BAT.

Если файл AUTOEXEC.BAT отсутствует, компьютер завершает процесс загрузки и отображает системную подсказку (C:\>). Эта подсказка сообщает вам, что операционная система загружена и командный процессор ожидает ввода команды. Команды — это специально зарезервированные слова, которые сообщают MS-DOS что-то сделать для вас. Команды обычно вводятся с клавиатуры и могут быть набраны прописными, строчными буквами или их комбинацией. MS-DOS содержит более 100 команд, включая FORMAT, DISKCOPY, DIR и COPY. К счастью, для успешной работы на компьютере вам потребуется знать лишь некоторые из них. Команды MS-DOS более подробно рассматриваются в следующем разделе.

Файл AUTOEXEC.BAT загружен

Рисунок 2.3 представляет собой интерактивную анимацию процесса загрузки MS-DOS. Нажмите кнопки с номерами от 1 до 6, чтобы просмотреть шаги. Нажмите на слова, выделенные красным цветом, чтобы получить дополнительную информацию.

В MS-DOS имена файлов вводятся без учета регистра и могут содержать не более восьми символов, а также дополнительно точку и еще три символа. Emacs знает об этих ограничениях достаточно, чтобы обрабатывать имена файлов, предназначенные для других операционных систем. Например, начальные точки ‘ . ' в именах файлов недействительны в MS-DOS, поэтому Emacs прозрачно преобразует их в знаки подчеркивания ' _ '; таким образом, ваш файл инициализации по умолчанию (см. Файл инициализации) называется _emacs в MS-DOS. Лишние символы до или после точки обычно игнорируются самой MS-DOS; таким образом, если вы посещаете файл LongFileName.EvenLongerExtension, вы молча получите longfile.eve, но Emacs по-прежнему будет отображать длинное имя файла в строке режима. Помимо этого, вы должны указать имена файлов, которые допустимы в MS-DOS; описанное выше прозрачное преобразование работает только с именами файлов, встроенными в Emacs.

Приведенные выше ограничения на имена файлов в MS-DOS делают почти невозможным создание имени файла резервной копии (см. Имена резервных копий) без потери некоторых символов исходного имени файла. Например, имя файла резервной копии для docs.txt будет docs.tx~, даже если используется одна резервная копия.

Если вы запускаете Emacs как приложение DOS под Windows 9X, Windows ME или Windows 2000/XP, вы можете включить поддержку длинных имен файлов. Если вы сделаете это, Emacs не урежет имена файлов и не преобразует их в нижний регистр; вместо этого он использует имена файлов, которые вы указываете, дословно. Чтобы включить поддержку длинных имен файлов, установите для переменной среды LFN значение ‘ y ’ перед запуском Emacs. К сожалению, Windows NT не позволяет программам DOS обращаться к длинным именам файлов, поэтому Emacs, созданный для MS-DOS, будет видеть только их короткие псевдонимы 8+3.

В MS-DOS нет понятия домашнего каталога, поэтому Emacs в MS-DOS делает вид, что каталог, в котором он установлен, является значением переменной среды HOME. То есть, если ваш двоичный файл Emacs, emacs.exe, находится в каталоге c:/utils/emacs/bin, то Emacs действует так, как если бы HOME был установлен на ‘ c:/utils/emacs ’. В частности, именно здесь Emacs ищет файл инициализации _emacs. Имея это в виду, вы можете использовать «~» в именах файлов в качестве псевдонима для домашнего каталога, как в GNU или Unix. Вы также можете установить переменную HOME в среде перед запуском Emacs; его значение переопределит приведенное выше поведение по умолчанию.

Emacs в MS-DOS обрабатывает имя /dev особым образом из-за функции в библиотеках эмулятора DJGPP, которая делает вид, что устройства ввода-вывода имеют имена в этом каталоге. Мы рекомендуем избегать использования реального каталога с именем /dev на любом диске.

Я пишу процедуру ввода/вывода имени файла на языке ассемблера x86-16. Он берет восемь символов (мне не нужно поддерживать длинные имена файлов) с клавиатуры и печатает их в поле ввода текста на экране.

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

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

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

Попробуйте создать папку в Windows и поставьте '?' во имя. Подсказка сообщает вам, какие символы запрещены. Это дает вам начало :).

@Mixxiphoid, это не сработает, потому что набор разрешенных символов в Windows намного больше. Например, +,;[] , пробел и az разрешены в Windows, но не в DOS. Проводник выдает ошибку "Имя файла не может содержать ни один из следующих символов \ / : * ?" | который является лишь подмножеством запрещенных символов в DOS

@phuclv вот почему я сказал: «Это дает вам возможность начать», а также почему это комментарий, а не ответ.

4 ответа 4

Краткое изложение можно найти в Википедии:

А вот что официально сказано в руководстве пользователя MS-DOS 6

Это из PC-DOS 7:

  • Он может содержать не более восьми символов.
  • Он может состоять из букв от A до Z, цифр от 0 до 9 и следующих специальных символов:

  • Имя не может содержать пробелы, запятые, обратную косую черту или точки (кроме точки, которая отделяет имя от расширения).
  • Имя не может быть одним из следующих зарезервированных имен файлов: CLOCK$, CON, AUX, COM1, COM2, COM3, COM4, ​​LPT1, LPT2, LPT3, LPT4, NUL и PRN.
  • Имя не может совпадать с именем другого файла в каталоге.

Первый байт имени не должен быть 0x20 (пробел). Короткие имена или расширения дополняются пробелами. Специальные символы ASCII 0x22 ( " ), 0x2a ( * ), 0x2b ( + ), 0x2c ( , ), 0x2e ( . ), 0x2f ( / ), 0x3a ( : ), 0x3b ( ; ), 0x3c ( ), 0x3d ( = ), 0x3e ( > ), 0x3f ( ? ), 0x5b ( [ ), 0x5c ( \ ), 0x5d ( ] ), 0x7c ( | ) не допускаются.

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

Хотя подавляющее большинство настольных компьютеров по-прежнему используют ОС Microsoft Windows или Macintosh, существует множество других операционных систем (и файловых систем), которые могут взаимодействовать с файлами в различных точках. Сотовые телефоны, ленточные накопители, сетевое оборудование, телевизоры и даже цифровые камеры сегодня поддерживают файловые системы.

Большинство современных файловых систем и операционных систем, в которых они используются, поддерживают гораздо более длинные имена файлов, чем персональные компьютеры, работающие под управлением Microsoft DOS и ранних версий Windows. Эти компьютеры использовали имя файла 8.3, которое позволяло восемь символов слева от точки и три символа справа, чтобы указать компьютеру, какое приложение использовать для его отображения. Однако по-прежнему можно столкнуться с проблемами, связанными с длиной имени файла.

Принятие правильных соглашений об именах файлов может помочь гарантировать, что файлы будут работать с различными операционными системами и форматами дисков, такими как Windows, Linux, Mac OS X и UNIX. Именование файлов также является важным фактором при передаче файлов через Интернет, когда может быть неочевидно, какая компьютерная платформа использовалась при первоначальном создании файлов.

Имена файлов могут быть как описательными, так и не описательными. Описательные имена файлов полезны для небольших, четко определенных проектов с существующими схемами идентификации, которые связывают цифровой объект с исходным материалом. Однако непоследовательное применение терминов или опечатки будут способствовать ошибкам индексации и сортировки. Неописательные имена файлов обычно представляют собой генерируемые системой последовательные числовые строки, такие как цифровой идентификационный номер, и часто связаны с метаданными, хранящимися в другом месте. Неописательные имена файлов часто создаются для крупномасштабных проектов оцифровки и могут использовать цифровой идентификационный номер и числовые последовательности для обозначения пакетных или родительско-дочерних отношений. Преимущество неописательных имен заключается в том, что меньше вероятность повторения или неуникальных имен файлов в структуре данных.

Некоторые приложения и компьютерные скрипты могут не распознавать пробелы или иначе обрабатывать ваши файлы при использовании пробелов. Лучше всего заменять пробелы в именах файлов подчеркиванием (_) или дефисом (-). В приложении B бюллетеня NARA 2015-04 указано, что пробелы в именах файлов запрещены. Веб-среды переводят пробелы и отображают их как «%20». Например, «Имя файла.doc» будет отображаться в URL-адресе как «Файл%20Name.doc», где?. Это изменение может привести к путанице при определении фактического имени файла.

Следует избегать пунктуации, символов или специальных символов (точки, запятые, круглые скобки, амперсанд, звездочки и т. д.).Некоторые из этих символов используются в операционных системах для выполнения определенных задач, например для обозначения уровней папок в продуктах Microsoft и операционных системах Mac. Точки используются для идентификации форматов файлов, таких как .jpg и .doc.

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