[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

评分人数

TOP

  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. )
复制代码

TOP

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

本帖最后由 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)

请各位大侠指教!!!
1

评分人数

  1. tokens=1*
  2. %%b
复制代码
人生是一部书/只有这一页最温暖/读懂它的时候/我们在远方流泪...

TOP

回复 4# 回家路上


    高手,能帮忙写详细一点么,谢谢啦~~~~ 

TOP

一个苯方法,在线正则表达式测试网站,
companylist.txt内容复制填写进去

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

得到内容保存为XX.BAT放在需要处理的文件夹运行,这个还需要个第三方重命名工具ren2.exe,论坛有下载的

TOP

返回列表