繁体   English   中英

使用PowerShell在每个子目录中运行命令

[英]Run command in each sub directory using PowerShell

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

我能够为包含.svn每个目录运行svn update ,如下所示:

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 ..; }

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM