bat指的是批量处理文件命令,在 Windows 系统使用。而 bat 文件是可执行文件,由命令构成,其中可以包含对其它程序调用,文件后缀是 bat 或 cmd。在文件中,一行内容就是一条执行命令,可在 Dos 下的 Edit创建修改或用其它文件文本输入编辑命令,最后修改文件后缀名。

主要说用其它文件文本创建修改,及一些常用的基本命令。
虽然可用用其它文件文本创建修改,但是都避不开记事本(也就是.txt文件)。因为其它文本文件直接修改后缀名,写好的命令会变成乱码……例如 Word 文档和 Excel 表格 👇
2938f1d5c66dbd3967af7969ae42f7da.png
另存为记事本文件,再修改后缀名就没问题。所以,很多人都说右键新建记事本(文本文档)……
但是,有时有很多行命令,就要用 Excel 表格来编辑,另存为记事本(文本文档).txt,再修改后缀名为.bat/cmd。
有一点需要注意,在 win10 1903版本以上,记事本编码默认是 UTF-8,命令不能有中文,否则不能执行或出现乱码 👇
c546c82e3fac5bc5df7f8a33b54e53ca.png
在记事本编辑窗口右下角可以看到编码 👇
25dc00183be436ef7cf114e4aaba5f3d.png
那修改编码需要在另存为(Ctrl+Shift+S)界面修改,把编码修改为 ANSI 👇
68cba4fee92fe98a099fe7160d976396.png
接下来,就说一些常用的基本命令 👇

注意:
   1.命令里的元素之间要用空格或制表键分隔开来
   2.文件名称必须包含后缀名
   3.把单一命令重复就是批量,如第三点
1.创建文件夹
md 文件夹名称
2.批量创建文件夹方法1
md 文件夹名称 文件夹名称 文件夹名称 ……
3.批量创建文件夹方法2
md 文件夹名称
md 文件夹名称
md 文件夹名称
4.重命名
ren 文件名称 文件名称
注意 原文件名称 修改后的名称
5.重名当前目录下同一类型文件后缀名称
ren *.后缀名 *.后缀名
注意 原文件后缀名 修改后的后缀
6.复制当前目录下某一文件到指定位置
copy 文件名称 位置地址
7.复制当前目录下所有同类型文件到指定位置
copy *.后缀名 位置地址
8.复制某一位置文件到指定位置
copy 文件地址\名称 位置地址
9.移动当前目录下某一文件到指定位置
move 文件名称 位置地址
10.移动当前目录下所有同类型文件到指定位置
move *.后缀名 位置地址
11.移动某一位置文件到指定位置
move 文件地址\名称 位置地址
12.创建文件
cd.>文件名称
注意:这个命令的元素不需要分隔开
13.提取当前目录下同一后缀名的文件的名称输出到文件
dir *.后缀名/b>文件名称
注意:会保存名称到一个新创建的文件
14.提取当前目录下某文件夹里同一后缀名的文件的名称输出到文件
dir 文件夹地址\*.后缀名/b>文件名称
注意:文件夹地址不需要盘符
15.提取当前目录下所有文件的名称输出到文件
dir 地址\*.*/b>文件名称
16.删除当前目录某文件/同后缀名文件
del 文件名称(*.后缀名)
17.删除指定位置某文件/同后缀名文件
del 位置地址\文件名称(*.后缀名)

假设一个例子
有一个摄影比赛,是在网上投稿的。参赛者要上传作品,填写作者信息、作品简介和原创声明。工作人员线下需要整理资料归档,从网站下载资料。而网站批量下载是作品归作品,作品简介归作品简介……工作人员要按作者来分组。
由于前面木有各个命令演示。这个例子从用这些命令准备开始说起……
准备过程

鼠标右键新建记事本并命名为md创建文件夹.bat;保持选中继续鼠标右键编辑,输入“md 作品 作品简介 作者信息”,然后另存为修改编码为 ANSI,保存。之后,双击,就有三个新建文件夹 👇 
b774cf71f8afa23ac56c80fa16f40b70.png
在作品文件夹,右键新建 Excel 表格。在表格 A1 单元格输入1,保持选中,点击开始→填充→序列(用WPS的小伙伴,也是一样操作)。在序列窗口里,序列产生在选列,类型选等差序列,终止值填800,确定。在 B1 单元格输入“cd.>”,在 C1 单元格输入“a001”,在 D1 单元格输入“投稿1”,在 E1 单元格输入“作者1.jpg”,在 F1 单元格输入“=B1&C1&D1&E1”(名称是参赛编号+作品名+作者姓名,另外这种方式创建的 jpg 图像都是打不开),然后都向双击填充柄自动填充即可 👇

908c79eba78207f012dc998b862bfe7e.png

注:这里使用序列填充是为了之后能双击填充柄做自动填充。把命令分开填在不同单元格,再用文本连接符连接;这么折腾,还是为了能自动填充,以及这个命令的元素间不需要空格和制表符分隔。

