ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: idiocy

[求助] 请教关于bat批处理通过txt文本内容重命名文件的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-6-19 12:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
idiocy 发表于 2023-6-19 08:10
已重新编辑上传了附件,
因上传的附件大小有限制,
故里面有8张图片直接用txt文本文档改原本图片的名称 ...

图片名怎么找对应图片 还是说 只要换个名就可以?

TA的精华主题

TA的得分主题

发表于 2023-6-19 13:02 | 显示全部楼层
idiocy 发表于 2023-6-19 10:32
非常非常的感谢高人的指教啊,
小弟向高人学习了.

不敢,bat稍微复杂一点就不会写了,所以是在bat里执行了几句powershell命令,win7以上系统才自带powershell,而且win7里是2.0版本,可能有兼容性问题,所以只是凑活能用
另外,如果把字符串里那段命令存为ps1后缀的文件,然后设置允许执行脚本,倒是也能像bat一样用


1. Set-Location '%CD%';
确保转到bat运行的目录,别跑到默认目录去执行后面的代码
2. $s=Get-Content name.txt -Encoding UTF8 -ErrorAction Stop;
读取name.txt的内容存入变量s,字符编码是utf8,如果没读到文件则退出整个脚本
3. $i=0;
用i从0开始计数
4. Get-ChildItem -Exclude '*.bat','*.txt' | ForEach-Object {Rename-Item $_.Name ($s[($i++)]+$_.Extension)}

列出当前目录除了bat和txt后缀的文件,注意这里列出的文件默认是按文件名排序的,然后对每个文件执行改名,新名称为变量s里的第i行,i自增1,后面加上文件后缀

不能保证没bug,请小心检查使用

TA的精华主题

TA的得分主题

发表于 2023-6-19 13:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
编辑时已经选择了“字体”为“脚本(R):中文 GB2312”结果中文还是显示的是乱码 文件另存为 编码选择 ANSI 即可
嫌麻烦 直接 ADO 读取 utf-8
vbs 写法大致跟 vba 一样

1.gif

换名.zip

1.08 KB, 下载次数: 8

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-19 13:45 | 显示全部楼层
perfect131 发表于 2023-6-19 12:40
图片名怎么找对应图片 还是说 只要换个名就可以?

按name.txt文本文档里面的命名先后顺序来重命名文件夹里面的图片名称.

TA的精华主题

TA的得分主题

发表于 2023-6-19 13:48 | 显示全部楼层
idiocy 发表于 2023-6-19 13:45
按name.txt文本文档里面的命名先后顺序来重命名文件夹里面的图片名称.

不是
01 铁板牛仔骨 - 111201 对应哪个图片,随便哪个图片都可以?
02 煎羊肚菌 - 111202 又对应哪个图片??
vbs 在审核中

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-19 14:17 | 显示全部楼层
perfect131 发表于 2023-6-19 13:48
不是
01 铁板牛仔骨 - 111201 对应哪个图片,随便哪个图片都可以?
02 煎羊肚菌 - 111202 又对应哪个 ...


文件夹内的图片文件顺序无所谓,
可以按照名称升序排,
或降序排,
或修改日期排,
或类型排,
或大小排,

主要是name.txt文本文档里面的名字顺序,
里面命名就是按照文件夹内的图片文件顺序来重命名的,
若图片文件先是按照名称升序排好了,
那name.txt文本文档里面的重命名就是按照图片名称升序重命名的,
若图片文件先是按照修改日期排好的顺序,
那name.txt文本文档里面的重命名就是按照图片修改日期顺序重命名的,
不知道小弟这样子描述高人理解了没有?



TA的精华主题

TA的得分主题

发表于 2023-6-19 14:22 | 显示全部楼层
idiocy 发表于 2023-6-19 14:17
文件夹内的图片文件顺序无所谓,
可以按照名称升序排,
或降序排,

如果是这样,我写的有错,因为powershell里的get-childitem会自动按名称排序,需要在中间加上排序方式

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-20 07:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wanghan519 发表于 2023-6-19 13:02
不敢,bat稍微复杂一点就不会写了,所以是在bat里执行了几句powershell命令,win7以上系统才自带power ...

原来如此```
有这样子的备注解释小弟看了后恍然大悟,明白许多,
非常的感谢高人的帮助指教啊.

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-20 08:01 | 显示全部楼层
perfect131 发表于 2023-6-19 13:43
编辑时已经选择了“字体”为“脚本(R):中文 GB2312”结果中文还是显示的是乱码 文件另存为 编码选择 ANSI  ...

高人写的VBS真是非常厉害啊````

非常的专业,
而且还考虑的非常的周全,
把无图或多余的图或无文件等情况都考虑到了,
真是太专业了.


小弟在网上找的那个.bat批处理按照高人的指点把它另存为选择了“编码(E):ANSI”之后窗口里面可以看到中文了,不是乱码了,
但是改名称之后的名称却是乱码,
而且可能后缀名不是常见的原因,
有几个还不能改名.


还是高人写的这个VBS代码厉害,
向高人学习了,
现在办公效率提高了很多,
感激不尽!

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-20 08:04 | 显示全部楼层
wanghan519 发表于 2023-6-19 14:22
如果是这样,我写的有错,因为powershell里的get-childitem会自动按名称排序,需要在中间加上排序方式

哦````
原来如此````
这个问题应该是小弟一开始没有表述清楚,
给高人带来了麻烦,
非常非常的抱歉啊.



小弟就是个小白,
高人说的这个太专业了,
不会在中间加上排序方式哦,
唉```


高人写的命令小弟不该乱改,
怕改坏了就用不了了.


非常的感谢高人的帮助指教啊.
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 15:28 , Processed in 0.040008 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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