Как переименовать файл, заменив подстроку с помощью пакета в Windows
Я хочу переименовать имя файла, например "How-To- переименовать -file.jpg", в "How-to- повторное использование -file.jpg", используя Пакетный файл Windows
т.е. Я хочу заменить только одно или два слова в имени файла.
Ответ 1
@echo off
Set "Filename=how-to-rename-file.jpg"
Set "Pattern=rename"
Set "Replace=reuse"
REM Call Rename "%Filename%" "%%Filename:%Pattern%=%Replace%%%"
Call Echo %%Filename:%Pattern%=%Replace%%%
:: Result: how-to-reuse-file.jpg
Pause&Exit
Я даю вам другой пример для цикла файлов:
UPDATE:
Я пропустил некоторые вещи в синтаксисе, потому что быстро набираю последнее редактирование, вот скорректированный код:
@echo off
Setlocal enabledelayedexpansion
Set "Pattern=rename"
Set "Replace=reuse"
For %%# in ("C:\Folder\*.jpg") Do (
Set "File=%%~nx#"
Ren "%%#" "!File:%Pattern%=%Replace%!"
)
Pause&Exit
Приведенный выше код не переименовывает файлы. Пути являются проблемой, а исходное имя файла неверно.
Это будет работать с файлами в текущей папке - кроме тех, у кого есть! в именах будет проблема.
@echo off
Setlocal enabledelayedexpansion
Set "Pattern=rename"
Set "Replace=reuse"
For %%a in (*.jpg) Do (
Set "File=%%~a"
Ren "%%a" "!File:%Pattern%=%Replace%!"
)
Pause&Exit