优秀的编程知识分享平台

网站首页 > 技术文章 正文

用cmd和excel批量整理照片。不怕照片数量多,怕不够多

nanyue 2024-09-07 16:38:26 技术文章 9 ℃

背景说明

智能手机几乎人手一部,随时随地都可以“咔嚓”来一张。日积月累下来,谁的手机里还没一大堆照片。但是当时拍照容易,事后再翻看或者整理时却让很多人无从下手。针对照片整理,这里给出一个本人的思路和解决方案,也详细列出教程步骤,供各位参考使用。(本文的方法不仅仅只是可以整理照片,重要的是提供一个批量处理的思路和方法。类似的整理需求都可以作为借鉴。)

先介绍一下自己的情况。本人喜欢摄影,经常拍照记录生活。目前已经整理完的照片(包含视频)时间跨度超过10年,数量有13000多。用图说话吧:


思路梳理

面对这么多照片,首先是要树立一个整理思路。我的思路如下:

  1. 很多照片拍完后,过段时间再翻看,已经忘了照片的背景(比如,时间,人物,地点,事件)。这些照片主要以个人生活经历为主,因此还是以时间线为主。
  2. 时间的颗粒度是按照年、月、日?按年和月有几个问题:第一,时间相对比较模糊,对于以后翻看回忆没太大帮助。第二,年或月包含的照片内容太多,不利于记录照片的背景。第三,一天发生的事不会太多,照片内容相对较为单一。因此,颗粒度按照日最合适。
  3. 相机、手机在存储照片时一般都是默认放在一个文件夹里(部分设备可能支持按照时间自动归类文件,不在此讨论范围)。所以需要按照片的拍摄日期分别整理到文件夹里。为了便于以后查看,文件夹名称应该体现日期信息。最好文件件名称要简要说明背景信息,因此要包含事件的关键字。
  4. 照片按照日期归类到到对应文件夹。事项简单,大量重复工作,一听就该是批量自动化完成的东西。
  5. 文件夹名称的事项关键字任何照片管理软件都解决不了,只能手工标注。不作为本文内容。

按照思路,先看看我的效果吧:

思路既定,剩下的就是怎么干的问题了。

当然,网上也有相同功能的软件。想省事的,看到这里就够了,出门左转找百度,不谢。只是我自己懒得下载安装不明软件,最主要的,就是觉得这个对我不难。

做的思路呢,分成几步:

  1. 根据照片找出每个照片的拍摄日期。(可以根据照片的名称或者创建日期提取。一般手机会按照时间生成照片名称。相机的照片名称一般是序号,可以根据创建日期。本文按照照片名称处理。)
  2. 生成格式化的日期。
  3. 按照日期批量创建文件夹。
  4. 把照片移动到对应文件夹。

其中,1、3、4适合用cmd,2适合用excel。(当然,肯定有更快捷的工具,但是我不会。这个方法主要是给稍微懂些电脑,但是又不懂开发的朋友们看的。技术高手也请出门左转。

多说一句,这个处理方法不怕照片数量多,怕照片数量不够多。照片数量越多,用这个方法,节省的工作量和时间越多。如果只是几十上百张,还是手工吧。

整理过程

1.先看看整理前的数量。至少也得几百上千张才值当处理一次。

2.win+r键,输入cmd,回车。打开cmd程序。输入“j:”,回车,进入J盘。(我的是J盘,大家按照自己的盘符)

3.输入“cd ”,(注意cd后有个空格)。然后从打开的文件夹的地址栏里把文件夹路径复制了。切回cmd界面,鼠标右键,粘贴。然后回车,进入要整理的文件夹(大家按照自己的路径)。

4.输入“dir >name.txt”,然后回车。(注意:dir后有个空格)

3.等执行完,会在照片所在目录(上图目录)生成一个名称为name的txt文档。打开如下。要的就是图中红框中的信息。可以把非红框格式的内容删除掉(开头和结尾有)。然后ctrl+a,ctrl+c,复制全部内容。

4.新建一个excel,打开,在A1单元格,粘贴。

5.选中A列,点击数据页签下“分列”。

6.在弹出的窗口中,选择“固定宽度”。然后,下一步。

7.按照图中所示,分别在需要分列的位置鼠标左击(即图中三条带箭头的竖线)。然后,下一步。

8.选中图中鼠标位置的红框的列,分别点击上面的“文本”。(说给电脑小白:主要是照片名称那列,一定要设置成“文本”,要不然,分列后,照片名称可能会有变化。其他列无所谓。)然后,完成。

9.分列完成后,可以将照片名称外的列删除。选中前三列,右键,删除。

10.然后把照片名称再复制出来一列(保留照片名称列,后续有用)。在复制出来的列里做加工。加工是为了提取名称里的日期。

11.注意,上图中的文件名格式不同,有的有“_”。需要将名称格式统一。选中B列,然后ctrl+h,调出替换功能。在查找内容里输入“_”。然后,全部替换。

12.完成照片名称格式统一后,再次选中B列,再次进行数据分列。操作见图。

13.按照图中,分别截取名称前缀、年度、月份、日期进行分列。(从13至18,都是为了生成格式化日期,可以按照个人喜好调整)

14.对年、月、日三列必须设置为文本格式。

15.分列后,效果如下。最后一列无用,可以删除。

16.在F列输入公式:=C2&"-"&D2&"-"&E2

17.回车后,公式效果如图。复制这个公式单元格,在F列粘贴。

18.公式复制粘贴后,效果如下。已经从照片名称中生成了格式化日期。接下来要进行去重,因为有很多重复的日期。复制F列的所有日期。

19.在新的excel页签中ctrl+v粘贴。直接粘贴后,是图中效果。需要点击粘贴后的右下角图标,点击图中所示图标。

20.然后粘贴的效果如下图。选中整列,按照图中操作,去重。

21.去重后,数量有变化,剩余的都是唯一值。

22.接下来,格式化生成cmd创建文件夹的命令。在B列输入:="MD "&A1(注意MD后有空格),然后回车。

23.生成一条创建文件夹命令。然后复制单元格粘贴到所有有日期的行。即可批量生成命令。

24.选中创建命令的所有单元格,ctrl+c复制。

25.切换到原来的cmd窗口,鼠标右键,粘贴。

26.命令执行完成界面如下。

27.批量创建的文件夹如下。

28.接下来,生成文件移动命令,将照片移动到对应文件夹。切换到有照片原始名称的excel表页签。在生成的格式化日期列后面一列输入:="MOVE "&A2&" "&F2(注意:格式是="MOVE+空格"&A2&"空格"&F2)。回车后,生成一条移动命令。

29.将生成的命令的单元格复制到所有行。

30.生成效果如下。

31.选中生成的所有命令,ctrl+c复制。

32.切换到cmd窗口,鼠标右键粘贴。

33.命令执行如下。

34.至此,已经将所有照片按照日期移到了对应的文件夹。整理完毕。


总结

遇到大量重复的、简单的劳动,梳理清楚思路和步骤,用一些简单工具的组合也能满足很多日常需要。

其实提取文件名称还可以直接用excel完成,简单提示一下:FILESINDEX函数。有兴趣的自己搜吧。

整个过程做起来很简单,写教程太耗费时间了。这种事,以后得少干。不过,想想如果哪位看了教程,使用后节省了很多时间,也算功夫没白费。

Tags:

猜你喜欢

最近发表
标签列表