我有近2000个文件需要重命名。
文件以下列格式命名:PART1#PART2#PART3.pdf
我想批量重命名文件,以便在PART1之前移动PART2,例如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
#符号分隔这些部分。
我可以使用一个简单的实用程序来进行此更改吗?
答案 0 :(得分:0)
使用批处理文件
@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
命令,搜索与行的开头和结尾匹配的正则表达式,忽略大小写。针对文件名测试的表达式是:非#
字符,后跟一系列非#
或-
字符(以避免重命名文件两次),然后是#
,后跟非#
和一系列非#
个字符,后跟#
以及以.pdf
for
命令使用#
作为标记分隔符拆分名称,并为每个名称重命名。
重命名操作仅响应控制台。如果输出正确,请删除echo
命令