【问题标题】:Robocopy specific files from Compare-Object来自比较对象的 Robocopy 特定文件
【发布时间】:2015-02-11 22:01:58
【问题描述】:

我正在尝试使用 robocopy 将特定文件复制到新位置。下面我将目录与 csv 文件进行比较以查找新文件。我将新文件放入具有全名的 $files 变量中

$files = Compare-Object $csv $location -Property fullname | 
Select-Object FullName | Where-Object {!($_.psiscontainer)} | foreach{$_.FullName}

以下是我用于 robocopy 的代码。这是正确的语法吗?

robocopy $src $dest $files

当我运行它时,我得到一个无效的参数。如何使用 robocopy 将新文件 ($files) 从旧位置复制到新位置?

谢谢!

【问题讨论】:

  • 如果您使用的是 Robocopy,那么您甚至不需要比较文件夹,Robocopy 会为您完成。我认为您需要打开命令提示符并执行robocopy /? 来查看它的选项。我猜Robocopy [source] [destination] /s /copyall /log+:Log.txt 对你有用。

标签: windows powershell csv robocopy


【解决方案1】:

当然同意@TheMadTechnician 的观点。如果我不得不做你想做的事情,这就是我根据上面的一些代码想出的。一行 Robocopy 变得有点乱。

Get-ChildItem "C:\Temp" -Recurse | Export-CSV "C:\filelisting.csv" -NoTypeInformation 

$csv1 = Import-CSV "C:\Filelisting.csv"
$folder2 = "C:\TestFolder"
$dest = "C:\Temp\Test"

Compare-Object $($csv1 | ? { $_.PSIsContainer -ne $true }) $folder2 -Property FullName | 
Foreach-Object { ROBOCOPY ([System.IO.Path]::GetDirectoryName($_.FullName)) $dest ([System.IO.Path]::GetFileName($_.FullName)) "/copyall /log+:C:\Log.txt" }

【讨论】:

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