我已经扫描了一组约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.
答案 0 :(得分:1)
您可以使用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分钟......享受!
答案 1 :(得分:1)
阻力最小的路径可能是以10个步骤完成。因此,请将Prefix1_(.)0(.)\.jpg
重命名为Prefix2_\12\2\.jpg
,然后将Prefix1_(.)1(.)\.jpg
重命名为Prefix2_\13\2\.jpg
,等等。我不建议尝试使用正则表达式进行算术运算。
这里简单解释一下语法:每个(.)
表示一个任意单个字符(.
),应该记住以供以后使用((...)
); \.
意味着一个.
字符(而不是“任何单个字符”,意思是你之前看过的)。然后,在替换中,\1
和\2
表示“第一个(...)
组”和“第二个(...)
组”。
正如Chris Gessler所说,你也可以使用其他更通用的工具。 (如果我遇到同样的问题,我可能会用Python做。)但是没有特别的理由不使用你已经拥有的工具。