比较两个列表并查找列表一中的名称,而不是使用powershell列出两个列表

时间:2013-09-25 18:26:51

标签: windows powershell compare

只是想知道你是否可以帮助我..我正在尝试比较两个列表(txt文件)并查找列表A中的字符串而不是列表B中的字符串并将其输出到另一个txt文件..任何人都知道如何使用PowerShell做到了吗?

这是我到目前为止所做的:

Compare-Object -ReferenceObject $FolderLists -DifferenceObject $AdUserName -passThru

我想查找$ FolderLists中的所有字符串而不是$ AdUserName,并可能将其输出到另一个变量。我遇到的问题是它输出的字符串不在两个列表中。

1 个答案:

答案 0 :(得分:11)

我认为 $ FolderList $ AdUserName 是字符串数组?您不需要 Compare-Object 来比较数组。就这么简单:

$FolderList | ?{$AdUserName -notcontains $_}

Compare-Object 用于比较具有公共属性的对象集合的指定属性。你可以比较对象来做这件事,如果你真的想要,就像这样:

Compare-Object $FolderList $AdUserName | ?{$_.SideIndicator -eq '<='} | Select-Object -ExpandProperty InputObject

但正如你所看到的,这项任务太过分了。

要将结果输出到另一个变量,只需指定它:

$AnotherVariable = $FolderList | ?{$AdUserName -notcontains $_}