使用排除集比较两个不同的文件夹

时间:2013-08-26 22:18:34

标签: powershell

我有以下脚本,用于比较桌面上的两个不同文件夹

$count1 = Get-ChildItem -Path 'c:\users\mhopkins\desktop\test\Application' -Recurse -Force
$count2 = Get-ChildItem -Path 'c:\users\mhopkins\desktop\test\R611' -Recurse -Force
$results = Compare-Object -ReferenceObject $count1 -DifferenceObject $count2

fileX.txtfileY.txt都存在于\Application\但不存在\R611\。如何才能使它只返回fileY.txt? Aka,添加“允许差异”数据集?

1 个答案:

答案 0 :(得分:1)

如果你有PowerShell 3,这是相对微不足道的:

$allowedDiffs = "FileX.txt","FileZ.txt"
Compare-Object (gci 'c:\users\mhopkins\desktop\test\Application' -recurse -force') ('c:\users\mhopkins\desktop\test\R611' -recurse -force) | Where-Object {$_.InputObject -notin $allowedDiffs}

否则,在PowerShell 2中,您可以将compare-object命令的结果传递给foreach循环,然后在$ allowedDiffs数组上执行另一个for-each循环。