Уберите метаданные изображения и переименуйте его, используя текстовый файл в качестве источника ввода - PullRequest
0 голосов
/ 03 октября 2018

Я согласен с предложениями PowerShell или cmd.Вот что я пытаюсь сделать:

У меня есть такая структура папок:

C:\Parent\Child01\ - Lots of JPG images
C:\Parent\Child02\ - Lots of JPG images
C:\Parent\Child03\ - Lots of JPG images

и т. Д.

Что я делаю в настоящее время вручную:

  1. Я буду находиться в папке Child 01 и буду выполнять эту команду для удаления метаданных из всех изображений

    exif -r -all= -ext jpg -ext gif -ext png

  2. У меня есть текстовый файл с ключевыми словами по одному в строке.Я хочу, чтобы изображения внутри моего текущего каталога (Child01) были заменены именами, которые я дал в текстовом файле.

Как я делаю это прямо сейчас, используя лист Excel с 3 столбцами:

Original File Name  | New File Name | Rename Command

Исходное имя файла содержит содержимое всех имен файлов (Iполучить это, запустив dir /b /a-d) Новое имя файла содержит мои ключевые слова Команда переименования является формулой =concatenate("ren ",A2,".jpg ",B2, ".jpg")

Это помогает мне сгенерировать формулу, которую я копирую и вставляю из командной строки в массивпереименуйте.

Может ли кто-нибудь помочь мне с пакетным файлом или сценарием PowerShell, чтобы я мог сделать все это за один раз, пожалуйста?

1 Ответ

0 голосов
/ 03 октября 2018

Не нужно беспокоить Excel.Он переименовывает каждую .JPG в следующее имя файла (он должен содержать только один столбец («NewFileName» (без расширения)). Если в нем заканчиваются файлы или строки, он останавливается.

@echo off
setlocal enabledelayedexpansion
<file.txt (
  for /f "delims=:" %%a in ('dir /b *.jpg') do (
    set "x="
    set /p x=
    if not defined x goto :eof
    ECHO ren "%%a" "!x!%%~xa"
  )
)

Проверьте вывод перед удалением команды ECHO, чтобы фактически включить команду ren.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...