我有一系列需要移动到备份位置的文件。我正在使用get-childitem命令收集所需项目的数组。我希望在收集的物品清单准备就绪后使用robocopy来移动东西。
$paths=@()
$srcitems = get-childitem $paths
robocopy $srcitems $dest /move
这有用吗?
如果不是管道到每个单独项目到robocopy的最佳方法是什么?
感谢
Steeluser
答案 0 :(得分: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的ivocation来预先处理该列表,并对文件名进行硬编码。如果你有一个文件列表,你需要将它们分成目录/文件(我使用拆分路径),并为每个源目录调用robocopy,指定其中的文件列表。目录
答案 1 :(得分:2)
类似的情况,发布以防万一:
我需要复制(移动)一些文件夹,所有文件夹都以“星期五”开头,以及从源到目的地的项目,并提出了似乎有效的文件:
Get-ChildItem T:\ParentFolder -Filter "Friday*" -Name | ForEach-Object { robocopy "T:\ParentFolder\$_" "E:\$_" /z /s /MOVE }
我对Powershell很新;不确定是否有更好的方法。该脚本仍在运行,但到目前为止还不错。
@ walid2mi使用Move-Item,我确信它有效;我喜欢robocopy b / c它有一个可重启的模式(/ Z)。
答案 2 :(得分:1)
对我有用的语法:
$srcPath = "C:\somefolder"
$dstPath = "C:\someOtherFolder"
$srcitems = get-childitem $srcPath #whatever condition
$srcitems | Select Name | ForEach-Object {robocopy $srcPath $dstPath $_.name}
(根据robocopy文档显而易见)
答案 3 :(得分:-1)
Get-ChildItem $paths | Move-Item -Destination $dest -WhatIf