
标题: [文件操作] 批量改照片名的BAT脚本现在不重启,不能正常运行。 [打印本页]
作者: 堕落游侠 时间: 2021-6-26 13:24 标题: 批量改照片名的BAT脚本现在不重启,不能正常运行。
一个批量改照片名的文件。原来是可以运行的。现在不重启,不能正常运行。改3-4个照片就停了。如果重启或注销就能正常运行。求高手解答。原始是在EXCEl的公式 然后粘贴到文本文档里,然后改名成BAT文件执行的。 谢谢大家
作者: Batcher 时间: 2021-6-26 17:11
回复 1# 堕落游侠
请举例说明根据什么规则改照片名?
作者: 堕落游侠 时间: 2021-7-9 17:17
回复 2# Batcher
把照片批量重命名成学生姓名
学生姓名来源于excel,照片是序列和excel的姓名相对应。
1,进入到需要重命名文件的文件夹中,新建一个txt文件,内容为dir *.jpg /b>ren.bat(假如你要重命名的是图片的话,其它的文件只要将jpg改为其它文件的扩展名就OK),再改名为1.bat.双击1.bat运行。
2,2,用记事本打开生成的ren.bat文件,复制里面的全部内容,打开excel,右击A2单元格,选择“选择性粘贴”,选择unicode文本,点击确定。
(1、2也可省去,直接在Excel文档中粘贴照片原名称)
Excel文档中,假设学号在第A列,姓名在第B列,身份证号在第C列等等,则在第一条学生信息后的空白单元格中输入="ren "&A2&".jpg "&C2&".jpg"(ren后有空格,前一个jpg后有空格;意思是把A2单元格的名称重命名为C2单元格的名称),回车会得到一个类似“ren 200600001.jpg XXXXXXXXXXXXX.jpg”的DOS命令。
3.点击该单元格右下角的填充柄,将公式应用到所有学生,复制此列所的数据。
4.新建一个记事本,粘贴复制的内容,得到的就是文件重命名的DOS命令。
5.将该文件保存到学生照片文件夹下(学生照片文件夹是复制后的,这样不会破坏原有数据),将扩展名".txt"改为".bat",这时只要双击该文件,就会自动将图片重命名为以身份证号命名的图片文件了。
作者: 堕落游侠 时间: 2021-7-9 17:19
回复 2# Batcher
我就是按这个介绍的编辑的
作者: Batcher 时间: 2021-7-9 17:47
回复 3# 堕落游侠
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: qixiaobin0715 时间: 2021-7-10 06:52
本帖最后由 qixiaobin0715 于 2021-7-10 06:55 编辑
回复 4# 堕落游侠
上面改名好麻烦。
Excel文档中,假设学号在第A列,姓名在第B列,身份证号在第C列,第一行为列名;图片源文件是以学号命名,现将图片文件名修改为身份证号码。
将Excel文件另存为1.CSV文件,将下面代码存为bat文件,编码均为ansi,均放在图片文件夹中。运行代码,会先将图片文件备份,可防止重命名出现问题。- @echo off
- md 备份
- copy "*.jpg" "备份\"
- for /f "skip=1 tokens=1,3 delims=," %%a in ('type 1.csv') do (
- if exist "%%a.jpg" ren "%%a.jpg" "%%b.jpg"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |