剥离图像元数据并使用文本文件作为输入源对其重命名

时间:2018-10-03 16:06:29

标签: powershell batch-file

我可以接受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. 我有一个txt文件,每行带有一个关键字。我希望将当前目录(Child01)中的图像替换为在文本文件中输入的名称。

我现在的操作方式是使用带有3列的excel工作表:

Original File Name  | New File Name | Rename Command

原始文件名包含所有文件名的内容(我可以通过运行 dir /b /a-d 来获得此文件) 新文件名包含我的关键字 重命名命令是公式=concatenate("ren ",A2,".jpg ",B2, ".jpg")

这可以帮助我生成公式,然后将粘贴从命令行复制到批量重命名。

请问有一些批处理文件或powershell脚本可以帮助我,让我一次完成所有工作吗?

1 个答案:

答案 0 :(得分:1)

无需打扰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命令之前,请检查输出。