首页 > 解决方案 > 剥离图像元数据并使用文本文件作为输入源重命名

问题描述

我可以接受 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 脚本,这样我就可以一次完成所有工作,好吗?

标签: powershellbatch-file

解决方案


无需打扰 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命令。


推荐阅读