无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 2262|回复: 33
打印 上一主题 下一主题

[求助] 批处理改名

[复制链接]
跳转到指定楼层
1#
发表于 2024-2-26 20:51:55 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
文件夹内都是jpg图片文件,
名称规律是:姓名+下划线+数字+空格+名称+下划线+身份证号.jpg
例如:(蓝色部分是固定的)
张三_23 幼_130455199002020322.jpg
李四_23 幼_130455199002020611.jpg
王五_23 幼_130455199002020724.jpg
......
======================
现在有一个txt文档,比如名字是 ming.txt
内容规律如下:姓名,性别,工号,身份证号....(用英文逗号分隔开,每行一个)
例如:
张三,男,20220003,130455199002020322
李四,男,20220004,130455199002020611
王五,男,20220005,130455199002020724

......
=========================
现在想根据 ming.txt把文件夹内的jpg图标都改名
改成  姓名_工号.jpg

怎么使用for 还有findstr完成,想着这2个命令可以

2#
 楼主| 发表于 2024-2-26 22:24:37 | 显示全部楼层
测试.zip (248.45 KB, 下载次数: 11)
上传了一个测试文档,按照ming.csv来改名,一楼写的是ming.txt,测试文档实际是ming.csv,这个不影响的,知道意思就行了
回复

使用道具 举报

3#
 楼主| 发表于 2024-2-26 22:35:23 | 显示全部楼层
nttwqz 发表于 2024-2-26 22:09
其实有很多批量命名软件的,ming必须ansi编码

可以了


有一个另外的问题不知道是否能解决。

ming.txt(也就是下面的附件中的ming.csv)其中的姓名是有重名的,这样批量改的话,遇到重名的是否可以递增一个数字序列比如 张三_222222_1    张三_222222_2

不好弄就不考虑这个问题。

主要是ming.txt改名文档中,其中没有身份证列,如果有这个话,过滤就不会有重复的啦。

点评

没这必要,工号又不会重。  详情 回复 发表于 2024-2-27 00:17
不用批处理用vba可以吗??用vba应该可以给重名的增个序号,如果行明天我试试  详情 回复 发表于 2024-2-26 23:55
回复

使用道具 举报

4#
 楼主| 发表于 2024-2-26 22:37:15 | 显示全部楼层
gy0715 发表于 2024-2-26 21:49
1.打开MiniRenamer选择文件夹,勾选文本模式,把文件名复制到excel
2.把ming.txt内容复制到excel
3.把上 ...

这个软件第一次用,文本模式算是这个特色,但是你说的excel文档中的步骤没有太明白

另外,它的文本模式不支持按alt,按列模式选择删除或者输入内容,如果可以会更方便些
回复

使用道具 举报

5#
 楼主| 发表于 2024-2-26 22:42:28 | 显示全部楼层
nttwqz 发表于 2024-2-26 22:09
其实有很多批量命名软件的,ming必须ansi编码

改名软件,我测试了advanced_renamer,也许是不太会用,没有弄成
回复

使用道具 举报

6#
 楼主| 发表于 2024-2-27 09:10:24 | 显示全部楼层
本帖最后由 freesoft00 于 2024-2-27 09:16 编辑
likeyouli 发表于 2024-2-26 23:55
不用批处理用vba可以吗??用vba应该可以给重名的增个序号,如果行明天我试试,还有姓名_工号不会同时有 ...

工号不会重复,只有名字会,用什么工具或者代码都可以,只要完成任务什么都可以

点评

Sub wuyouchuti() Dim t As Workbook, str, dan As Range Set t = Workbooks.Open("D:\ming.csv") '这里根据实际更改,要求ming.csv和图片必须在同一目录。 '以下代码对ming.csv拆列,要求表格的a列为姓名,性别  详情 回复 发表于 2024-2-27 11:38
回复

使用道具 举报

7#
 楼主| 发表于 2024-2-27 09:12:59 | 显示全部楼层
nttwqz 发表于 2024-2-27 00:17
没这必要,工号又不会重。

for /f "skip=1 tokens=1-4 delims=," %%a in ('type ming.csv') do for /f "delims=" %%A in ('dir /a /b "%%a_*.jpg" 2^>nul') do echo ren "%%A" %%a_%%c.jpg

我昨天实际的代码,dir没有跟身份证,只限定了姓名,所以会有重复。
按你的这个ming.csv文件如果有提供身份证信息,那么是不会有重复的
回复

使用道具 举报

8#
 楼主| 发表于 2024-3-4 23:13:26 | 显示全部楼层
dos时代菜鸟 发表于 2024-3-4 21:14
原来 原始 ming.csv 中没有 身份证号,那就换个思路。

见附件,把含有 ming.csv 及 *.jpg 的 ...

嗯,有身份证号的话不会重复,它们可能做文档的时候没有弄上去,所以前面的批处理就会有重名的情况。
这些都留着,测试测试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-3 08:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表