나는 그것이 매우 유용하고 강력한 :파워 쉘 값
을 찾아 원인 나는 최근, PowerShell을 사용하기 시작를 포함하는 재귀 적 변화 경로 그래서 이것은 시나리오입니다 . 최신 프로그램이 추가되어 쉼표로 인해 실패합니다. 기본적으로 쉼표를 예를 들어 "-"로 바꾸고 싶습니다.
이것은 내가 가지고있는 것입니다. 그리고 그것은 효과가 있지만 비효율적이라고 생각합니다. 스크립트는 예상대로 작동하지만 한 경로가 변경 되 자마자 원래 경로가 변경 되었기 때문에 나머지 경로가 변경됩니다. :)
$folderpath = "C:\pathcontainingcomma"
foreach ($i in get-childitem $folderpath -Recurse) {
$name = $i.name.replace(","," - ")
Rename-Item -Path $i.fullname -NewName $name -Force -Verbose
}
내가 당신이있는 경우에 질문을하시기 바랍니다, 내가 충분히 잘 설명 바랍니다 어떤 :
'Path'매개 변수가 null이므로 바인딩 할 수 없습니다. 여기에 뭔가가 빠졌습니까? 나는 어느 곳에서나 $ i를 볼 수 없다. $ items가 아니었다면이 오류가 발생한다. 이름 바꾸기 : 'System.Object []'을 매개 변수에 필요한 'System.String'유형으로 변환 할 수 없다. '통로'. 지정된 meth od는 지원되지 않습니다. 예를 들어, $ items.Name이어야합니까? –
죄송합니다. 코드를 너무 충실히 복사했습니다. foreach() {}는 보통 PowerShell에서 매우 관용적 인 해결책이 아니므로 파이프 라인을 사용하여 다시 작성했습니다. – Joey
그리고 '$ items'는 배열입니다 (실제 루프보다 먼저 반대로됩니다). 'ForEach-Object'는'$ _'을 통해 현재 파이프 라인 요소에 접근을 허용합니다 (보통 scriptblocks와 관련된 파이프 라인에서와 같이). – Joey