Powershell .svn 디렉토리 삭제

Subversion 사용시 모든 Directory에 .svn 이라는 숨김 Directory가 생긴다.

File을 Checkout 한 디렉토리 밖으로 복사하여 다른 용도로 사용 하기 시작하면 의미 없는 것들이 되는데 이때 이것들을 한번에 지워주는 스크립트이다.

첫 Powershell 포스트 이기 때문에 Powershell의 여러 기능을 소개 하기 위해

동일한 동작을 하는 코드를 여러가지 버전으로 공개 하겠다.

우선 Parameter 를 다음과 같이 받는다.

param($Path)



첫번째

#Path 하위 Item들 중 '.svn'을 포함하는 항목들을 가져옴
$Items = Get-ChildItem $Path -Include '.svn' -Recurse -Force

foreach ($item in $Items)
{
	#PSIsContainer 값으로 Directory 여부를 판단
	#( $item.Attributes -eq 18 로 Hidden Directory를 감지 하는것도 좋다.)
	if ($item.PSIsContainer)
	{
		#하위 item 들 모두 삭제
		Remove-Item $item -Recurse -Force
	}
}



파이프 라인(PipeLine) 사용

Get-ChildItem $Path -Include '.svn' -Recurse -Force | Where-Object -FilterScript {$_.PSIsContainer} | ForEach-Object -Process {Remove-Item $_ -Recurse -Force};



Alias 적용

ls $Path -i '.svn' -r -fo | ?{$_.PSIsContainer} | %{rm $_ -r -fo}



완성된 스크립트 Remove-SvnDirectories.ps1

param([Parameter(Mandatory=$true,Position=0)]$Path)

ls $Path -i '.svn' -r -fo | ?{$_.PSIsContainer} | %{rm $_ -r -fo}

답글 남기기

이메일 주소는 공개되지 않습니다.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.