2012-11-06 2 views
2

pom.xml 파일이 포함 된 내 Eclipse 작업 영역의 각 디렉토리에서 mvn clean compile을 실행하고 싶습니다. PowerShell을 사용하여 각 하위 디렉토리에서 명령 실행

는이 같은 .svn을 포함하는 각 디렉토리 svn update을 실행 할 수 있었다 :

PS C:\workspace> Get-ChildItem -recurse -force | 
where {$_.name -eq ".svn"} | 
foreach {svn update $_.parent.FullName} 

그러나,이 svn의 전체 경로를 제공하고 현재 디렉토리에서 실행됩니다. mvn clean compile은 afaik 디렉토리에서 실행해야합니다. 다음과 같은 일을 시도했지만, 그런 다음 무언가가 null이 될 수 없다는 오류가 발생합니다. 처음으로 cd이라고 불리는 것 같습니다. 구문 오류가 있습니까? 아니면 foreach을 잘못 사용하고 있습니까? 난 단지 디렉토리를 필터링 때문에 $_.parent.FullName 속성은 첫 번째 경우에서 일처럼

PS C:\workspace> Get-ChildItem -recurse | 
where {$_.name -eq "pom.xml"} | 
foreach { cd $_.parent.name; mvn clean compile; cd ..; } 

답변

7

보인다. 이 경우 파일을 필터링하여 대신 $_.DirectoryName을 사용하여 작업하게되었습니다.

PS C:\workspace> Get-ChildItem -recurse | 
where {$_.name -eq "pom.xml"} | 
foreach { cd $_.DirectoryName; mvn clean compile; cd ..; } 
+0

먼저 답을 승인으로 표시해야합니다. 둘째로, 만약 내가 디렉토리를 많이 가지고 있지만, 그들 각각은 svn 구조 브랜치, 트렁크 등의 디렉토리를 가지고 있고, 그 트렁크 폴더에 CD를 넣고 싶다. 'toplevel-trunk' 그리고 mvn clean 패키지를 실행 하시겠습니까? – snowe

관련 문제