重命名多个文件

时间:2014-12-05 12:32:43

标签: windows windows-7 file-rename batch-rename

我有近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

#符号分隔这些部分。

我可以使用一个简单的实用程序来进行此更改吗?

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"

此代码的作用是

  1. 获取文件列表:dir命令以裸格式询问.pdf个文件而不包含文件夹

  2. 过滤器只获取相应的文件:findstr命令,搜索与行的开头和结尾匹配的正则表达式,忽略大小写。针对文件名测试的表达式是:非#字符,后跟一系列非#-字符(以避免重命名文件两次),然后是#,后跟非#和一系列非#个字符,后跟#以及以.pdf

  3. for命令使用#作为标记分隔符拆分名称,并为每个名称重命名。

  4. 重命名操作仅响应控制台。如果输出正确,请删除echo命令