2011-02-16 102 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}