![Добавить текст в конец имени файла (но перед расширением) с помощью пакетного файла](https://rvso.com/image/1365830/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%20%D0%B2%20%D0%BA%D0%BE%D0%BD%D0%B5%D1%86%20%D0%B8%D0%BC%D0%B5%D0%BD%D0%B8%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0%20(%D0%BD%D0%BE%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%20%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC)%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%20%D1%84%D0%B0%D0%B9%D0%BB%D0%B0.png)
У меня есть список файлов, которые находятся в формате слева. Я хочу добавить строку к каждому имени файла, нодорасширение, как показано:
File 1.txt -> File 1 version 1.txt
File 2.txt -> File 2 version 1.txt
File 3.txt -> File 3 version 1.txt
File 4.txt -> File 4 version 1.txt
...
В каждом случае добавляемая строка одинакова во всех файлах.
Это кажется такой простой задачей, но у меня возникли некоторые трудности с помещением ее в пакетный файл.
Я попробовал ren
команду и следовал некоторым примерам наэта страница, но к полученным именам файлов добавляется строкапослерасширение:
File 1.txt version 1.txt
решение1
для более длинных имен файлов вам придется добавить еще несколько ?
в блок с массой?????????
ren *.?* ????????????????????????????????????????????????????????" version 1".*
решение2
Вместо того, чтобы полагаться нареннедокументированные странности, почему бы не сделать это должным образом?
for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"
Если вы хотите использовать это в пакетном файле, просто не забудьте удвоить каждый знак %.
Эта строка кода будет перебирать все соответствующие файлы *.txt
и выполнять команду переименования ( ren
) для каждого имени файла. %a
— полное имя файла, %~a
— имя файла без дополнительных кавычек (кавычки добавляются в команде). %~na
— имя файла без расширения файла, %~xa
— расширение файла.
Если в текущем каталоге находится один файл, File 1.txt
будет выполнена следующая команда:
ren "File 1.txt" "File 1 version 1.txt"
решение3
Я хотел добавить «_A» в несколько файлов, и вот как я это сделал.
Сначала я удалил расширение, добавил суффикс, затем изменил расширение обратно на исходное. Это, конечно, сработало для меня и сохранило пакетный код простым, так как я не очень хороший программист.
@ECHO OFF
REN *.pdf *.
REN *. *_A.
REN *. *.pdf
решение4
Для тех, кто не имеет опыта работы с командами (вроде меня), есть пара программ, которые значительно упрощают массовое переименование:
- Утилита массового переименования (не с открытым исходным кодом)
- Переименуй-это! (с открытым исходным кодом)