• 工具及方法 - 使用DOS批处理给Windows文件批量改名


    没有最好的,只有最合适的。

    今天我拿到了一堆图片,要给图片改名:

    改成:

    如果是几个,手动操作没什么,要是上百个,就太烦人了。

    我第一个想到的是把两列文件名放到Excel的两列里,用VBA来做文件改名。后来突然想到用脚本来做也可以,就用DOS命令,一条条运行就可以。通过整理信息,制造一个批处理文件即可。

    第一步,将所有图片文件名输出到一个列表。

    > dir /B

    ad.png

    ae.png

    af.png

    ag.png

    ai.png

    al.png

    ......

    将此列表copy出来,或者直接输出到一个文件也可以。

    > dir /B > name.txt

    注意,> 是输出到一个新文件,而原文件内容被覆盖, >> 是输出内容接续到文件末尾,这个和Linux是一样的。

    而关于dir的使用方式,和各个参数的使用方法,可以使用help命令查看:

    > help dir

    直接输入help是查看所有命令。注意帮助信息里显示都是大写命令和参数,而DOS中是不分区大小写的。

    第二步,将文件名提取出来,不要后缀。

    使用Notepad++的列模式来选取,操作方式是按住ALT键,然后鼠标左键选取列内容。或者使用其他带列编辑模式的文本编辑器也可以。

    但这里使用列编辑模式的条件是,文件名都是规则的,都是两个字母,如果长度不一致,那就要copy到Excel中,使用字符函数来处理了。

    比如名字是abcdef.png, 那就使用Excel的字符串处理函数,假如此名字位于A2单元格, =LFFT(A2, LEN(A2)-4),得到的就是“abcdef”。

    第三步,将得到的列表copy到excel里,然后使用vlookup函数,根据映射关系,找到需要修改的文件名信息,显示如下:

    第四步,构造修改后的文件名称。

    第五步,构造原文件名,并加上dos中的改文件名的命令。

    第六步,将以上内容copy到一个bat文件中,执行即可。注意,因为bat文件的编码格式需要是ANSI的,否则运行后,中文文件名会都是乱码。

    其实这个dos的批处理脚本,选择成ANSI编码后,在文本中输入中文,就是GB2312编码。在Notepad++中将文本编码从UTF-8改成ANSI再保存后,因为里面有中文,就会自动变成GB2312码,而GB2312码本来也是包含了ANSI编码。

    默认创建的文本文件是UTF-8编码,因为通常我们使用的文本文件,好多都使用这个编码,现在的Windows的底层和上层都是用Unicode、UTF-8一套来处理字符信息了。那Dos因为历史原因,还是使用GB2312来处理中文信息编码。

    结果如下:

  • 相关阅读:
    docker安装jenkins以及Permission denied错误的解决方法!
    数仓建模理论(一)
    并查集(UnionFind)总结
    深入理解 python 虚拟机:字节码教程(1)——原来装饰器是这样实现的
    摔杯算法(要求用最少的测试次数找出恰巧会使杯子破碎的楼层。)
    我用【c++】写出了会说话的学生考勤系统
    Redis篇---第七篇
    JVM 发生 OOM 的 8 种原因、及解决办法
    凸面镜反射场景无监督域适应语义分割的一些问题
    数据库审核工具SQLE部署及使用
  • 原文地址:https://blog.csdn.net/guoqx/article/details/127663283