Подтвердить что ты не робот

Как переименовать файл, заменив подстроку с помощью пакета в Windows

Я хочу переименовать имя файла, например "How-To- переименовать -file.jpg", в "How-to- повторное использование -file.jpg", используя Пакетный файл Windows

т.е. Я хочу заменить только одно или два слова в имени файла.

4b9b3361

Ответ 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

PS: Вы можете прочитать здесь, чтобы узнать больше о подстроке: http://ss64.com/nt/syntax-substring.html http://ss64.com/nt/syntax-replace.html

Ответ 2

Приведенный выше код не переименовывает файлы. Пути являются проблемой, а исходное имя файла неверно.

Это будет работать с файлами в текущей папке - кроме тех, у кого есть! в именах будет проблема.

@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