我有将近2000个文件,需要重命名。
这些文件以以下格式命名:PART1#PART2#PART3.pdf
我想批量重命名文件,以便将PART2移到PART1之前,例如PART2#PART1#PART3.pdf
PART 1 = A random document reference e.g. 124244
PART 2 = A reference number e.g. 12-12434-A
PART 3 = A short description e.g. Part 1
#符号将这些部分分开。
有没有可以用来进行此更改的简单实用程序?
使用批处理文件
@echo off
setlocal enableextensions disabledelayedexpansion
cd /d "c:\where\thefiles\are"
for /f "tokens=1,2,* delims=#" %%a in ('
dir /b /a-d *.pdf ^| findstr /r /b /e /i /c:"[^#][^#-]*#[^#][^#]*#..*\.pdf"
') do echo ren "%%a#%%b#%%c" "%%b#%%a#%%c"
该代码的作用是
获取文件列表:一个dir
命令以.pdf
无文件夹的裸格式请求文件
进行筛选以仅获取关联的文件:findstr
命令,搜索与行的开头和结尾匹配的正则表达式,而忽略大小写。针对文件名测试的表达式是:非#
字符,后跟一个非字符#
或-
字符序列(以避免两次重命名文件),后跟一个#
,然后是一个#
非#
字符序列和一个非字符序列,然后是a#
以及任何以结尾的字符序列.pdf
该for
命令使用#
as标记定界符分割名称,并为每个名称重命名。
重命名操作仅回显到控制台。如果输出正确,请删除echo
命令
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句