我扫描了一组大约100张打印的照片,每个照片都有一个前缀和一个自动递增索引的文件名,当我已经完成了其中的80张时,我意识到这个顺序不是正确的。不管怎样,我继续说,说完了,但现在我有100个文件,上面有这些名字。
Prefix1_000.jpg
Prefix1_001.jpg
...
Prefix1_099.jpg
事实证明,(比方说)图片"Prefix1_080.jpg“实际上应该是集合中的第一个,"Prefix1_081.jpg”,第二个,等等。
我下载了PFrank,它允许我使用正则表达式对重命名文件进行批处理。问题是我对他们知之甚少。
我想把左边的名字重命名为右边的名字:
Prefix1_000.jpg --> Prefix2_020.jpg
Prefix1_001.jpg --> Prefix2_021.jpg
...
Prefix1_079.jpg --> Prefix2_099.jpg
Prefix1_080.jpg --> Prefix2_000.jpg
Prefix1_081.jpg --> Prefix2_001.jpg
...
Prefix1_099.jpg --> Prefix2_019.jpg
用正则表达式可以做到这一点吗?如果是的话,您会使用哪种搜索和替换模式?我没有问题改变前缀(以避免自我重叠)。
编辑的:不连续的数字不一定是10的倍数,比如80。它实际上是一个丑陋的数字,大约81。
发布于 2012-05-09 00:02:18
最小阻力的路径很可能是用10个步骤来完成。因此,将Prefix1_(.)0(.)\.jpg
重命名为Prefix2_\12\2\.jpg
,然后将Prefix1_(.)1(.)\.jpg
重命名为Prefix2_\13\2\.jpg
等等,我不建议尝试使用正则表达式进行算术。
在这里简单地解释一下语法:每个(.)
意味着一个应该被记住的任意单个字符(.
),供以后使用((...)
);\.
指的正是一个.
字符(相对于“任意单个字符”,意思是您刚才看到的)。然后,在替换中,\1
和\2
的意思是“第一个(...)
组”和“第二个(...)
组”。
正如所说,你也可以使用其他更通用的工具来完成这个任务。(如果我遇到同样的问题,我可能会用Python进行处理。)但是没有特别的理由不使用你拥有的工具。
发布于 2012-05-08 23:59:13
您可以通过PowerShell轻松地做到这一点。第一个,我让你来处理剩下的。不应该超过10分钟左右。
Dir Prefix1_00*.jpg | rename-item -newname { $_.name -replace "Prefix1_00","Prefix2_02" }
Dir Prefix1_01*.jpg | rename-item -newname { $_.name -replace "Prefix1_01","Prefix2_03" }
Dir Prefix1_02*.jpg | rename-item -newname { $_.name -replace "Prefix1_02","Prefix2_04" }
Dir Prefix1_03*.jpg | rename-item -newname { $_.name -replace "Prefix1_03","Prefix2_05" }
Dir Prefix1_04*.jpg | rename-item -newname { $_.name -replace "Prefix1_04","Prefix2_06" }
Dir Prefix1_05*.jpg | rename-item -newname { $_.name -replace "Prefix1_05","Prefix2_07" }
Dir Prefix1_08*.jpg | rename-item -newname { $_.name -replace "Prefix1_08","Prefix2_00" }
Dir Prefix1_09*.jpg | rename-item -newname { $_.name -replace "Prefix1_09","Prefix2_01" }
Dir Prefix1_06*.jpg | rename-item -newname { $_.name -replace "Prefix1_06","Prefix2_08" }
Dir Prefix1_07*.jpg | rename-item -newname { $_.name -replace "Prefix1_07","Prefix2_09" }
大约花了10分钟..。享受吧!
https://stackoverflow.com/questions/10508074
复制相似问题