【问题标题】:Piping output from get-childitem to robocopy从 get-childitem 管道输出到 robocopy
【发布时间】:2016-10-26 03:21:15
【问题描述】:

我有一组需要移动到备份位置的文件。我正在使用 get-childitem 命令收集所需项目的数组。一旦收集的物品列表准备好,我希望使用 robocopy 来移动物品。

$paths=@()

$srcitems = get-childitem $paths 

robocopy $srcitems $dest /move

这行得通吗?
如果不是,将每个单独的项目通过管道传输到 robocopy 的最佳方式是什么?

谢谢
钢铁侠

【问题讨论】:

    标签: powershell powershell-2.0 robocopy


    【解决方案1】:
               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 来获取该列表,并为文件名硬编码通配符规范。如果您有文件列表,则需要将它们拆分为目录/文件(我会使用拆分路径),并为每个源目录调用 robocopy,指定其中的文件列表目录。

    【讨论】:

    • 非常感谢 mjolinor,您的建议帮助我为我的工作创建了一个好的工作脚本。
    【解决方案2】:

    类似情况,发布以防万一:

    我需要复制(移动)一些以“星期五”开头的文件夹以及从源到目标的项目,并想出了这个似乎可行的方法:

    Get-ChildItem T:\ParentFolder -Filter "Friday*" -Name | ForEach-Object { robocopy "T:\ParentFolder\$_" "E:\$_" /z /s /MOVE }
    
    • “Get-ChildItem”部分列出文件夹名称 (-Name) 开始 带有“星期五”(-过滤“星期五*”)。
    • 这将通过管道传输到 ForEach-Object,robocopy 将为找到的每个实例执行。
    • robocopy /MOVE 参数显然会移动文件夹/文件。

    我对 Powershell 还很陌生;不确定是否有更好的方法。脚本仍在运行,但到目前为止一切正常。

    @walid2mi 使用 Move-Item,我确信它可以工作;我只是喜欢 robocopy b/c 它有一个可重启模式 (/Z)。

    【讨论】:

      【解决方案3】:

      对我有用的语法:

      $srcPath = "C:\somefolder"
      $dstPath = "C:\someOtherFolder"
      $srcitems = get-childitem $srcPath #whatever condition
      
      $srcitems | Select Name | ForEach-Object {robocopy $srcPath $dstPath $_.name}
      

      (根据 robocopy 文档很明显)

      【讨论】:

        【解决方案4】:

        robocopy

        Get-ChildItem $paths | Move-Item -Destination $dest  -WhatIf
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多