Сравните два списка и найдите имена, которые находятся в списке один, а не в списке два, используя powershell
Просто хотел узнать, не поможешь ли ты мне.. Я пытаюсь сравнить два списка (txt-файл) и найти строки, которые находятся в списке A, а не в списке B, и вывести их в другой txt-файл.. кто-нибудь знает, как это сделать с помощью powershell ?
Вот что у меня есть до сих пор:
Compare-Object -ReferenceObject $FolderLists -DifferenceObject $AdUserName -passThru
Я хотел бы найти все строки, которые находятся в $FolderLists, а не в $AdUserName, и, возможно, вывести их в другую переменную. Проблема, с которой я сталкиваюсь, заключается в том, что он выводит строки, которых нет в обоих списках.
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