(Я просто собираюсь опубликовать здесь каждый путь. Это кажется неудобным, но какой от этого может быть вред, верно?)
Вот моя командная строка PowerShell:
PS D:\Local generations\Tlungvel> ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}
Rename-Item : Could not find a part of the path.
At line:1 char:6
+ ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Local genera..._02.07.2021.xls:String) [Rename-Item], DirectoryNotFoundException
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
Rename-Item : Could not find a part of the path.
At line:1 char:6
+ ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : WriteError: (D:\Local genera..._23.07.2021.xls:String) [Rename-Item], DirectoryNotFoundException
+ FullyQualifiedErrorId : RenameItemIOError,Microsoft.PowerShell.Commands.RenameItemCommand
... и так далее для каждого файла в каталоге.
Команда кажется достаточно простой даже для такого начинающего пользователя, как я ("ls | Rename-Item -NewName {"TlungvelSolar " + $_.Name}"), и она отлично работает, если количество файлов в каталоге невелико. Но если количество файлов достигает определенного порога, процесс просто повторяется бесконечно и выдает вышеуказанную ошибку для каждого файла.
например, один из файлов имеет имя "Power_Drawal_from_23.07.2021___24.07.2021".
количество файлов превысит 22 (для данного имени файла), он переименует его в "TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar TlungvelSolar Power_Drawal_from_23.07.2021___24.07.2021" (количество повторений ограничено максимальным ограничением Windows на 256 символов пути к файлу).
я хочу, чтобы он переименовал его в "TlungvelSolar Power_Drawal_from_23.07.2021___24.07.2021".
Опять же, все работает нормально, если количество файлов меньше, и, похоже, это также зависит от имен файлов.
проблема возникает из-за подачи элементов в конвейер при изменении исходного текста. [grin], что позволяет довольно легко повторно обрабатывать один и тот же элемент - в коде он выглядит как другой элемент.
Исправление заключается в одном из следующих решений ...
G-CI
в скобках, чтобы заставить вызов захватить все за один разforeach
я предпочитаю 3-й вариант, поскольку он делает набор шагов намного проще, очевиднее... и, следовательно, легче отлаживать. [grin]