如何解决Powershell通过按升序替换n个字符来重命名文件名
我想按升序替换60-后的3个字符。 我已使用以下代码删除了前28个字符
获取子项* |重命名项目-newname {string.substring(28)}
然后使用以下命令重命名
$ i = 1
dir | ForEach-Object {$ _ |重命名项-NewName('00092-100221-XX-A-233-60- {0:D3} {1} {2}'-f $ i ++,$ .BaseName,$ .Extension )}
但是我最终失去了原始文件顺序。是否可以通过保持原始文件顺序来重命名这些文件的方式,并且还可以节省一些时间?
解决方法
您可以一步完成所有操作,从而保留原始文件顺序:
$script:i = 1
Get-ChildItem | Rename-Item -NewName {
'00092-100221-XX-A-233-60-{0:D3}{1}' -f $script:i++,$_.Name.SubString(28)
}
(请注意,我明确指定了$i
的范围,否则该值将不会增加。)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。