如何整理2个文件夹中,同名不同文件类型的文件?

使用相机拍摄的文件,会分别存储为JPG和RAW这2种格式,并分别存放在2个文件夹中,因为JPG的文件比较小,一般是先过一遍JPG文件夹,把一些拍的不好的文件删除,有什么比较快捷的方法,以JPG文件夹的为准,把RAW文件夹中多余的同名文件删除?(就是把JPG文件夹中已经删除的文件,在RAW文件夹中的同名文件快捷删除的方法)。

1 个赞

介绍一个纯手工,稍麻烦,但不需要什么专业软件的方法:
1、正常管理jpg文件夹,该删删。
2、在jpg文件夹中,命令行 dir > list.txt ,将当前剩余照片信息存入一个文本文件。
3、处理一下这个list.txt,然后将文件名(仅文件名)列复制到excel里的一列
4、在excel里,通过分列、添加列以及用“&”符号链接等方式,生成一个批处理命令文本列表,每一行大概形如“copy XXX.raw d:\temp\xxx.raw”。
5、将这个excel内容保存为文本,改名为bat,放到raw文件夹,运行之
6、搞定。

用gpt写的python脚本,很方便


# 文件夹A和B相对于脚本的位置
folderA = './A'
folderB = './B'

# 列出文件夹A中所有的.jpg文件
jpg_files = [f for f in os.listdir(folderA) if os.path.isfile(os.path.join(folderA, f)) and f.lower().endswith('.jpg')]
print("JPEG files in folder A:")
print(jpg_files)

# 删除文件夹B中所有不同名称的.raw文件
# 获取不带扩展名的.JPG文件名列表
jpg_filenames_without_extension = [os.path.splitext(f)[0] for f in jpg_files]

# 遍历文件夹B中的所有.raw文件
for f in os.listdir(folderB):
    if f.lower().endswith('.raw'):
        raw_filename_without_extension = os.path.splitext(f)[0]
        
        # 如果.raw文件的名字(不包括扩展名)不在.JPG文件名的列表中
        if raw_filename_without_extension not in jpg_filenames_without_extension:
            # 构建完整的文件路径
            file_to_delete = os.path.join(folderB, f)
            # 删除这个文件
            os.remove(file_to_delete)
            print(f"Deleted {file_to_delete}")

print("Unmatched RAW files in folder B have been deleted.")

Beyond Compare 可以在规则里设置「按不同的扩展名对齐文件名」

我现在就是用这种方式,还有点的麻烦,想看看有没有更简单的方法.

换个方向,把同名.raw移动到RAW_SAV文件夹,再删除留下的不需要文件

@echo off
dir /b .\JPG > list.txt
mkdir .\RAW_SAV
for /f "delims=." %%i in (list.txt) do (move .\RAW\%%i.raw .\RAW_SAV\)
del list.txt
pause

不想做移动操作也可以将do后面的命令改为重命名,给需要保留的文件额外加个前缀或后缀,然后用通配符删除不带标志的文件,最后再改回来

duplicate file Finder类的软件,每组重名的只保存一个是基本功能
量不多的可以用everything

一个简单的方案:
任意重命名软件即可。

第一步,将JPG文件夹中的文件批量改名位“raw”后缀名,注意后缀全部小写。
第二步,移动RAW文件夹中所有文件到JPG文件夹,如果提示已存在,点击全部跳过。
第三步,通过重命名软件,将拓展名是.raw 改为拓展名为 .jpg。

第四步,删掉JPG文件夹里所有的RAW文件。

1 个赞

这个好,兼具简单和便捷。