我需要使用批处理脚本文件更改很多文件夹..
我有这些名称文件夹的格式:
我需要改变:
使用数字03
反转数字12这可以使用Windows批处理文件吗?
答案 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_Test1
和2013.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。
免责声明:我是为学术目的而开发的此软件的合着者。