2013-08-07 6 views
1

Windows PowerShell에서 한 번에 여러 파일의 이름을 바꿔야합니다. HTG 기사 here을 읽었으며 조금 도움이되었습니다.PowerShell로 파일 이름 바꾸기

제 문제는 디렉토리의 맨 위에있는 파일의 이름을 더 깊게 변경한다는 것입니다. 예 : FOLDER A가 있고 내부 FOLDERA는 문서이고 FOLDER B. 내부 FOLDER B는 다른 문서입니다. 폴더와 두 문서 모두 이름을 바꿔야합니다. 지금 노력하고 있습니다 방법은 해당 폴더의 A, 폴더 A의 문서이며, 폴더 B의 이름이 변경되고 있지만, 폴더 B. 내부가 아닌 문서는

내 현재 코드는 다음과 같습니다에 대한

Dir | Rename-Item –NewName { $_.name –replace “ “,”_” } 

감사합니다 도움!

답변

3

당신은 그것을 재귀에 도착하는 디렉터리에 -Recurse 매개 변수를 지정해야합니다 예 :

Dir -recurse | Rename-Item -NewName {$_.Name -replace ' ','_'} 

당신은 폴더 (FOLDERB)을 이름을 변경하고 있기 때문에 BTW이 문서를 포함하는 문제로 실행할 수 있습니다 첫째 있지만, FOLDERB에있는 파일에 해당하는 파이프 된 항목은 계속 이전 이름을 갖습니다. 이 경우 아래에서 위로 이름을 변경하려고합니다. 이 작업을 수행하는 한 (내가 생각하는) 매우 원유하지만 효과적인 방법은 자신의 경로 길이 하강 등의 파일 항목을 정렬하는 것입니다 이름 바꾸기-항목 : 지정된 대상이 나타 내기 때문에 이름을 바꿀 수 없습니다 오류가 반환

Dir -recurse | Sort {$_.FullName.Length} -Desc | Rename-Item {$_.Name -replace ' ','_'} 
+0

경로 또는 장치 이름 – Kyle2595

+0

질문을 읽지 마십시오. 업데이트 된 답변으로 문제가 해결되었는지 확인하십시오. –

+0

쿨, 고마워요! 그것은 매력처럼 일했습니다! – Kyle2595