我想编写powershell脚本将所有工作副本从1.6 svn升级到1.7。 问题在于找到指定子目录中的所有工作副本,并在每个副本的首次匹配时停止。该脚本可以找到所有 .svn目录包含子目录,嵌套在工作副本:Powershell脚本查找所有svn工作副本
Get-ChildItem -Recurse -Force -Path "d:\Projects\" |?{$_.PSIsContainer -and $_.FullName -match ".svn$"}|Select-Object FullName
是否有任何选项停止获取,ChildItem上的第一场比赛在目录中,递归停止子目录处理?任何提示看看?
另一种方法是获取输出结果,并根据父\子目录关系用一些逻辑对列表进行排序\筛选。有点混乱的方式,即时通讯,但它也是一种选择...
你好我有同样的需要,我正要问“如何找到所有svn工作副本在win xp上”,但为了避免重复,你可以扩展这个答案。一个powershell,我可以将代码粘贴到一个bash脚本中并运行它吗? –
不,你不能粘贴这段代码到bash脚本中,cmd \ batch都不能用,你需要powershell来执行它。幸运的是有winxp的powershell 2.0可用(例如检查http://j.mp/Hbr88y) 如果你在你的机器上安装东西时仍然有问题 - 你可以尝试为bash找到相同的脚本(如你所提到的) - bash是相当强大的,这样的脚本可以很容易使用它。至于cmd(默认情况下在WinXP上发布) - 我没有太多的经验,但有一些疑问,cmd脚本将如此简短和简单作为PowerShell的一员R –
由于我添加了该评论,因此我在Win XP上安装了[来自cnet.com的Microsoft Windows PowerShell 1.0 for Windows XP](http://www.cnet.com/)。然后我在C:\上试用了你的脚本,并且得到了一个错误:Get-ChildItem:拒绝访问路径'C:\ System Volume Information'。'在我意识到脚本继续运行,尽管出现了这个错误之后,我通过添加'-ErrorAction SilentlyContinue'来找到一个[修复](http://www.computerperformance.co.uk/powershell/powershell_erroraction_silentlycontinue.htm)。无论哪种方式,你给的脚本在Win XP上的PowerShell 1上工作正常。那谢谢啦。 –