标题: [文本处理] 批处理如何根据关键词并按指定规则重新命名文件? [打印本页]
作者: 蓝色火焰 时间: 2016-1-20 13:58 标题: 批处理如何根据关键词并按指定规则重新命名文件?
某目录下有如下文件(文件名没有规则,但一定包含“公司代码 公司简称”如“A001 SHZS”、“A002 SHGZ”,如下:
利润表_201512_A001 SHZS.xlsx
A002 SHGZ.xlsx
PL_ A003 SHZT.xlsx
损益表_A004 SHJR_201512.xlsx
PL 201512_A005 JDWY.xlsx
财务报表 _A006 AZC(SH).xlsx
PL 2015 A007 SHODS.xlsx
想统一命名成有规律的文件名称,结果如下:
PL_201512_A001 SHZS.xlsx
PL_201512_A002 SHGZ.xlsx
PL_201512_A003 SHZT.xlsx
PL_201512_A004 SHJR.xlsx
PL_201512_A005 JDWY.xlsx
PL_201512_A006 AZC(SH).xlsx
PL_201512_A007 SHODS.xlsx
利用文件名中包含公司代码及简称的规律(A001 SHZS,A002 SHGZ,A003 SHZT,A004 SHJR,A005 JDWY,A006 AZC(SH),A007 SHODS),用for命令重命名如下:
for %%a in (A001 SHZS,A002 SHGZ,A003 SHZT,A004 SHJR,A005 JDWY,A006 AZC(SH),A007 SHODS) do (ren "*%%a*.xls*" "PL_201512_%%a.xlsx")
可不知道为什么不成功,是不是公司代码和简称中间有个空格的缘故,需要怎么修改这条命令,请各位大侠指点,谢谢!!!
作者: WHY 时间: 2016-1-20 15:28
- for %%a in ("A001 SHZS","A002 SHGZ","A003 SHZT","A004 SHJR","A005 JDWY","A006 AZC(SH)","A007 SHODS") do (
- ren "*%%~a*.xls*" "PL_201512_%%~a.xlsx"
- )
复制代码
作者: 蓝色火焰 时间: 2016-1-22 16:44 标题: 批处理如何根据关键词并按指定规则重新命名文件?
本帖最后由 pcl_test 于 2016-1-22 16:58 编辑
有文件如下:
PL_A01.xlsx
损益表_A02.xlsx
利润表_A03.xlsx
报表_A04.xlsx
财报_A05.xlsx
...
请教各位大侠,如何用for /f命令批量把以上文件改为:
PL_A01 SHZS.xlsx
PL_A02 SHGZ.xlsx
PL_A03 SHZT.xlsx
PL_A04 SHJR.xlsx
PL_A05 AZC(SH).xlsx
...
============================
我现在是用:
for /f "delims= " %%a in (companylist.txt) do (ren "*%%a*.xls*" "PL_%%a.xlsx")
但只能改成:
PL_A01.xlsx
PL_A02.xlsx
PL_A03.xlsx
PL_A04.xlsx
PL_A05.xlsx
...
companylist.txt内容如下:
A01 SHZS
A02 SHGZ
A03 SHZT
A04 SHJR
A05 AZC(SH)
请各位大侠指教!!!
作者: 回家路上 时间: 2016-1-22 16:58
复制代码
作者: 蓝色火焰 时间: 2016-1-22 17:05
回复 4# 回家路上
高手,能帮忙写详细一点么,谢谢啦~~~~
作者: xp3000 时间: 2016-1-22 18:51
一个苯方法,在线正则表达式测试网站,
companylist.txt内容复制填写进去
勾选全局匹配
正则表达式填写
([\S]+) ([\S]+)
替换填写
ren2 -f "PL_$1.xlsx" "PL_201512_$1 $2.xlsx"
得到内容保存为XX.BAT放在需要处理的文件夹运行,这个还需要个第三方重命名工具ren2.exe,论坛有下载的
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |