Как определить короткое имя файла
имена файлов. Полное, короткое, длинное, корректное и некорректное имя файла, его состав, шаблон и маска
Встретив непонятное словосочетание, читатель, как правило, стремится узнать его значение. Эта статья – краткая экскурсия для пользователя по миру неизведанного.
Общее понятие файла
Долговременная (внешняя) память компьютера хранит все данные в виде файлов. Что же это такое? Файл является именованной последовательностью байтов, состоящих, в свою очередь, из битов. У него есть собственное имя и адрес размещения. Первый параметр указывает человек, а второй - задает и надолго запоминает операционная система. Поиск осуществляется по имени файла, поэтому записывать его адрес пользователю ни к чему.
Бывает так, что информацию не получается найти на компьютерном носителе. Но даже пустой файл имеет собственное имя, являющееся важным свойством записанного на жестком диске набора данных. Если оно отсутствует, то такую структуру нельзя назвать хранением.
Файловая система
Каждый носитель информации (гибкий, жесткий или лазерный диск) может содержать огромное ее количество. Файловая система предназначена для хранения данных и организации различных каталогов. В широком смысле она состоит из совокупности всей информации на диске, наборов структур данных, комплекса системных программных средств. Корневой каталог состоит из вложений 2-го уровня, которые, в свою очередь, включают в себя папки 3-го и т. д. Одноуровневая линейная система применяется для дисков с несколькими файлами, многоуровневая иерархическая – для дисков с их большим количеством. Второй присуща древовидная структура.
Назначение файловой системы
Оно заключается в обеспечении удобного интерфейса для человека при обращении к информации, находящейся на диске, и реализации возможности совместного использования объектов многими людьми и осуществляющимися процессами. Подобное устройство структуры позволяет достичь максимального результата при работе с данными.
Типы файлов
Благодаря определенной информации компьютер приблизительно может «понимать», что находится в наборе данных и с помощью какой программы это можно открыть. Расширение является несколькими буквами или цифрами, находящимися после точки в стандартном имени файла. Оно определяет тип данных и соответствующую программу. Например, информация, записанная на диск с расширением mp3, откроется в проигрывателе. Картинка программы присутствует на изображении файла. По этому значку опытный пользователь сразу понимает, где можно применить указанный тип данных. Документ откроется только в программе, предназначенной для текста. Видеофайлы можно прокрутить в проигрывателе. Информация в виде картинок открывается в графическом редакторе. Существует множество различных файлов. Каждый из них имеет значок, указывающий на соответствующую программу.
Файл: имена файлов
Пользователи дают набору данных на диске символьные названия. По ним идентифицируются файлы. При этом обязательно учитываются ограничения системы как на используемые знаки, так и на всю длину словосочетания. Имя файла – это указанное выше название, которое может совпадать у нескольких наборов данных. В этом случае различной будет последовательность идентификаторов каталогов, то есть адрес, по которому находится информация. В одних системах один и тот же объект не может иметь несколько названий, в других подобное ограничение вообще отсутствует. В последнем случае набору данных предоставляется уникальное имя. Это числовой идентификатор, используемый любыми программами операционной системы.
Состав имени файла
Любая информация на диске содержит в себе несколько элементов. Из чего состоит имя файла? Для того чтобы понять это, необходимо иметь перед глазами образец. Имя файла состоит из двух взаимосвязанных частей: названия и расширения, определяющего тип данных. По нему идентифицируется любая информация на носителе.
Полное имя
Можно привести такой пример:
C:\Музыка\Праздник\Мелодия.mp3.
Указанное в образце полное имя файла – это название, состоящее собственно из него самого и пути информации. Последний из указанных элементов является перечнем идентификаторов папок, которые следует последовательно открыть, чтобы дойти с наивысшего уровня до набора данных. Полное имя файла обязательно задается, начиная с корневого каталога, и содержит в себе перечень всех зависимых вложений остальных уровней. Такое название абсолютное. Оно ссылается на информацию относительно корневого каталога независимо от текущей папки. Все элементы имени разделяются символом косой черты (\). Этот знак должен быть указан перед названием корневого каталога.
Короткое имя
Ограничения операционной системы MS-DOS явились причиной возникновения этого термина. В те времена файл мог иметь только 8 символов в имени. Немного позже появилась возможность ставить точку после названия и дописывать 3 знака расширения.
Это выглядело так:
Мелодия.mp3.
Разработчики стали использовать расширения имен для технических потребностей. С их помощью программы «научились» распознавать тип файла. Эта схема записи имени файла была названа системой 8.3 (по количеству символов названия и расширения, и точка между ними). Она имела ряд недостатков: невозможность использования пробела, знаков препинания, иных букв, кроме английского алфавита. Поэтому создать содержательное название было очень трудно. Краткое имя не содержит символа косой черты (\). По такому названию можно сослаться на данные текущего каталога.
Длинное имя
Раньше, когда на дисках хранились тысячи файлов, пользователи неплохо знали, откуда появились на носителе те или иные данные. В настоящее время следить за историей поступающей информации невозможно. Поэтому для данных были сняты жесткие ограничения на длину названия. Из чего состоит имя файла? Теперь название можно записывать русскими буквами, с некоторыми знаками препинания и даже пробелами. Расширение указывается не только тремя символами. Если имя содержит несколько точек, то тип файла указывается после последнего знака препинания.
Впрочем, традиции содержат в себе великую силу, поэтому на компьютерах не встречаются длинные расширения. Трех символов, чтобы указать тип файла, системе достаточно. В самом длинном имени может быть не менее 250 знаков, хотя это, несомненно, кажется излишеством.
Проблемные объекты
Документ с длинным названием может быть неверно прочитан на другом компьютере. Поэтому при пересылке данных следует переименовать файл с помощью латинских букв. Русского алфавита на компьютере получателя может не оказаться, и вместо словосочетаний появится непонятный набор символов. Для организации системы хранения файлов на личном компьютере пользователя используются любые буквы.
Корректное имя файла
Оно может состоять из любых букв в верхнем и нижнем регистре, числа, точки и подчеркивания. Использование пробела не запрещается. Однако не стоит им злоупотреблять, а также ставить в начало названия. В имя можно включить иные символы, за исключением зарезервированных знаков (> < | ? * / \ : "). Расширение отделяется от названия последней правой точкой. Длина имени ограничивается 255 знаками. На самом деле обычному пользователю хватает 20 символов. Операционная система не различает строчные и прописные буквы в имени файла. Это означает, что сохранить в одном каталоге два элемента с одинаковым названием, написанным в разном регистре, не получится. Так может выглядеть пример совпадающих имен: «Текст.doc» и «ТЕКСТ.doc».
Некорректное название файла
Кроме указанных ограничений, существует запрет на использование зарезервированных имен устройств.
Так, PRN является принтером. COM1-COM4 – устройствами, присоединяемыми к последовательным портам 1-4. AUX выполняет ту же функцию, что и COM1. LPT1-LPT4 являются элементами, присоединяемыми к параллельным портам 1-4 (принтерам), CON (consol) при вводе – клавиатурой, при выводе – экраном, NUL – «пустым» устройством. При попытке пользователя указать зарезервированное название система выдает ошибку. Предупреждение отображается и в том случае, когда используются запрещенные символы. Оно указывает на недопустимое имя файла. Неверно записанная информация о наборе данных не сохраняется, а принимает прежнее значение.
Шаблон названия файла
Командные оболочки операционных систем, а также всевозможные языки программирования позволяют пользователю искать в именах и каталогах определенные группы. Все файлы проверяются на предмет соответствия заданному шаблону, если какой-то из них совпадает с эталоном, то он учитывается, если нет – то пропускается.
Для чего нужен такой образец? Часто требуется осуществить одно и то же действие с целой группой файлов. Это занимает меньше времени, чем обращение к каждому документу по отдельности. Шаблон имени файла позволяет выделить группу, соответствующую заданным требованиям, из общей массы. Он используется даже при поиске данных.
Особые символы
Шаблон имени файла задается с помощью специальных знаков:
- Звездочка является обозначением любой группы символов. Их количество не имеет значения. К примеру, одна звездочка – это шаблон, которому соответствует вся информация в каталоге. Благодаря команде *.mp3 можно изменить любой однотипный файл. Имена файлов, начинающиеся на my и оканчивающиеся на .txt, выделяются с помощью шаблона my*.txt. Образец *2014* определяет все существующие на компьютере объекты, названия которых содержат в себе группу символов 2014.
- Знак вопроса является обозначением любого одиночного символа. К примеру, под образец music.??? подойдут начинающиеся на указанное слово данные, имеющие расширение из трех английских букв. В шаблоне na?e.txt вместо стандартного знака вопроса может быть любой символ.
Иные команды
Предусмотрены и другие правила составления образцов. Благодаря включению в команду квадратных скобок ([ ]) с перечнем возможных значений можно сделать поиск более гибким. Если требуется найти какие-либо файлы, начинающиеся с буквы t, не учитывая регистр, то шаблон следует записать так: [tT]*. При поиске данных с именами, идущими по алфавиту, можно создать диапазон. Подобный шаблон выглядит так: [k-zK-Z]?.jpg. Системой будут найдены файлы с указанным типом расширения, имена которых состоят из двух знаков. Причем первая буква k, l, y или z - без учета регистра.
Значение командной оболочки
В одном образце может быть использовано несколько специальных символов. Шаблоны сочетаются со многими командами: просмотром каталогов, копированием файлов, поиском и др. Однако действия осуществляются не с образцом, а с подошедшими под него данными. Нужные объекты отбираются командной оболочкой.
Расширение шаблона является процессом замены символа * на стройную последовательность имен файлов.
Отдельные команды никогда не смогут найти специальный знак в перечне своих параметров. Так что же отвечает за поиск данных? Командная оболочка производит необходимое расширение шаблона таким образом, что будут перечислены все совпадающие с образцом названия файлов.
Маски имен файлов
Они используются в групповых операциях с данными. Маска является последовательностью допустимых в названиях файлов символов, в которых также могут попадаться знак вопроса и звездочка. С ее помощью можно удалить любой имеющийся на компьютере временный файл. Имена файлов в команде могут содержать различные обозначения. Знак вопроса является отметкой одного произвольного символа, а звездочка – целой последовательности. К примеру, воспользовавшись командой rm *mp3, можно удалить все файлы, заканчивающиеся на этот фрагмент. Если потребуется стереть все данные в каталоге, то следует задать команду rm *. Почти так же работает команда с вопросительным знаком, меняется один символ. Маски имен можно использовать и с каталогами.
Проблемное копирование
Переход к длинным именам порождает проблемы совместимости с ранее созданными программами, использующими небольшие словосочетания. Для того чтобы приложения могли открывать информацию в соответствии с принятой ранее структурой хранения, файловая система обязана уметь предоставлять уникальные короткие псевдонимы данным, имеющим сложные названия. Новые операционные системы поддерживают длинные имена. Но иногда пользователь сталкивается с неожиданными проблемами. Копирование файлов с длинными именами может вызвать определенные трудности.
В этом случае не поможет даже создание ярлыка. Обычно от пользователя требуется только переименовать файл и повторить попытку. Как вариант, можно заархивировать данные, скопировать и распаковать. Но что делать, если в сотом подкаталоге, в котором находится требуемый файл, имена файлов такие длинные из-за прописанного в них пути?
Запасные варианты
Если вышеперечисленные методы не подошли, следует просто подключить сетевой диск с помощью щелчка правой кнопки мыши на изображении компьютера и выбора подключения в появившемся меню. При этом необходимо указать букву для желаемого носителя и путь файла.
В крайнем случае пользователь может воспользоваться программой для копирования длинных имен FAR 2.0 и даже отключить Recycle Bin.
Как Windows определяет / обрабатывает короткое имя DOS любого данного файла?
у меня есть папка с этими файлами:
alongfilename1.txt <--- created first alongfilename3.txt <--- created second
когда я запускаю DIR / x в командной строке я вижу эти короткие имена присвоены:
ALONGF~1.TXT alongfilename1.txt ALONGF~2.TXT alongfilename3.txt
теперь, если я добавлю еще один файл:
alongfilename1.txt alongfilename2.txt <--- created third alongfilename3.txt
Я вижу так:
ALONGF~1.TXT alongfilename1.txt ALONGF~3.TXT alongfilename2.txt ALONGF~2.TXT alongfilename3.txt
хорошо. Кажется, он назначает "~ # " в соответствии с датой/временем, когда я создал файл. Правильно ли это?
теперь, если я удалю " alongfilename1.txt", два других файла держите их короткими имена.
ALONGF~3.TXT alongfilename2.txt ALONGF~2.TXT alongfilename3.txt
когда этот ID (в данном случае ~1) будет выпущен для использования в другом shortname. Будет ли это когда-нибудь?
кроме того, возможно ли, что файл на моей машине имеет короткое имя X, тогда как тот же файл имеет короткое имя Y на другой машине? Я особенно обеспокоен установками, чьи пользовательские действия используют короткие имена DOS.
Спасибо, ребята.
11
автор: Matt Refghi
5 ответов
короткое имя файла создается вместе с файлом. Алгоритм работает следующим образом (обычно, но см. moocha ответ):
counter = 1 stripped_filename = strip_dots(strip_non_ascii_characters(filename)) shortfn = first_6_characters(stripped_filename) while (file_exists(shortfn + "~" + counter + "." + extension)) { increment counter by 1 if more digits are added to counter, shorten shortfn by 1 /* e.g. if counter comes to 9 and shortf~9.txt is taken. try short~10.txt next */ }
это означает, что после создания файла он сохранит свое короткое имя, пока не будет удален.
Как только файл будет удален, короткое имя может быть использовано снова.
Если вы переместите файл в другое место, он может получить новое короткое имя (например, вы двигаетесь c:\somefilewithlongname.txt ("c:\somefi~1.тхт") в d:\stuff\somefilewithlongname.txt, если есть d:\stuff\somefileelse - ... txt ("d:\stuff\somefi~1.txt"), короткое имя перемещаемого файла будет somefi~2.формат txt.) Кажется, что короткое имя является постоянным только в данном каталоге на данной машине.
So: короткие имена файлов будут генерироваться файловой системой, как правило, описанным выше методом. Лучше предположить, что короткие имена файлов не являются постоянными, так как c:\longfi~1.txt на одной машине может быть "c:\longfilename - ... формат txt", в то время как на другом это может быть "c:\longfish_story.тхт"; кроме того, когда файл удаляется, короткое имя сразу же.
Если бы я был тобой, я бы никогда полагайтесь на любую версию любого драйвера файловой системы (будь то Microsoft, будь то другая ОС), чтобы быть последовательным в алгоритме, который он использует для создания коротких имен файлов. Точное поведение драйверов Microsoft Fastfat и NTFS не "официально" задокументировано (за исключением несколько обзоров высокого уровня), поэтому не является частью контракта API. Что работает сегодня может не работать завтра, если вы обновите драйвер.
кроме того, есть абсолютно не требуется, чтобы короткие имена содержали символы Тильды-см., например,этот пост Раймонда Чена.
есть сокровищница информации, которую можно найти по этой теме в блогах MSDN - например:
кроме того, не полагайтесь на подошве наличие буквенно-цифровые символы. Посмотри драйвер Linux VFAT что говорит, например, что любое сочетание прописных букв, цифр и следующих символов: $ % ' ` - @ { } ~ ! # ( ) & _ ^. NTFS будет работать в режиме совместимости с этим...
8
автор: Mihai Limbășan
Я считаю, что MSDOS хранит связь между длинным и коротким именем в файле каталога.
Это не зависит от даты/времени.
при перемещении файлов в новый каталог... это сбросит algo, упомянутый Piskvor, снова применяется
в новом каталоге (после перемещения) вы получите:
ALONGF~1.TXT alongfilename1.txt ALONGF~2.TXT alongfilename2.txt ALONGF~3.TXT alongfilename3.txt
хотя alongfilename2.txt изначально был создан третьим.
этой ссылке говорит, как NTFS это делает. Я бы предположил, что это все та же идея в более поздней версии.
в Windows 2000 используются как FAT, так и NTFS в набор символов Unicode для их имена, содержащие несколько запрещенных символы, которые MS-DOS не может прочитать. К создание короткого MS-DOS-читаемого файла имя, Windows 2000 удаляет все эти персонажи из LFN и удаляет все пробелы. Потому что MS-DOS-читаемое имя файла может иметь только один период, Windows 2000 также удаляет все дополнительные периоды из имя файла. Далее Windows 2000 при необходимости усекает имя файла, к шести символам добавляется Тильда ( ~ ) и номер. Например, каждый не дубликат имя файла добавляется с ~1 . Конец повторяющихся имен файлов с ~2, затем ~3 и так далее. После имена файлов обрезаются, файл Расширения имен усекаются до трех или меньше персонажей. Наконец, когда отображение имен файлов по команде линия, Windows 2000 переводит все символы в имени файла и расширение в верхний регистр.
0
автор: The Archetypal Paul
когда файлы предоставляются сетевым сервером, на котором выполняется Samba, короткие имена генерируются сервером, и они не следуют предсказуемому шаблону.
поэтому небезопасно предполагать, что вы можете предсказать форму короткого имени.
G:\>dir /x *.txt Directory of G:\ 08/25/2009 12:34 PM 1,848 S2XYYV~1.TXT strace_output.txt 03/01/2010 05:32 PM 325,428 TEY7IH~O.TXT tomcat-dump-march-1.txt 03/11/2010 12:01 AM 5,811 DI356A~S.TXT ddmget-output.txt 01/23/2009 01:03 PM 313,880 DLA94Q~K.TXT ddm-log-fn.txt 04/20/2010 07:42 PM 7,491 A50QZP~A.TXT april-20-2010.txt
0
автор: Kevin Panko
отобразить список папок и файлов в каталоге.
Команда DIR позволяет отобразить список файлов и подкаталогов для указанного каталога. Список может быть отсортирован по множеству критериев, задаваемых параметрами командной строки.Формат командной строки:
DIR [диск:][путь][имя_файла] [/A[[:]атрибуты]] [/B] [/C] [/D] [/L] [/N] [/O[[:]порядок]] [/P] [/Q] [/S] /T[[:]время]] [/W] [/X] [/4]
Параметры командной строки:
[диск:][путь][имя_файла] - Диск, каталог и/или файлы, которые следует включить в список.
/A - Вывод файлов с указанными атрибутами:
D Каталоги
R Доступные только для чтения
H Скрытые файлы
A Файлы для архивирования
S Системные файлы
Префикс "-" имеет значение НЕ
-S НЕ системные файлы.
/B - Вывод только имен файлов.
/C - Применение разделителя групп разрядов для вывода размеров файлов (по умолчанию). Для отключения этого режима служит ключ /-C.
/D - Вывод списка в несколько столбцов с сортировкой по столбцам.
/L - Использование нижнего регистра для имен файлов.
/N - Отображение имен файлов в крайнем правом столбце.
/O - Сортировка списка отображаемых файлов.
Порядок: N По имени (алфавитная), S По размеру (сперва меньшие), E По расширению (алфавитная), D По дате (сперва более старые), G Начать список с каталогов. Префикс "-" имеет значение НЕ
/P - Пауза после заполнения каждого экрана.
/Q - Вывод сведений о владельце файла.
/R - Отображение альтернативных потоков файлов.
/S - Вывод списка файлов из указанного каталога и его подкаталогов.
/T - Выбор поля времени для отображения и сортировки
время:
C Создание (время создания - Create )
A Последнее использование (последний доступ - Accsess )
W Последнее изменение (последняя модификация Write)
/W - Вывод списка в несколько столбцов.
/X - Отображение коротких имен для файлов, чьи имена не соответствуют стандарту 8.3. Формат аналогичен выводу с ключом /N, но короткие имена файлов выводятся слева от длинных. Если короткого имени у файла нет, вместо него выводятся пробелы.
/4 - Вывод номера года в четырехзначном формате
Стандартный набор ключей можно записать в переменную среды DIRCMD. Для отмены их действия введите в команде те же ключи с префиксом "-", например: /-W.
Примеры использования команды DIR:
DIR /? - отобразить справку по использованию команды.
DIR - отобразить список файлов и подкаталогов текущего каталога.
DIR /P - отобразить список файлов и подкаталогов текущего каталога в режиме постраничного вывода на экран. При выполнении команды DIR с данным ключом, после заполнения экрана, вывод информации приостанавливается до нажатия какой-либо клавиши. Аналогично выполнению команды DIR в цепочке с командой MORE - DIR | MORE
DIR > C:\listdir.txt - отобразить список файлов и подкаталогов текущего каталога с выводом результатов в текстовый файл .
DIR C:\WINDOWS\*.dll - отобразить список файлов с расширением dll из каталога C:\WINDOWS
DIR C:\WINDOWS\SYSTEM32\X*.* - отобразить список файлов из каталога C:\WINDOWS\SYSTEM32, имена которых начинаются с символа X
DIR C:\WINDOWS\SYSTEM32\*Y.EXE - отобразить список файлов с расширением .exe из каталога C:\WINDOWS\SYSTEM32, имена которых заканчиваются символом Y
DIR C:\WINDOWS\system32\???t.* - отобразить список файлов, имя которых содержит 3 любых символа ( ??? ) и символ t
DIR C:\WINDOWS\SYSTEM32\*.* /A:H - отобразить список скрытых файлов и подкаталогов из каталога C:\WINDOWS\SYSTEM32
DIR C:\WINDOWS\SYSTEM32\*.* /A:H - отобразить список скрытых файлов и подкаталогов из каталога C:\WINDOWS\SYSTEM32
DIR C:\ /A:-AH - отобразить список скрытых ( H ) файлов и подкаталогов из корневого каталога диска C: без атрибута "Архивный" ( -A )
DIR C: /A:DH - отобразить список скрытых каталогов в корне диска C:
dir c:\ /a:DH /d - тоже самое, но с отображением информации в несколько столбцов, с сортировкой имен в алфавитном порядке. Пример результата:
Том в устройстве C имеет метку C
Серийный номер тома: 1884-ABEC
Содержимое папки c:\
[Config.Msi]               [System Volume Information]
[Fix-It]                        [VCOM]
[RECYCLER]
0 файлов 0 байт
5 папок 103 593 283 584 байт свободно
Та же информация, но параметр /D не задан:
Том в устройстве C имеет метку C
Серийный номер тома: 1884-ABEC
Содержимое папки c:\
16.01.2013 11:22 Config.Msi
26.04.2012 09:05 Fix-It
25.07.2011 11:31 RECYCLER
03.08.2011 16:06 System Volume Information
24.04.2008 17:36 VCOM
0 файлов 0 байт
5 папок 103 593 283 584 байт свободно
Для сортировки имен отображаемых файлов и каталогов используется параметр /O
/O:N - сортировать по имени в алфавитном порядке( Name ) С использованием знака " - " - сортировать в обратном порядке.
/O:S - сортировать по размеру в возрастающем порядке( Size ). Со знаком " - " - сортировать в порядке убывания размеров файлов.
/O:E - сортировать по расширению имени файла ( Extension ) /O:-E - в обратном порядке
/O:D - сортировать по дате и времени модификации файла или каталога.
/O:-D - в обратном порядке ( от новых к старым )
/O:G - сначала отображать список каталогов, затем - файлов.
Использование параметра /T позволяет отсортировать списки файлов и каталогов в соответствии с отметками времени ( Time Stamp ), хранящимися в файловой системе Windows для каждого из них:
/T:C - сортировать по времени создания ( Creation )
/T:A - сортировать по времени доступа ( Access )
/T:W - сортировать по времени модификации, последней операции записи ( Written ). Этот параметр используется по умолчанию.
dir %temp%\*.* /a:H /TC - отобразить все скрытые файлы и папки в каталоге временных файлов, заданном переменной среды окружения TEMP, и отсортировать их в порядке возрастания даты создания.
dir %SystemRoot%\system32\*.exe /b /a:H /TA - отобразить список скрытых исполняемых файлов в системном каталоге и отсортировать их по времени последнего доступа.
DIR C:\ /X - отобразить список файлов и каталогов в корневом каталоге диска C: с отображением коротких имен для файлов, чьи имена не соответствуют стандарту 8.3. Стандарт 8.3 означает, что для имени файла отводится не более 8 символов, а для расширения - не более 3-х. Этот стандарт использовался в устаревших операционных системах семейства MS-DOS, не поддерживавших длинные имена файлов. Длинные имена преобразуются в короткие с использованием первых шести символов и конструкции ~N, где N - это порядковый номер для имен, имеющих одинаковое начало и разное окончание после 8-го символа:
28.01.2013 16:48                              DOCUMENT
28.01.2013 16:41 DOCUME~2     DOCUMENTS
15.07.2011 12:00 DOCUME~1      Documents and Settings
В примере отображается список из 3-х каталогов:
DOCUMENT - имя каталога содержит 8 символов и не преобразуется в стандарт 8.3
DOCUMENTS - имя содержит 9 символов и в формате 8.3 представлено как DOCUME~2
Documents and Settings - представлено как DOCUME~1 поскольку длинное имя файла преобразуется в стандарт 8.3 с учетом строчных и заглавных символов, а коды строчных букв следуют в таблице символов перед кодами заглавных.
Параметры командной строки команды DIR можно определить в переменной окружения DIRCMD.
SET DIRCMD=/O:N /B /P - определить параметры /O, /B и /P.
После этого, выполнение команды DIR без параметров будет аналогично выполнению команды:
DIR /O:N /B /P
Если в командной строке команды DIR задан параметр, определенный в переменной DIRCMD, то его значение более приоритетно, и будет использоваться в процессе выполнения данной команды.
Для расширения возможностей команды DIR можно воспользоваться объединением ее в цепочку с командой поиска текстовой информации FIND
DIR C:\*.* /s | FIND "28.01.2013" - отобразить список всех файлов и каталогов диска C: имеющих отметку времени "28 января 2013 г."
Для обработки отдельных полей из строк вывода результатов команды DIR можно воспользоваться командой FOR
Параметр командной строки /R применим только в Windows 7 и более поздних версиях. Он используется для отображения альтернативных потоков файлов в файловой системе NTFS.
dir /r - отобразить список файлов текущего каталога с именами альтернативных потоков.
dir /r proxylist.zip - отобразить список альтернативных потоков файла proxylist.zip. Пример отображаемой информации:
455 881 proxylist.zip
          26 proxylist.zip:$CmdZnID:$DATA
          26 proxylist.zip:Zone.Identifier:$DATA
