Вместо этого вы можете использовать регулярное выражение notmatch
. Это будет намного быстрее, чтобы выполнить.
Что-то вроде
Get-AppxPackage | Where-Object {$_.name -notmatch 'store|MSPaint'}
Вместо того, чтобы вводить буквенные имена в , а не , вы можете построить шаблон из массива или считав текстовый файл.
Допустим, у вас есть список имен в текстовом файле
store
MSPaint
...
Затем вы можете прочитать этот файл как массив с помощью
$list = Get-Content -Path "<PATH TO THE FILE>"
Далее объедините этот список, чтобы построить шаблон, подобный
$pattern = (($list | ForEach-Object {[regex]::Escape($_)}) –join "|")
и сделать
Get-AppxPackage | Where-Object {$_.name -notmatch $pattern}
Надеюсь, это поможет