Dos вывести файлы с длинной имени

Имена

DOSLFN — работа с длинными именами в DOS

DOSLFN — работа с длинными именами в DOS
Описание Информация
Утилита для поддержки файлов с длинными именами (в том числе с использованием русских букв) в DOS. Используя DN 2.0 или Folder Manager (также и VC v.4.99), можно работать с длинными именами совсем как в Windows.

Автор — Henrik Haftmann (версии до 0.32o-авторской включительно).

Начиная с версии 0.32o разработка перешла к Jason Hood, который выпустил как версию 0.32o-обновлённую так и все последующие версии.

Прилагается (к архиву с версией 0.32b) статья Антиквара (М. Бабичева) от 25 декабря 2003 года.

От автора программы — история и цели её создания и ответы на частозадаваемые вопросы:

CHECKED FUNCTIONAL UNDER:

* MS Windows NT 4 DOS-Box, FAT12 and FAT16 drives
(but you should take NTLFN package, also nice open-source Freeware)
* MS-DOS 6.2
* MS-DOS 7.10, FAT32
* DR-DOS 7, with a magneto-optical drive

THAT DOESN’T YET WORK:

* true Windows NT time format (but a conversion forth and back is built-in).
All Programs I’ve seen don’t use this NT time directly, but call DOSLFN
to convert this NT time to DOS time (e.g. DOS7 COMMAND.COM’s DIR command)
Leads to visible error when NTFSDOS is loaded after DOSLFN
* JOINed drives (but SUBSTed drives work)
* ASSIGNed drives (not tested, because similar to SUBST it should work later)
* Windows 3.11 with enabled 32 bit file access forces DOSLFN to its FallBack
mode for your hard disk(s) because VCACHE.386 prevents direct disk access
via Int25/26 and Int21/AH=32. Please disable the «32 bit file access».
(You can leave the «32 bit disk access» on.)

THAT WILL PROBABLY NEVER WORK:

Я сейчас тут, надолго: http://old-dos.ru/files/file_396.html

#29 Автор: Nika (2013.06.19 10:13, изменений: 2, 2013.06.19 17:46)
Мне *придётся* посмотреть, что это за NTLFN, потому как сильно достал DOS-BOX без LFN в WinXP.
Если удастся сделать, буду доволен.
Размещу здесь, но чуть позже. Нашёл сходу только версию 0.8.

Ведь говорили же про это, видно же, что я страницу делал.

Источник

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

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

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

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

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

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

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

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

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

Формат команды:
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 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 имя-файла

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

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

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

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

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

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

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

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

Примеры:
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 будет уничтожена в начале копирования.

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

Формат команды:
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: – установить текущим диск a:.

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

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

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

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

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

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

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

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

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

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

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

Источник

ProgrammWS

Все для начинающего программиста

Меню сайта

Информация

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

Глава 7. Работа с файлами в программах на ассемблере

Работа с файлами в MS DOS (длинные имена)

В регистрах AL и АН возвращаются главный и младший номера версии MS DOS. При функционировании под Windows эти номера равны 07h и Oah соответственно. Задание значения AL = 01 дает такой же эффект.

Последняя функция возвращает 0 для MS DOS версии 7.0 и выше. Установить факт того, что система поддерживает длинные имена файлов, можно вызовом функции 71a0h прерывания 21п — получить информацию о томе. Если она возвращает ошибку (CF = 1), то текущая файловая система не поддерживает длинных имен файлов. Для вызова этой функции необходимо указать корневой каталог тома, о котором необходимо получить информацию. Вход: АХ = 71A0h; DS:SI — ASCIZ-имя корневого каталога тома, о котором необходимо получить информацию (например, «С:\»); ES:DI — буфер для имени файловой системы; СХ ¦= размер буфера, адрес которого задан в ES: DI (32 байта).
Выход: CF = 0 в случае успеха, следующие регистры установлены: ВХ = флаги файловой системы: 0 — при поиске учитывать регистр букв в именах файлов; 1 — сохранять регистр букв в элементах каталога; 2 — использование символов Unicode в именах каталогов и файлов; 3-13 — резерв (0); 14 — поддержка DOS-функций для длинных имен файлов; 15 — сжатый том; СХ = максимальная длина файловых имен (обычно 255); DX = максимальная длина пути (обычно 260); ES: DI — в буфере по этому адресу ASCIZ-имя файловой системы, например «FAT», «FAT32», «NTFS», «CDFS»; CF = 1 в случае неудачи, при этом АХ = код ошибки или AX=7100h, если функция не поддерживается.
В Windows 95/98 появились дополнительные возможности как самой файловой системы, так и средств по ее управлению. Основное нововведение — поддержка длинных имен файлов. Основа файловой системы та же — таблица разрешения файлов FAT, но любой файл в этой системе имеет два имени — длинное имя и его псевдоним, который соответствует формату 8.3. Данный псевдоним создается системой Windows 95/98 автоматически.
Нужно правильно понимать различие в способах использования длинных имен файлов в приложениях MS DOS и Win32. Приложения MS DOS получают до-ступ к длинным именам файлов с помощью дополнительных функций прерывания 21h. Приложения Windows используют для этого соответствующие функции API.
Длинное имя файла представляет собой ASCIIZ-строку длиной до 255 символов. Система формирует псевдоним для этого имени форматом 8.3 в соответствии со следующим правилом: берутся первые 6 символов длинного имени, после них добавляется символ тильда (-), за тильдой ставится некий порядковый номер. Для первого имени формата 8.3 это 1. Если такой псевдоним уже существует, то порядковый номер очередного псевдонима будет на 1 больше. Расширение псевдонима формируется из первых трех символов расширения длинного имени (если оно существует). Если похожих имен много, то номер в псевдониме может быть двузначным, при этом первая (символьная) часть псевдонима сокращается
до 5 символов, и т. д.
Рассмотренные выше функции MS DOS для работы с файлами и каталогами не поддерживают длинных имен. Для этого система Windows 95/98 предоставляет приложениям MS DOS аналогичные функции, но имеющие другие номера. Впрочем, при внимательном рассмотрении большинства из этих номеров, видно, какой из старых функций они соответствуют. Новые номера состоят из четырех цифр: первые две — 071h, последние две — номер старой функции. Для некоторых функций существуют особенности в их работе. Так, для поиска файлов по-прежнему используются две функции (по новой нумерации — 714eh и 714fh) прерывания 21h. Новые функции теперь возвращают информацию о файлах через специальную структуру WI N32_F INDDATA, адрес которой возвращается в качестве
результата их работы.
При работе с функциями, поддерживающими длинные имена файлов, используются еще две структуры: by handle_f 11 e_information и filetime. Назначение структуры by_hand1e_file_iinformation и работу с ней мы рассмотрим при обсуждении функции MS DOS 71a6h. Структура filetime содержит 64-разрядное значение, которое определяет число 100-наносекундных интервалов, прошедших с 12:00 утра 1 января 1901 года.

Теперь приведем перечень функций прерывания 21h, работающих с файлами, которые имеют длинные имена. Для удобства дальнейшего рассмотрения в следующей таблице приведены соответствующие функции API WIN32 и «старые» функции прерывания 21h.

Источник

Читайте также:  Что означает имя галимжан
Оцените статью
Имя, Названия, Аббревиатуры, Сокращения
Добавить комментарий

Adblock
detector