0

我有下面的脚本,它比较了我桌面上的两个不同文件夹

$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.txt存在fileY.txt\Application\但不存在\R611\。我怎样才能让它只fileY.txt被退回?又名,添加“允许的差异”数据集?

4

1 回答 1

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 循环。

于 2013-08-27T02:14:31.693 回答