Как добавить символы к имени файла
Мне нужно создать файл с именем файла, например :>? , возможно ли это как-то? Windows это останавливает.
У каждого ограниченного символа есть другое значение или использование, поэтому, если имя файла или папки действительно содержит их, это может привести к возникновению Bad Things ™. Не возражаете, если я спрошу, почему вы пытаетесь это сделать? @ DMA57361, когда я делал это несколько лет назад, я проверял некоторые вещи. Если я правильно помню, результаты были забавными, но я не помню ничего особенно плохого . Самое большее, я просто не мог получить к ним доступ. (Хотя я полагаю, что это может вызвать проблемы, если, например, у вас есть файлы с именами a , b и вы a>b type a>b @moorecast, когда я делал это несколько лет назад, я создавал файлы / каталоги с фиктивными именами, а затем использовал редактор дисков, чтобы вручную устанавливать имена в записях каталога. Конечно, это было на томе FAT32, так что это было очень легко. Это было бы немного сложнее на томе NTFS. Mind if I ask why you are trying to do this? Может быть, реализовать (плохую) защиту от копирования ? «Мне нужно создать файл с именем файла, например:>?» - Сомневаюсь, что тебе нужно это сделать.К сожалению, вы не можете использовать зарезервированные символы при создании папок или файлов, поскольку они являются частью системных функций.
То, что я рекомендую вам сделать, это просмотреть Character Map приложение - вы можете запустить и набрать charmap .
отсюда вы можете найти альтернативные символы, которые выглядят одинаково, например:
(скопируйте и вставьте их, вы увидите, что они разные)
Вместо косой черты / - вы можете использовать символ деления ∕
Вместо двоеточия : - вы можете использовать модификатор буквы двоеточия ꞉
Вы можете загрузиться с диска Linux (например, Knoppix ) и смонтировать раздел NTFS.
Linux имеет гораздо меньше ограничений на имена файлов, и позволит вам создавать такие имена (я пробовал).
Некоторые операционные системы запрещают отображение определенных символов в именах файлов: (Ресурс из Википедии )
\ backslash Также используется как разделитель компонентов имени пути в MS-DOS, OS / 2 и Windows (нет разницы между косой чертой и обратной косой чертой); разрешено в Unix имени файла
? знак вопроса, используемый в качестве подстановочного знака в Unix, Windows и AmigaOS; отмечает один символ Разрешено в Unix имена файлов
* звездочка используется в качестве подстановочного знака в Unix, MS-DOS, RT-11, VMS и Windows. Отмечает любую последовательность символов (Unix, Windows, более поздние версии MS-DOS) или любую последовательность символов в базовом имени или расширении (таким образом, « . » В ранних версиях MS-DOS означает «все файлы». Допускается в именах файлов Unix ,
: двоеточие используется для определения точки монтирования / диска в Windows; используется для определения виртуального устройства или физического устройства, такого как накопитель на AmigaOS, RT-11 и VMS; используется в качестве разделителя пути в классической Mac OS. Удваивается после имени в VMS, указывает имя узла DECnet (эквивалентно имени хоста NetBIOS (сеть Windows), которому предшествует "\".)
| вертикальная черта обозначает программную конвейеризацию в Unix и Windows; разрешено в именах файлов Unix
"кавычка используется для обозначения начала и конца имен файлов, содержащих пробелы в Windows
<меньше, чем используется для перенаправления ввода, разрешено в именах файлов Unix
> больше, чем используется для перенаправления вывода, разрешено в именах файлов Unix
, период разрешен, но последнее вхождение будет интерпретироваться как разделитель расширений в VMS, MS-DOS и Windows. В других ОС, обычно рассматриваемых как часть имени файла, допускается более одной полной остановки.
Используя приведенный ниже код, я добавляю текст в конец имен файлов:
но он изменился на:
3 ответа 3
Вы можете добавить текст в конец любого имени файла (до первой точки, которая обычно является началом расширения), используя последовательность символов ? это по крайней мере столько, сколько оригинальное имя.
? жадно совпадает и сохраняет любой символ, кроме . и может ничего не совпадать, если в нем нет символов. Ваш текст затем добавляется, а затем .* Соответствует и сохраняет точку и оставшуюся часть имени.
Вы можете изменить исходную маску файла так, как считаете нужным, чтобы соответствовать любым файлам, которые вы хотите. Исходная маска полностью независима от маски переименования.
Если некоторые из ваших файлов содержат более одного . в имени, тогда вы не можете использовать одну простую команду REN. Одним из вариантов является использование пакетного сценария:
Обратите внимание, что важно использовать FOR /F, а не простой FOR. FOR /F собирает весь результат команды DIR перед началом итерации, тогда как простой FOR начинает выполнять итерацию после заполнения внутреннего буфера, что повышает риск переименования одного и того же файла несколько раз.
Я использую EOL=: для защиты от удаленной возможности, с которой начинается имя файла ; , EOL по умолчанию является ; , который игнорирует строки, начинающиеся с ; , Имена файлов не могут содержать : поэтому для параметра EOL это безопасный символ.
Один небольшой недостаток FOR /F с DIR /B - это то, что он не сохраняет информацию о пути, поэтому я использовал PUSHD в начале. Без PUSHD вы могли бы включить информацию о пути в команду DIR, но тогда вам также нужно будет включить путь в маску источника REN. Следующая строка работает в командной строке (без пакетного скрипта):
Альтернативой является использование команды FINDSTR для вывода списка файлов, который удобно сохраняет информацию о пути:
Поскольку каждый указанный файл начинается с буквы диска, можно использовать EOL=; по умолчанию ; ,
Последний вариант - вы можете использовать мою утилиту переименования регулярных выражений JREN.BAT. Это чистый скрипт (гибридный JScript/batch), который работает на любом компьютере с Windows начиная с XP.
Поскольку JREN является пакетным скриптом, вам нужно будет использовать CALL JREN, если вы используете команду в другом пакетном скрипте.
используя код ниже, я добавляю текст в конец имен файлов, которые:
но он изменен на:
как добавить текст в конец несколько имен файлов.
перед: 1.МР3 2.в mp3
после: 1text.МР3 2text.в mp3
в вашем пакетном файле есть несколько ошибок, например:
- *.mp2 должно быть *.mp3
- goto E - метка :E отсутствует.
- вам не нужно call ничего.
простой рабочей партии файл
- пакетный файл будет работать с любой длиной имени файла, так например, 12345.mp3 будет переименовать в 12345text.mp3
cmd Shell решение
вам не нужно использовать пакетный файл. Вы можете просто использовать:
обратите внимание, что после не работы:
вы получите имена, как 1.mp3text.mp3 С этой команды.
Читать Далее
-
- отличный справочник для все окон УМК линия, связанная. - условно выполнить команду для нескольких файлов. - аргумент командной строки (или параметр) - это любое значение, переданное в пакет сценарий.
вы можете добавить текст в конец имени файла (до первой точки, которая обычно в начале расширения) с помощью серии ? это, по крайней мере, столько, сколько оригинальное имя.
? жадно сопоставляет и сохраняет любой символ за исключением . , и может ничего не соответствовать, если у него закончатся символы. Ваш текст затем добавляется, а затем .* матчи и сохраняет точку и остаток имя.
вы можете изменить маску исходного файла, как вы считаете нужным, чтобы соответствовать любые файлы, которые вы хотите. Маска источника полностью независима от маски переименования.
если некоторые из ваших файлов содержат более одного . в имени, то вы не можете использовать простую команду REN в одиночку. Одним из вариантов является использование пакетного скрипта:
Примечание. что очень важно использовать for / F, а не просто FOR. FOR / F собирает весь результат команды DIR перед началом итерации, тогда как simple FOR начинает итерацию после заполнения внутреннего буфера, что добавляет риск переименования одного и того же файла несколько раз.
я использую EOL=: для защиты от удаленной возможности, что имя файла начинается с ; . EOL по умолчанию ; , который игнорирует строки, начинающиеся с ; . Имена файлов не могут contain : , поэтому он является безопасным для параметра Эол.
один из незначительных недостатков FOR /F с DIR / B заключается в том, что он не сохраняет информацию о пути, поэтому я использовал PUSHD в начале. Без PUSHD вы могли бы включить информацию о пути в команду DIR, но тогда вам также нужно было бы включить путь в маску источника REN. Следующая строка работает в командной строке (без пакетного сценария):
альтернативой является использование Команда FINDSTR для вывода списка файлов, которая удобно сохраняет информацию о пути:
так как каждый файл в списке начинается с буквы диска, безопасно использовать значение по умолчанию EOL=; .
один последний вариант - вы могли бы использовать мой JREN.BAT регулярное выражение переименовать утилиту. Это чистый скрипт (hybrid JScript / batch), который изначально работает на любой машине Windows, начиная с XP.
С JREN-это пакетный скрипт, вы бы необходимо использовать вызов JREN, если вы используете команду в другом пакетном сценарии.
З наете ли Вы, что в наши дни смайлы встречаются практически везде? Вы можете использовать их практически в любом приложении на Вашем компьютере. Вы даже можете вставить их в имена файлов и папок в Windows 10.
Как использовать эмодзи в именах файлов
Это просто сделать благодаря встроенному в Windows 10 средству выбора смайлов. Чтобы его, открыть, нужно нажать Windows +. (точка) или Windows +; (точка с запятой.)
Вот и все, все просто!
Unicode делает это возможным
Все это возможно благодаря Unicode. Согласно Консорциуму Unicode, Unicode включает «символы для всех систем письма мира, современных и древних». Он также включает смайлики и различные другие символы.
Вы заметите, что когда Вы используете смайлы в именах файлов и папок, Вы не получаете цветных смайликов. Вы получаете маленькие черно-белые символы, как если бы Вы вставляли смайлы в Блокнот.
Благодаря Unicode любое приложение, поддерживающее стандартные символы Unicode, даже если оно не поддерживает цветные эмодзи, может использовать символы эмодзи из стандартных шрифтов. Использование эмодзи в имени файла похоже на использование символа из другого языка.
Это что-нибудь сломает?
Теоретически некоторым приложениям могут не понравиться смайлы, если они не поддерживают символы Юникода. Однако современные приложения, предназначенные для работы с широким набором языков, должны правильно поддерживать эмодзи.
Например, классическая командная строка Windows не может правильно отображать символы эмодзи в именах файлов.
Но и PowerShell, и новый терминал Windows от Microsoft могут отображать их правильно.
Если Вы столкнетесь с проблемой, Вы всегда можете открыть проводник и переименовать затронутые файлы и папки, чтобы удалить символы эмодзи. Затем Вы можете использовать эти файлы в приложениях, которые не поддерживают имена файлов смайлов должным образом.
Читайте также: