10

我想mvn clean compile在我的 Eclipse 工作区中包含一个pom.xml文件的每个目录中运行。

我能够svn update为每个包含.svn这样的目录运行:

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

svn但是,这给出了当前目录的完整路径并从其运行。mvn clean compile需要在目录中运行,afaik 。尝试执行以下操作,但随后我收到一条错误消息,指出某些内容不能为空。似乎是cd它抱怨的第一个电话。我只是有一些语法错误,还是我使用foreach错误?

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

1 回答 1

15

似乎$_.parent.FullName属性在第一种情况下有效,因为我只过滤掉了目录。在这种情况下,我过滤掉了文件,所以我通过使用$_.DirectoryName来让它工作。

PS C:\workspace> Get-ChildItem -recurse | 
where {$_.name -eq "pom.xml"} | 
foreach { cd $_.DirectoryName; mvn clean compile; cd ..; }
于 2012-11-06T12:28:22.273 回答