如何使用Windows批处理文件重命名大量文件夹

时间:2013-12-03 15:32:33

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

我需要使用批处理脚本文件更改很多文件夹..

我有这些名称文件夹的格式:

  • 2013.03.12.08.05.06_Debug_Test1
  • 2013.03.12.08.04.09_Debug_Test2
  • ...

我需要改变:

  • 2013.12.03.08.05.06_Debug_Test1
  • 2013.12.03.08.04.09_Debug_Test2

使用数字03

反转数字12

这可以使用Windows批处理文件吗?

2 个答案:

答案 0 :(得分:4)

@echo off
for /f "tokens=1,2,3*delims=." %%a in ('dir /b /ad "*.*.*.*") do if not %%b==%%c echo ren "%%a.%%b.%%c.%%d" "%%a-%%c.%%b.%%d"
for /f "tokens=1,2,3*delims=.-" %%a in ('dir /b /ad "*-*.*.*") do if not %%b==%%c echo ren "%%a-%%b.%%c.%%d" "%%a.%%b.%%c.%%d"

应该让你开始。

第一个FOR选择格式为*.*.*.*的目录,并在第二个和第三个元素交换时重命名*-*.*.*

第二个重命名重命名的目录,将-更改为.

考虑目录2013.03.12.08.05.06_Debug_Test12013.12.03.08.05.06_Debug_Test1 - 尝试重命名目录将失败,因为另一个存在,因此需要重命名两次。

(我假设您的目录名中不存在' - ' - 您可能希望替换其他字符 - #@$,{{1}建议自己)

请注意,我只是q重命名。由于第二次重命名取决于第一次重命名,因此在仔细检查后从{1}移除ECHO之后才会生成第二组。

我建议您先创建一个示例子目录进行测试,包括我突出显示的名称。

答案 1 :(得分:1)

使用StringSolver,需要有效的JRE安装和sbt,允许使用半自动版本的移动:

move 2013.03.12.08.05.06_Debug_Test1 2013.12.03.08.05.06_Debug_Test1

然后检查转换:

move --explain

concatenates for all a>=0 (a 2-digit number from the substring starting at the a+1-th number ending at the end of the a+1-th AlphaNumeric token in first input + the substring starting at the 2*a+2-th token not containing 0-9a-zA-Z ending at the end of the a+3-th non-number in first input) + the first input starting at the 4th AlphaNumeric token.

这意味着它通过以下方式分解转换:

2013.12.03.08.05.06_Debug_Test1
AAAABBBBAABCCCCCCCCCCCCCCCCCCCC
where
A is "a 2-digit number from the substring starting at the a+1-th number ending at the end of the a+1-th AlphaNumeric token in first input"
B is "the substring starting at the 2*a+2-th token not containing 0-9a-zA-Z ending at the end of the a+3-th non-number in first input"
C is "the first input starting at the 4th AlphaNumeric token."

对应于您对此类文件夹的预期。

如果你不相信它,你就可以畅通无阻:

move --test

显示映射对所有文件夹的作用。

然后使用move --auto或缩写命令

对所有文件夹执行转换
move

替代

使用Monitor.ps1已修改并在Powershell -Sta中运行,您可以在Windows中自行完成此操作Youtube video

免责声明:我是为学术目的而开发的此软件的合着者。