У меня есть $array
из PSCustomObjects
, которые содержат путь, дни, процеживают и RECURSE свойстваудалить объекты из массива, когда их свойство пути равняется объект в другом массиве
Я Test-Path
пути каждого PSCustomObject
и если это false
, я сохранить только путь в другой переменной, как $failpath
Теперь я хочу, чтобы удалить все объекты внутри $array
когда путь находится внутри $failpath
Я попытался вещи, как .remove()
метод $array
, но это не работает, и дал мне эту ошибку (например, ПИК из Интернета): https://i0.wp.com/www.sapien.com/blog/wp-content/uploads/2014/11/image8.png
Так что я попытался создать новый массив, но это дает мне трудное время, потому что я не знаю как правильно выполнить итерацию ошибок. так что каждый правильный объект только отправляется в новый массив один раз (когда я его пробовал, правильный объект был там несколько раз) - я не могу показать вам код для этого, потому что я уже редактировал его слишком много раз, и теперь это просто бардак.
это как $array
и $faultypath
выглядеть
$array = @(
[pscustomobject]@{
path = "\\server\daten\Alle Adressen\Dokumente 70"
filter = "*.pdf"
days = "90"
recurse = "false"
}
[pscustomobject]@{
path = "\\server\Tobit\itacom\ERP2UMS"
filter = "*.fax"
days = "7"
recurse = "false"
}
)
[string[]]$faultypath = @()
$pfade | % { if (!(Test-Path $_.path)) { $faultypath += $_.path } }
Как я могу вычитать все, что находится в $faultypath
от $array
?
Или используйте '$ массив = System.Collections.ArrayList New-Object, это позволяет .Add (- ) и .remove (
- )' ' –
whatever
System.Collections.Generic.List [строка]' будет немного быстрее –
Большое спасибо Крису, отлично работает. @ MathiasR.Jessen, если я возьму ваше утверждение, мои переменные выглядели бы так: 'System.Collections.Generic.List [string] $ faultypath =" xy "," xy2 "' не должно быть ' [строка []] '? – SimonS