내 PowerShell 스크립트 : 내 두 번째 실행에PowerShell을 이름 변경 - 항목의 이름을 변경하지
PS C:\Temp> C:\Temp\RenameFolders.ps1
C:\Temp\m1 -> C:\Temp\m1 [1]
:이 얻을 내 첫 번째 실행에
$dst = 'C:\Temp'
#Get all folders in $dst
$folders = Get-ChildItem $dst | ?{ $_.PSIsContainer }
foreach($folder in $folders)
{
$cnt = (Get-ChildItem -filter *.txt $folder | Measure-Object).Count
$base = ($folder.FullName -split " \[.*\]$")[0]
$newname = $("{0} [{1}]" -f $base,$cnt)
Write-Host $folder.FullName "->" $newname
Rename-Item $folder.FullName $newname
}
문제
나는 이것을 얻는다 :
PS C:\Temp> C:\Temp\RenameFolders.ps1
C:\Temp\m1 [1] -> C:\Temp\m1 [0]
Rename-Item : Cannot rename because item at 'C:\Temp\m1 [1]' does not exist.
At C:\Temp\RenameFolders.ps1:15 char:5
+ Rename-Item $folder.FullName $newname
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
나는 문제가 '['와 ']'인 것을 알고 있지만, 나는 왜 그런지 이해할 수 없다.
누군가 내가 그 이유를 설명 할 수 있습니까?
이전과 이후의 폴더 구조는 어떻게됩니까? 정확히 무엇을 기대합니까? –
내 예제에서 볼 수 있듯이 ... 시작 이름 : "C : \ Temp \ m1", 이름 바꾸기 후 : "C : \ Temp \ m1 [1]", 두 번째 실행 후 ...시작 이름 : "C : \ Temp \ m1 [1]", "C : \ Temp \ m1 [0]"으로 이름 바꾸기 <-이 단계는 실패합니다 – Wolfy