2011-02-16 66 views
0

我有一組需要移動到備份位置的文件。我正在使用get-childitem命令收集所需項目的數組。一旦收集到的項目列表準備就緒,我正在尋找使用robocopy來移動東西。從get-childitem到robocopy的管道輸出

[email protected]() 

$srcitems = get-childitem $paths 

robocopy $srcitems $dest /move 

這工作?
如果沒有什麼是最好的方式管道每個單個項目robocopy?

感謝
Steeluser

回答

2
  Usage :: ROBOCOPY source destination [file [file]...] [options] 

     source :: Source Directory (drive:\path or \\server\share\path). 
    destination :: Destination Dir (drive:\path or \\server\share\path). 
      file :: File(s) to copy (names/wildcards: default is "*.*"). 

的Robocopy期待一個源目錄,目標目錄和文件規範作爲參數。不知道你的「收集物品清單」是什麼樣子,很難給出明確的答案。如果它是源代碼目錄,那麼您可以通過robocopy的配置對該列表進行foreach,併爲通配符規範對文件名進行硬編碼。如果你有一個文件列表,你需要將它們分割成目錄/文件(我使用分割路徑),併爲每個源目錄調用robocopy,指定文件列表目錄。

+0

非常感謝mjolinor(根據文件ROBOCOPY這是顯而易見的),您的建議,幫助我創造良好的工作劇本,我的工作。 – Animesh 2011-03-24 00:57:20

2

類似的情況下,發佈的情況下,它可以幫助:

我需要複製(移動)的一些文件夾中所有與「星期五」開始,項目內從源到目的地,以及與此似乎想出了合作:

Get-ChildItem T:\ParentFolder -Filter "Friday*" -Name | ForEach-Object { robocopy "T:\ParentFolder\$_" "E:\$_" /z /s /MOVE } 
  • 「獲取-ChildItem」 部分列出文件夾名稱(雜牌)開始 與 「星期五」(篩選器 「星期五*」)。
  • 這會被傳送到ForEach對象,其中robocopy將針對找到的每個實例執行。
  • robocopy/MOVE參數顯然會移動文件夾/文件。

我對Powershell相當陌生;不知道是否有更好的方法。該腳本仍在運行,但迄今爲止非常好。

@ walid2mi使用移動項目,我敢肯定的作品;我只是喜歡robocopy b/c它有一個可重啓模式(/ Z)。

1

語法爲我工作:

$srcPath = "C:\somefolder" 
$dstPath = "C:\someOtherFolder" 
$srcitems = get-childitem $srcPath #whatever condition 

$srcitems | Select Name | ForEach-Object {robocopy $srcPath $dstPath $_.name}