2012-06-26 5 views
2

난에 대한 PowerShell을 사용하려면이 작업이 :PowerShell에서 파일의 이름을 바꾸려면 어떻게해야합니까?

1 - 나는 또한

2 Default.aspx를 위해 모든 index.asp의 이름을 바꿀 필요 - 내가 필요한 디렉토리 C:\WWW이 모든 .asp 파일의 이름을 .aspx으로 재귀 적으로 변경하십시오.

나는 Rename-Item 명령을 시도했지만 항상 오류가 발생합니다.

해당 파일이 이미 내가 PowerShell에서 파일 이름을 바꿀 수있는 방법

존재하는 경우 파일을 만들 수 없습니다?

답변

5

Get-ChildItem cmdlet을 사용하면 모든 index.asp 파일을 가져올 수 있습니다. 결과를 Rename-Item cmdlet에 파이프하고 파일에 새 이름을 지정합니다.

이 ASP 파일, 통지에 대해 동일한 작업을 수행 파이프 파일 확장자에 따라`어디-객체 'cmdlet을 필터에 결과 때문에

Get-ChildItem c:\www -Filter Index.asp -Recurse | Where-Object {$_.Extension -eq '.asp' } | Rename-Item -NewName Default.aspx 

, 그 index.aspx뿐만 아니라 당신에게 파일을 얻을 것이다 이제 .aspx 파일도 얻을 수 있으므로 결과를`Where-Object 'cmdlet에 파이프하고 파일 확장명을 기준으로 필터링하십시오. 새로운 이름으로

Get-ChildItem c:\www -Filter *.asp -Recurse | Where-Object {$_.Extension -eq '.asp' } | Rename-Item -NewName {$_.BaseName + '.aspx'} 
+0

가 완벽하게 작동 '에서 .aspx'을 (확장자없이) 각 파일의 단지 기본 이름을 가지고 그것을 추가합니다. 귀하의 도움을 주셔서 감사합니다. – Unreal1969

+0

@Shay 첫 번째 코드 줄에서는 Index.asp를 필터링하고 .asp에서 .aspx를 제거하기 위해 Where .ing을 필터링합니다. 필자가보기에'Index.asp'와'Index.aspx'를 둘 다 사용하는 디렉토리에서'Index.asp' 파일을 필터링하면 이전 파일을 찾게됩니다. 이 두 가지 다른 결과를 초래할 수있는 무언가가 있습니까, 아니면 그냥 감독입니까? – SpellingD

+0

@ SpellingD 네 말이 맞아, 나는 똑같은 결과를 얻고있다. 재미있는, 와일드 카드로 필터링하면 aspz 파일도 얻을 수 있지만 파일 이름을 지정하면 asp 파일 만 반환됩니다! 이것을 지적 해 주셔서 감사 드리며, 제 답변을 업데이트하겠습니다. –

관련 문제