Альтернативные потоки файлов используются для хранения данных, не связанных с содержимым основного потока (собственно содержимого файла) и на практике применяются для привязки дополнительной информации к этому содержимому. Так, например, многие антивирусы хранят в альтернативных потоках контрольные суммы проверенных на заражение файлов, а система безопасности использует их для определения факта скачивания файлов по сети. Подробнее об альтернативных потоках - в статье Альтернативные потоки NTFS, или как Windows определяет, что файл был загружен из Интернет
Весь список команд CMD WindowsПреобразование длинного имени файла в короткое имя файла (8.3) с помощью cmd.исполняемый
Я пытаюсь преобразовать длинное имя файла в короткое имя файла (8.3) в Windows.
пакетный файл с аргументом командной строки работает по назначению:
короче.летучая мышь!--15-->:
@echo OFF echo %~s1
вызов short.bat C:\Documents and Settings\User\NTUSER.DAT
возвращает C:\DOCUM~1\USER\NTUSER.DAT
cmd.exe
со всей командой из сценария ruby. Как я могу это сделать? в качестве промежуточного шага я пытался hardcode путь в пакетном файле, но это не работает:
short1.летучая мышь!--15-->:
@echo OFF SET filename="C:\Documents and Settings\User\NTUSER.DAT" echo %filename% echo %~sfilename%
echo %filename%
работает, а echo %~sfilename%
выдает следующую ошибку:
The following usage of the path operator in batch-parameter substitution is invalid: %~sfilename% For valid formats type CALL /? or FOR /?
если short1.летучая мышь!--15--> работает, как я могу преобразовать это в один-лайнер, который можно назвать cmd.exe \c ...
?
есть еще один вопрос (как получить путь DOS вместо пути Windows), однако этот человек специально просит путь текущего каталога.
2 ответов
cmd /c for %A in ("C:\Documents and Settings\User\NTUSER.DAT") do @echo %~sA
замените имя файла.txt в имя файла, которое вы хотите преобразовать в 8.3
dir /x filename.txt
затем вам придется разделить результат с пробелами в качестве разделителя (\s в регулярном выражении). Тогда значение с ~ - это ваше короткое имя файла. Если ваше имя файла короткое для начала, то вы не найдете строку, содержащую ~.
5
автор: Robert Louis Murphy
Длинные и короткие имена файлов. Реестр Windows
Читайте также
Полные имена файлов
Полные имена файлов Полное имя файла можно получить, используя функцию GetFullPathName. Функция GetShortPathName возвращает имя файла в формате DOS 8.3, в предположении, что данный том поддерживает короткие имена файлов.В NT 5.1 была введена функция SetFileShortName, позволяющая изменить
Короткие задержки
Короткие задержки Иногда коду ядра (и снопа обычно драйверам) необходимы задержки на очень короткие интервалы времени (короче, чем период системного таймера), причем интервал должен отслеживаться с достаточно высокой точностью. Это часто необходимо для синхронизации с
Имена файлов
Имена файлов Как мы уже видели, ни метаданные, ни тем более блоки хранения данных, не содержат имени файла. Имя файла хранится в файлах специального типа — каталогах. Такой подход позволяет любому файлу, т. е. фактическим данным, иметь теоретически неограниченное число
14.12. Короткие советы
14.12. Короткие советы Мы проанализировали достаточно много аспектов создания безопасной системы, но есть некоторые общие рекомендации, которые подытоживают рассмотренный в этой книге материал. Поэтому напоследок я собрал короткие советы, которые пригодятся вам в
Длинные линии
Длинные линии Некоторые телефонные линии используют медные кабели диаметром 104 мм, которые состоят из 18 изолированных жил. Измеряемые параметры даны для линии длиной в одну милю: R = 10,15 Ом;L = 3,93 мГн;G = 0,29 мкс;С = 0,00797мкФ.Длина линии 200 миль. Рассмотрим, как уменьшаются ток и
Длинные строки
Длинные строки Дискуссию о быстродействии алгоритмов нельзя считать законченной без краткого рассмотрения длинных строк. С ними связан целый ряд проблем, касающихся эффективности. Длинные строки появились в Delphi 2 и присутствовали во всех последующих компиляторах Delphi и
Пример A-4. blank-rename: переименование файлов, чьи имена содержат пробелы
Пример A-4. blank-rename: переименование файлов, чьи имена содержат пробелы Это даже более простая версия предыдущего примера.#! /bin/bash# blank-rename.sh## Заменяет пробелы символом подчеркивания в именах файлов в текущем каталоге.ONE=1 # единственное или множественное число (см.
5.2. Имена файлов в Linux
5.2. Имена файлов в Linux По сравнению с Windows в Linux несколько другие правила построения имен файлов, вам придется с этим смириться. Начнем с того, что в Linux нет такого понятия, как расширение имени файла. В Windows, например, для файла Document1.doc именем файла является фрагмент Document 1, а doc
Длинные и короткие имена файлов
Подобно HPFS, NTFS поддерживает имена файла до 255 символов. Имена файла NTFS используют набор символов Unicode с 16 битами, однако вопрос доступа из MS-DOS решен. NTFS автоматически генерирует поддерживаемое MS-DOS имя (восемь плюс три символа) для каждого файла. Таким образом, файлы NTFS могут использоваться через сеть операционными системами MS-DOS и OS/2. Это особенно важно для файловых серверов организации, которая использует персональные компьютеры с двумя или всеми тремя этими операционными системами.
Создавая имена файла «восемь плюс три», NTFS также позволяет приложениям MS-DOS и Windows З.х работать с файлами, имеющими длинные имена NTFS. Кроме того, при сохранении файла приложениями MS-DOS или Windows З.х на томе NTFS сохраняются и имя файла «восемь плюс три» и длинное имя NTFS.
Внимание! При сохранении файла приложениями MS-DOS или Windows З.х на томе NTFS, если приложение сохраняет временный файл, удаляет первоначальный файл и переименовывает временный файл с первоначальным именем, длинное имя файла теряется. Любой уникальный набор разрешений файла также теряется. Разрешения передаются заново из родительского каталога.
Если длинное имя файла или каталога на томе NTFS содержит пробелы, следует убедиться, что путь записан в кавычках. Это справедливо при определении пути в Program Manager для значков приложений. Например, предположим, что Word for Windows установлен в D:\WORD FOR WINDOWS. Командная строка Program Item Properties должна быть установлена в D:\WORD FOR WINDOWS\WINWORD.EXE. При отсутстеии кавычек будет отображено сообщение об ошибке «The path D:\Word is invalid» (Путь D:\Word недопустим).
Ниже приведен пример легальной записи командной строки, содержащей пробелы:
move ”c:\This month's reports\*.*” “c:\Last mont's reports”
Внимание! Необходимо внимательно подходить к использованию групповых символов типа * и ? вместе с командами del и copy. При выполнении этих команд NTFS работает и с длинным и с коротким именем файла; таким образом могут быть удалены или скопированы лишние файлы.
Для копирования или перемещения файлов с чувствительными к регистру длинными именами, самым надежным способом является выбор файлов с использованием мыши в File Manager. Этот способ позволяет однозначно определить файлы для выполнения операций над ними.
При работе с Windows 3.5 файлы, созданные или переименованные в разделах FAT, могут иметь связанные длинные имена. Правила управления длинными именами файла на томе NTFS также относятся к длинным именам файла на разделах FAT; отличие заключается в том, что имена файла на FAT не могут содержать расширенные символы.
Генерация короткого имени файла
Поскольку NTFS использует набор символов Unicode для имен файлов, существует возможность задействования нескольких «запрещенных» символов, которые MS-DOS не может читать в имени файла. Для генерации короткого имени файла в стиле MS-DOS, NTFS удаляет все эти символы и любые пробелы из длинного имени файла. Так как имя файла в MS-DOS может иметь только одну точку, NTFS также удаляет все дополнительные точки из имени файла. Далее, в случае необходимости NTFS усекает имя файла до шести символов и добавляет тильду (~) и номер. Например, к каждому недублированному имени файла добавляется ~1. Повторяющиеся имена файлов заканчиваются символами ~2, ~3 и т. д. Расширение имени файла усекается до трех или меньшего количества символов. Наконец, при отображении имени файла в командной строке NTFS транслирует все символы в имени файла и расширении к верхнему регистру (File Manager отображает эти имена файла в нижнем регистре).
Windows 3.5 использует несколько другой метод для создания коротких имен файлов для случая, когда имеется пять или более файлов, которые привели бы к двойным коротким именам файла. Для пятого и последующих файлов Windows использует только первые два символа от длинного имени файла и далее специальной математической операцией (функция от длинного имени) генерирует следующие уникальные четыре символа короткого имени файла; после этого к результату добавляется ~5 (или другой номер в случае необходимости избежания двойного имени файла). Такой метод обеспечивает в основном повышенную эффективность для случая, когда Windows должна создавать короткие имена файлов для большого количества файлов с похожими длинными именами. Windows использует этот метод создания коротких имен для томов FAT и NTFS.
По умолчанию, Windows 3.5 поддерживает имена файлов в формате MS-DOS на всех томах NTFS. Для повышения эффективности работы на томах с большим количеством длинных похожих имен можно запретить эту возможность для всех томов. Для отключения поддержки коротких имен файлов на всех томах NTFS необходимо установить в 1 значение NTfsDisable8dot3NameCreation следующего элемента реестра:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem
Windows не генерирует коротких имен для файлов, созданных приложениями POSIX в разделе NTFS. Это означает, что приложения MS-DOS и Windows З.х не смогут работать с подобными именами, если эти имена не удовлетворяют условию «восемь плюс три». В случае необходимости работы из приложений MS-DOS или Windows с файлами, которые созданы приложениями POSIX, следует убедиться, что использованы стандартные имена MS-DOS.
Соглашения об именах файлов - HURIDOCS
Мы все были в курсе: вас просят просмотреть самый последний черновик документа. Вы входите в общие папки своей организации и ищете файл, но не можете сказать, какую версию документа вам следует просматривать:
- Grant-offer-henry-edits-finalfinal.doc
- Grant-offer-final-Julia_edits_v4.doc
- FINAL_proposal_Aug2016_kct-updated.doc
Это всего лишь один небольшой пример слабости управления информацией, которая может вызвать множество ненужного разочарования.Чем более организовано управление информацией, будь то документы, электронные таблицы или мультимедиа, тем эффективнее и действеннее наша правозащитная деятельность. Вот почему так важны соглашения об именах файлов.
Соглашение об именах файлов - это систематический метод именования файлов, упрощающий их поиск в дальнейшем. Последовательное и описательное соглашение позволит вам:
- Узнавайте содержимое файла, не открывая его
- Найдите и идентифицируйте файлы, даже если их больше нет в исходной папке
- Легко просматривайте длинные списки файлов для инвентаризации или проверяйте, отсутствуют ли какие-либо
- Упростите управление файлами, даже если все они хранятся в одной центральной папке или каталоге
Разработка соглашения об именах файлов
Имя файла может состоять из ряда описательных элементов, таких как ключевые слова, даты, идентификационные числа и т. Д.Чтобы разработать соглашение об именах файлов, вы должны решить, какие типы элементов следует включать и в каком порядке.
Например, соглашение об именах файлов может включать следующие компоненты в следующем порядке: [ГГММДД] _ [Проект] _ [Местоположение] _ [Событие] .xxx
Примеры имен файлов, основанные на этом примере соглашения, могут быть:
- 160301_HRC_Geneva_launch.jpg
- 151208_Uwazi_Madrid_inception.pdf
- 160219_OHCHR_Tunis_meeting.jpg
Ниже приведены некоторые рекомендации по созданию собственного соглашения об именах файлов.
1. Подумайте, как вы хотите сортировать и извлекать файлы
Как вы хотите сортировать и извлекать файлы? Ответ на этот вопрос поможет определить некоторые важные компоненты вашего соглашения об именах файлов. Помните, что сортировка файлов выполняется слева направо.
- Начните имя файла с наиболее важного параметра. Это позволит вам организовать файлы в алфавитном порядке или в хронологическом порядке по этому параметру без необходимости выполнять поиск.Например, если вашим основным методом доступа к файлу судебного дела является его номер, то он должен быть первым элементом в вашем соглашении об именах файлов: когда вы сортируете свои документы в файловом менеджере, вы сначала увидите, что они упорядочены по номеру дела.
- Для дат используйте ГГГГ-ММ-ДД (или ГГГГММДД, или ГГММДД, или ГГММ). Чтобы файлы были отсортированы в правильном хронологическом порядке, сначала должны отображаться наиболее важные компоненты даты и времени, а затем наименее значимые компоненты.Если все другие слова в имени файла совпадают, это соглашение позволит нам сортировать по году, затем по месяцу, затем по дате. В некоторых соглашениях дата стоит перед каждым именем файла, потому что это наиболее логичный способ для их команды извлекать файлы.
- Отметить разные версии одного и того же файла . Если файл будет поддерживаться с течением времени, используйте соглашения v1, v2, v3 и т. Д., Чтобы обозначить его место в последовательности версий. Вы можете отделить «v» от типа содержимого подчеркиванием («_») или дефисом («-»).По мере создания и обновления версий измените версию, но оставьте имя файла прежним.
- Не забывайте нули, если вам нужны порядковые номера . Если будет более девяти файлов с одинаковыми именами (например, в случае управления версиями или в серии фотографий), убедитесь, что вы задали такой стиль номеров: 01, 02, 03,… Это позволит отсортировать их в хронологическом порядке. То же самое, если файлов больше 99, это должно быть 001,… 060,… 099,… 100
2.Используйте соответствующие компоненты в именах файлов для предоставления описания и контекста
Имена файлов должны содержать основные элементы каждого файла, в зависимости от того, что подходит для ваших нужд поиска. Имена файлов должны прослужить дольше человека, первоначально назвавшего файл, поэтому подумайте, какая информация будет полезна кому-то через 15 лет. Потенциальные компоненты для правозащитных организаций включают:
- Название организации
- Программа или тема
- Тип документа
- Географический охват
- Дата или период
- Язык документа
- Тип контента, например «счет-фактура» или «отчет»
Имейте в виду, что вы скорее всего, захочет использовать согласованные сокращения для этих компонентов, чтобы имена файлов были короткими.
3. Сохраняйте разумную длину имени файла
Длинные имена файлов плохо работают с некоторыми типами программного обеспечения, поэтому лучше использовать короткие. Для этого вы можете рассмотреть:
- Сокращение года до двух чисел вместо четырех
- Сокращение компонентов имени файла (например, используйте «inv» вместо «invoice» или «fr» вместо «francais»)
- Использование как можно меньшего количества слов для передачи удостоверение документа