Пакетное переименование сценария

260
eyerah

Я все утро пытался написать простой скрипт пакетного переименования. Я впервые пробую подобные вещи. Я пытался использовать For /Rтак, чтобы моя команда проходила через подпапки, но она не работает.

Мой код выглядит так: FOR /R %%a in (.) do REN "i.JPG" "inlet.JPG"

RENработает в родительском каталоге, но не повторяется через подкаталоги. Кто-нибудь может увидеть, что я делаю не так?

Спасибо.

2
Вам нужно добавить опцию `/ d` в` for`, если вы хотите сопоставить каталоги. Также вам нужно использовать `" %% a \ i.JPG "` в имени исходного файла команды `ren`. AFH 6 лет назад 0
Спасибо. Я исправил имя файла и добавил `%% a`. Это, казалось, решило проблему. Что вы имеете в виду под каталоги матчей? eyerah 6 лет назад 0
По умолчанию `for` соответствует файлам, а не каталогам, если вы не добавите` / d`: для получения более подробной информации смотрите `for /?`. AFH 6 лет назад 0
Дальнейшее расследование показывает, что `.` будет сопоставляться без` / d` - я не до конца понимаю, почему. `%% a \ i.JPG` расширяется до` SubDirName \. \ I.JPG`. Более подходящим решением является `FOR / R %% a in (i.JPG) do REN" %% a "" inlet.JPG "`: это позволяет избежать ошибок в подкаталогах без файла `i.JPG`, особенно если вы хочу перезапустить пакетный файл. AFH 6 лет назад 0
@eyerah Можете ли вы указать, что вы действительно хотите делать с командным файлом? Есть только один файл или несколько файлов с одинаковыми именами? Biswapriyo 6 лет назад 0
Я всегда связывался с помощью `FOR / F`, а затем помещал команды` DIR / S` для выполнения команд `REN`, если это делается рекурсивно - я полагаю, это всего лишь личное предпочтение, но оно всегда работает для меня очень хорошо. Pimp Juice IT 6 лет назад 0
Спасибо всем за вдумчивые комментарии и доброжелательную атмосферу. @Biswapriyo Я просто хотел, чтобы скрипт переименовал фотографии, по которым я ранее сортировал, и добавил простые коды (то есть, «i»). В подкаталоге было много файлов, но не было файлов с одинаковыми именами дважды. eyerah 6 лет назад 0

0 ответов на вопрос

Похожие вопросы