仅适用于少数文件的 Powershell 命令
Powershell command that only works properly for a few files
我有一堆名为 001.jpg
、002.jpg
等的文件。我想重命名它们 Gym Heroes - 001 (US).jpg
,等等。我写了这个 Powershell 命令:
dir | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
当有 35 张或更少的图片时,这会按预期工作,但从 36 张图片开始,所有图片都被奇怪地重命名 (Gym Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - 016 (US).jpg
),我收到每个文件的以下错误消息(不是确切的错误消息,因为我将其翻译成英文):
Rename-Item : Part of the access path is impossible to find.
At character Line:1 : 7
+ dir | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Downloads... - 062 (US).jpg:String) [Rename-Item], DirectoryNotFoundE
xception
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommande
我完全不明白为什么会这样...我可以将我的图片重命名为 35 x 35,但我想了解为什么我的命令无法正常工作。
谢谢!
您需要在括号中包含您的 dir/gci 命令,以强制它先求值。否则,您可能会得到一些看似已处理多次的项目。
所以...
(dir) | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
我建议您适当地循环浏览您的文件并一个一个地重命名。
dir | % {
$_ | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
}
我不确定 dir
命令中的管道 Rename-Item
是如何工作的。
无论如何,用 2,000 个文件对此进行了测试。
我有一堆名为 001.jpg
、002.jpg
等的文件。我想重命名它们 Gym Heroes - 001 (US).jpg
,等等。我写了这个 Powershell 命令:
dir | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
当有 35 张或更少的图片时,这会按预期工作,但从 36 张图片开始,所有图片都被奇怪地重命名 (Gym Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - Gym (US) Heroes - 016 (US).jpg
),我收到每个文件的以下错误消息(不是确切的错误消息,因为我将其翻译成英文):
Rename-Item : Part of the access path is impossible to find.
At character Line:1 : 7
+ dir | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Downloads... - 062 (US).jpg:String) [Rename-Item], DirectoryNotFoundE
xception
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommande
我完全不明白为什么会这样...我可以将我的图片重命名为 35 x 35,但我想了解为什么我的命令无法正常工作。
谢谢!
您需要在括号中包含您的 dir/gci 命令,以强制它先求值。否则,您可能会得到一些看似已处理多次的项目。
所以...
(dir) | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
我建议您适当地循环浏览您的文件并一个一个地重命名。
dir | % {
$_ | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
}
我不确定 dir
命令中的管道 Rename-Item
是如何工作的。
无论如何,用 2,000 个文件对此进行了测试。