gpt4 book ai didi

powershell - 使用 Powershell 反转一组文件名中的序列号

转载 作者:行者123 更新时间:2023-12-04 01:55:29 25 4
gpt4 key购买 nike

我刚开始使用 PowerShell(以及相关的编码),我想做的就是重命名我的文件。

我有 222 个名为 .jpg 的

"REF_10001.jpg" 
"REF_10002.jpg"
"REF_10003.jpg"
etc

但我的问题是它们的顺序错误,我需要将它们反转,例如我需要

"REF_10001.jpg" --> "REF_10222.jpg"

反之亦然。

"REF_10222.jpg" --> "REF_10001.jpg"

有没有办法做到这一点?为了正确重命名我的文件,我花了好几个小时才意识到它们的顺序是错误的,此时我很想单独做它们。

另外,如果有人可以帮我更改文件以供阅读

"REF.0001.jpg" 
"REF.0002.jpg"
etc.

那就太好了。

或者如果我的要求不可能,在我开始尝试重命名它们之前,我有一个图像序列的备份文件夹,文件读取

_0221_Layer 1.jpg
_0220_Layer 2.jpg
...
_0000_Layer 222.jpg

我需要改变它们以便

"_0221_Layer 1.jpg"    -->  "Ref.0001.jpg"
...
"_0000_Layer 222.jpg" --> "Ref.0222.jpg"

最佳答案

试试这个:

Get-ChildItem ".\Pics\*.jpg" | 
ForEach-Object {$i = 1} {
Rename-Item -LiteralPath $_.FullName -NewName "$($_.BaseName)-$i.jpg"
$i++
}

Get-ChildItem ".\Pics\*.jpg" |
ForEach-Object {$j = 222} {
Rename-Item -LiteralPath $_.FullName -NewName "REF_$("1{0:0000}" -f $j).jpg"
$j--
}

这对我来说似乎有点低效,因为你需要枚举两次,但它适用于我的测试文件,所以希望足以解决你眼前的问题。

第一个循环向文件名添加了一个唯一的“标签”,该标签后来被丢弃 - 这是必需的,否则您最终会发生冲突(例如,如果您尝试将“REF_10001”命名为“REF_10222”,它将失败,因为后者已经存在。

关于powershell - 使用 Powershell 反转一组文件名中的序列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com