Board logo

标题: [文件操作] 批量改照片名的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,均放在图片文件夹中。运行代码,会先将图片文件备份,可防止重命名出现问题。
  1. @echo off
  2. md 备份
  3. copy "*.jpg" "备份\"
  4. for /f "skip=1 tokens=1,3 delims=," %%a in ('type 1.csv') do (
  5. if exist "%%a.jpg" ren "%%a.jpg" "%%b.jpg"
  6. )
  7. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2