Сравните два списка и найдите имена, которые находятся в списке один, а не в списке два, используя powershell



Просто хотел узнать, не поможешь ли ты мне.. Я пытаюсь сравнить два списка (txt-файл) и найти строки, которые находятся в списке A, а не в списке B, и вывести их в другой txt-файл.. кто-нибудь знает, как это сделать с помощью powershell ?



Вот что у меня есть до сих пор:



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


Я хотел бы найти все строки, которые находятся в $FolderLists, а не в $AdUserName, и, возможно, вывести их в другую переменную. Проблема, с которой я сталкиваюсь, заключается в том, что он выводит строки, которых нет в обоих списках.

633   1  

1 ответ:

Я предполагаю, что $FolderList и $AdUserName являются массивами строк? На самом деле вам не нужно Compare-Object Для сравнения массивов. Все очень просто:

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

Compare-Object предназначен для сравнения заданных свойств коллекций объектов с общими свойствами. Вы могли бы сделать это с Compare-Object, Если вы действительно хотите, вот так:

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

Но, как вы можете видеть, это перебор для этого задача.

Чтобы вывести результат в другую переменную, просто назначьте ее:

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

Comments

    Ничего не найдено.