一、前言
引子:在日常办公中我们经常会遇到批量创建文件,文件夹,把对应文件放到对应的目录中去、文件名需要按统一的格式修改等等,我们只能想办法让电脑去自动化的去做,而不是手工依次创建,本文主要说的工具是windows自带的命令结合excel去实现上述功能。(本篇只针对不会自己写代码,又懒得找三方工具的朋友,高手略过)
上述方法的优缺点:
优点:不需要写代码的能力,不用下载或寻找三方工具。只要会用excel即可上手,借助excel+cmd批处理可以自由实现一些想要的操作。
缺点:它的执行速度没有一些三方工具或者自己写的代码快(尤其是万级以上文件的批量操作)
二、基本步骤:
- 明确需求,准备数据到excel中
- 根据需求,运用excel公式生成相应的cmd命令
- 复制命令到文本文件,保存成 ".bat"文件(编码格式ANSI),双击运行
注:.bat文件就是批处理文件,它可以在windows上双击直接运行,本质就是一条条cmd命令的文本文件
三、实操
a. 问题引入
案例:假设现在有很多图片,他们在同一目录下,想要根据他们的文件名复制到不同的文件夹下面去,如何操作?文件如下图所示(需要把a1_*.jpg放到a1文件夹,a2_*.jpg放到a2文件夹,a10_*.jpg放到a10文件夹,b3_*.jpg放到b3文件夹等等)
b. 问题分析
- 我们先要得到最终文件和文件夹的一个所属关系,知道哪个文件应该放到哪个文件夹中
- 然后我们要提前创建好目标文件夹,为后面拷贝文件做准备
- 生成命令语句,批量执行
c. 实战
基于上面的分析,我们依次来操作:
1. 准备基础数据到excel
由于我们的的文件存在一个文件夹下,要想全部一次性拿出来,就得用到dir这个命令,可以列出文件夹下文件名,然后输出到txt中,复制到excel中即可
win+R输入“cmd”,打开命令符窗口,进入目标文件夹的同级目录,执行命令:
得到txt内容如下
复制到excel直接用数据分列,得到文件名 ,删除没用的列如图所示:
接着根据文件名,拿到要放入的目标文件夹,这里同样可以用数据分列得到,也可以用excel公式拿到,总之无论什么方法,拿到第一个下划线前面的内容即可。
这里用公式展示:
在B1单元格输入:=LEFT(A1,FIND("_",A1)-1), 双击填充公式,得到目标文件夹的名字,如下图:
2. 准备目标文件夹
在C1单元格输入公式:="mkdir "&b1,双击填充公式,如图所示:
将C列复制到另一个sheet,然后删除重复值,之后复制到新建的txt中(注意要在目标位置创建),另存为a.bat,双击运行 ,结果如下:
3. 准备复制文件命令,批量执行
在D1单元格输入公式 ="COPY test111\"&A1&" "&B1
把D列复制到文本文件中,另存为a.bat,双击运行,大功告成!
四、总结
运行该模式,借助excel可以完成诸多个性计的操作,只需要相应的改一下,组合命令时的公式,此篇只作为抛砖引玉的记录,大家可以自由发挥!