
(그냥 모든 경로를 여기에 올릴 예정입니다. 어색하게 친밀감이 느껴지지만 어떤 해를 끼칠 수 있겠습니까?)
내 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"로 바꾸고 싶습니다.
다시 말하지만, 파일 수가 적으면 잘 작동하고 파일 이름에 따라 달라지는 것 같습니다.
답변1
문제는 파이프라인에 항목을 공급하여 발생합니다.소스를 바꾸면서.[이를 드러내고 웃다] 동일한 항목을 다시 처리하는 것이 매우 쉽습니다. 코드와는 다른 항목처럼 보입니다.
수정 사항은 아래 솔루션 중 하나와 같습니다 ...
- 모든 항목을 $Var에 넣고 피드완전한 컬렉션파이프라인으로
G-CI
호출이 모든 것을 가져오도록 호출을 괄호로 묶습니다 .한 번foreach
루프 를 사용하다
나는 그 중 세 번째를 선호합니다. 왜냐하면 훨씬 더 간단하고 더 명확한 단계 세트를 제공하고 디버그하기가 더 쉽기 때문입니다. [이를 드러내고 웃다]