Вычесть строковую переменную из другой строковой переменной - PullRequest
0 голосов
/ 03 октября 2018

Как я могу удалить элементы в $b из $a?

$a = "aa","bb","cc","dd","ee"

$b = "bb","dd"

Знаете ли вы хорошее решение?

Спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Команда Compare-Object - это самый простой способ сделать это, хотя он и не очень надежен, если вы хотите использовать его в производстве, вам может потребоваться более продуманное решение.

$c = Compare-Object -ReferenceObject $a -DifferenceObject $b | ? SideIndicator -eq '<=' | Select -Expand InputObject

Другой способ, который довольно похож, но, на мой взгляд, более читабелен:

$c = $a | ? {$_ -notin $b}

Другой способ - использовать команду Group-Object и выбирать уникальные записи, но это будут те, которые были в $bно НЕ в $a.

$c = $a+$b | Group-Object | ? Count -eq 1 | Select -Expand Group

все эти методы будут выводить:

aa
cc
ee
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...