2

У меня есть каталог с изображениями продуктов, которые я хотел бы переименовать в UPC продуктов. У меня есть сопоставление имени файла в электронной таблице, поэтому я могу экспортировать его в CSV или с разделителями табуляции.

Заданный filenames.txt:

CurrentName     NewName
DSCN4033.png    750732000259.png
DSCN4023.png    750732000013.png
DSCN4024.png    750732000020.png
DSCN4022.png    750732000099.png

DSCN4033.png станет 750732000259.png

Если бы я делал это с Bash, команда была бы

пока читаю старое новое; do mv "$ old" "$ new"; сделано <filenames.txt

Это для рабочего проекта, который должен быть выполнен с помощью пакетного файла Windows, чтобы мои преемники не связывались с Cygwin.

1 ответ1

3

Если в ваших текущих именах нет пробелов, то из командной строки должно работать следующее:

for /f "skip=1 tokens=1*" %A in (filenames.txt) do ren "%A" "%B"

Проценты должны быть удвоены, если они помещены в пакетный файл:

@for /f "skip=1 tokens=1*" %%A in (filenames.txt) do ren "%%A" "%%B"

FOR - самая сложная внутренняя команда, доступная для CMD.EXE. Используйте help for или for /? из командной строки для доступа к документации.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .