来自Compare-Object的Robocopy特定文件

时间:2015-02-11 22:01:58

标签: windows powershell csv robocopy

我尝试使用robocopy将特定文件复制到新位置。下面我将目录与csv文件进行比较以查找新文件。我将新文件放入带有全名

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

以下是用于robocopy的代码。这是正确的sytnax吗?

robocopy $src $dest $files

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

谢谢!

1 个答案:

答案 0 :(得分:0)

当然与@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" }