使用命令行将文件 1 和 2、3 和 4、5 和 6(等等)合并到 3000+ 的目录中

问题描述 投票:0回答:1

从我爸爸的数码相机卡中恢复照片,但单个文件本身毫无用处。它们似乎已在 JPEG 标记点处恢复,因此有关相机的信息、exif 信息等位于第一个文件(000001.jpg)中,而实际照片数据位于单独的文件(000002.jpg)中

在十六进制编辑器中打开它们,并将文件 000001.jpg 的内容复制/粘贴到文件 000002.jpg 的开头然后保存,文件 000002.jpg 现在是“正确的”,可以使用预览/图像应用程序打开.

我有一个包含 3200 多个文件的目录,我需要重复此操作!

我以前使用过 concat 和类似的命令,所以并不害怕终端,但我无法真正理解如何用命令来表达和重复连接 000001 + 000002、000003 + 000004、000005 + 000006 和等等。

非常感谢任何帮助。

cmd concatenation batch-processing
1个回答
0
投票

又快又脏:

@echo off
setlocal enabledelayedexpansion

for /l %%a in (1000001,2,1003201) do (
  set "low=%%a"
  set /a "high=%%a+1"
  ECHO debug: low=!low:~1!.jpg, high=!high:~1!.jpg  ; add a command to join them, like the following (UNTESTED!) command:
  ECHO copy /b !low:~1!.jpg + !high:~1!.jpg new_!low!.jpg
)

您提到“超过 3200”,因此请相应地调整最后一个数字。适合“一次性”解决方案;如果您打算定期执行,可以使用一些方法来计算文件数量。

注意:这取决于第一部分always有奇数,第二部分是always“第一个加一”。丢失奇数文件应该给出错误消息,丢失偶数文件不会给出错误,但生成的文件将仅包含奇数文件的内容。

验证正确后,使用

ECHO
命令
删除
copy
ECHO debug
线仅用于故障排除,您可以安全地将其移除。

当然:始终使用数据副本或拥有有效的备份。

© www.soinside.com 2019 - 2024. All rights reserved.