选中 F 列复制粘贴为值,选中 A~E 列右键删除,另存为(F12),保存在作品文件夹,命名为 cd批量新建文件,保存类型选择文本文件(制表符分隔)(*.txt),保存;随后,会有一个弹窗(使用这种格式工作簿部分会丢失,是否使用)点击是即可。选中刚刚另存为的cd批量新建文件,按 F2 重命名,把后缀名改为.bat(修改后缀会提示文件不可用,是否修改,直接点是)。然后,右键编辑查看编码是否为 ANSI,不是就另存为改编码并直接覆盖原文件 👇

74e2fd35dced84222c40cd76832b2a61.png

注意,使用 Excel 表格另存为的记事本默认编码是 ANSI。

双击 cd批量新建文件.bat 文件 👇

fc78021418c510b84847f1d27a39f711.png

另外,说个题外话——关于参赛编号/码。参赛者姓名会有同名情况,投稿作品的名称也会有同名情况,但是参赛编号/码是唯一的不重复。在做表格、查找等,都能快速找到对应的参赛者和投稿作品。经常制作数据表会用到 VLOOKUP 函数,要精确匹配,查找值不能有重复,和参赛编号/码是一样的道理。

作品简介和作者信息的批量创建基本都是这样,大同小异。需要注意的是这样创建的文件都是空白文件。

正式开始

要按作者来分组,先以参赛编号+作者姓名来创建文件夹,之后把文件放在对应的文件夹里。
第一步,获取参赛编号和作者姓名表格并创建对应的文件夹(假设木有名单,原本假设里也木有假设有名单……)
在作者信息文件里,新建一个记事本,重命名为 dir提取文件名称,后缀改为.bat。保持选中该文件,右键编辑,输入“dir *.doc/b>提取当前目录doc文件名称.xls”,另存为修改编码并覆盖原文件。双击 dir提取文件名称.bat 文件,自动生成一个 Excel 表格 👇
a64ea1d1af104ee3324da4b6ea36d651.png
双击打开刚刚生成的 Excel 表格,如果有提示文件格式与后缀名不符,文件可能损坏或不安全,是否仍要打开,点击是即可。打开后的样子 👇
8d307b16dfb47ba8bca25e58262a8057.png
选中 A 列右键插入一列,在 A1 单元格输入“md”,并双击填充。选中 B 列,点击数据→分列→在请选择最合适的文件类型,勾选分隔符号,点下一步→分隔符号,勾选其他,输入“-”,下一步→完成。使用查找和替换删除.doc。在 E1 单元格输入“=B1&”-“&D1”,并双击填充,以及复制粘贴为值。把 B~D 列删除。另存为文本文件(制表符分隔)(*.txt),并命名为 md批量创建文件夹;之后,修改后缀名称并双击 👇
a2d18841e98eeb8ec0e888371d777029.png
第二步,移动文件到对应的文件夹里
还是从作者信息文件开始,打开刚刚提取文件名称的文件。选中 A 列插入一列,在 A1 单元格输入“copy”(输入 move 也可以),并双击填充。然后,选中 md批量创建文件夹.bat 文件右键编辑打开,全选复制,在 Excel 表格选中 C1 单元格粘贴。使用查找和替换把 md 替换成文件夹所在位置 👇
09913d95aa858564cb8d9772a9cf19d5.png
在 E1 单元格输入“=C1&D1”,并双击填充。选中 E 列复制粘贴值。删除 C~D 列。另存为文本文件(制表符分隔)(*.txt),并命名为 copy复制移动文件到指定位置;之后,修改后缀名称并双击 👇
0f360dae2880a71915ccad0c9611d3f7.png
接着是作品文件夹,把作者信息文件里的 dir提取文件名称.bat 文件复制过来,鼠标右键编辑,把 doc 改为 jpg 保存并双击运行 👇
de5d541d61c0cbbbfc16cdcd437685ed.png
打开 提取当前目录jpg文件名称.xls 文件。选中 A 列右键插入一列,在 A1 单元格输入“copy”并双击填充。打开 copy复制移动文件到指定位置.bat 文件,全选复制,然后选中 Excel 表格 C1 单元格粘贴。删除 C~D 列,另存为文本文件(制表符分隔)(*.txt),并命名为 copy;之后,修改后缀名称并双击 👇
da5b2afa8ab12056e7b8f8104b3b12fa.png
最后就是作品简介,依旧是提取文件名称。把作者信息文件里的 dir提取文件名称.bat 文件复制过来,直接双击。打开刚创建的提取当前目录doc文件名称.xls 文件,选中 A 列右键插入一列,输入“move”(这次用移动),双击填充。打开 copy复制移动文件到指定位置.bat 文件,全选复制,然后选中 Excel 表格 C1 单元格粘贴。删除 C~D 列,另存为文本文件(制表符分隔)(*.txt),并命名为 move;之后,修改后缀名称并双击 👇
aad79aed493fee4c674e056e8645c710.png
463fbb3b45e03880093654bec0220cd6.gif
以往笔记

  1. Excel 2019 自动填充
  2. Excel 2019 填充