找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28029|回复: 5

[文本处理] 批处理如何根据关键词并按指定规则重新命名文件?

[复制链接]
发表于 2016-1-22 16:44:09 | 显示全部楼层 |阅读模式
本帖最后由 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)

请各位大侠指教!!!

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿发同类贴、重复贴

查看全部评分

 楼主| 发表于 2016-1-20 13:58:32 | 显示全部楼层

批处理如何根据关键词并按指定规则重新命名文件?

某目录下有如下文件(文件名没有规则,但一定包含“公司代码 公司简称”如“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")

可不知道为什么不成功,是不是公司代码和简称中间有个空格的缘故,需要怎么修改这条命令,请各位大侠指点,谢谢!!!

评分

参与人数 1PB -2 收起 理由
pcl_test -2 勿发笼统的标题

查看全部评分

发表于 2016-1-20 15:28:47 | 显示全部楼层
  1. for %%a in ("A001 SHZS","A002 SHGZ","A003 SHZT","A004 SHJR","A005 JDWY","A006 AZC(SH)","A007 SHODS") do (
  2.     ren "*%%~a*.xls*" "PL_201512_%%~a.xlsx"
  3. )
复制代码
发表于 2016-1-22 16:58:53 | 显示全部楼层
  1. tokens=1*
  2. %%b
复制代码
 楼主| 发表于 2016-1-22 17:05:49 | 显示全部楼层
回复 4# 回家路上


    高手,能帮忙写详细一点么,谢谢啦~~~~ 
发表于 2016-1-22 18:51:31 | 显示全部楼层
一个苯方法,在线正则表达式测试网站,
companylist.txt内容复制填写进去

勾选全局匹配
正则表达式填写
([\S]+) ([\S]+)
替换填写
ren2 -f "PL_$1.xlsx" "PL_201512_$1 $2.xlsx"

得到内容保存为XX.BAT放在需要处理的文件夹运行,这个还需要个第三方重命名工具ren2.exe,论坛有下载的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:32 , Processed in 0.010251 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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