0

我有一堆名为 的文件001.jpg002.jpg依此类推。我想重命名它们Gym Heroes - 001 (US).jpg,等等。我写了这个 Powershell 命令:

dir | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }

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当有 35 张或更少的图片时,这可以按预期工作,但是从 36 张图片开始,所有图片都被奇怪地重命名(

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 到 35,但我想了解为什么我的命令无法正常工作。

谢谢!

4

2 回答 2

2

您需要在括号中包含您的 dir/gci 命令以强制它首先进行评估。否则,您可能会得到一些似乎被多次处理的项目。

所以...

(dir) | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
于 2020-02-20T13:59:27.320 回答
0

我建议正确循环浏览您的文件并一一重命名。

dir | % {
    $_ | Rename-Item -NewName { "Gym Heroes - " + $_.name.Insert(3," (US)") }
}

我不确定命令Rename-Item中的管道是如何dir工作的。

无论如何,用 2,000 个文件对此进行了测试。

于 2020-02-20T14:16:56.697 回答