我想編寫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上工作正常。那謝謝啦。 –