@ Ответ EBGreen напрямую касается вашего вопроса, но вы можете выполнить то, что вы хотите, более кратко и, возможно, более мощным способом, используя ниже:
Вы можете сделать это так:
$filelist = get-childitem "c:\somefolder\*"
$keepfiles = $filelist | ?{somecondition}
$purgefiles = $filelist | ?{-not (somecondition)}
#$purgefiles = compare $filelist $keepfiles | %{$_.InputObject}
(также, если вы соберете операторы и конвейеризуете их, а не собираете в переменные, вы получите лучшую производительность, так как объекты «передаются по конвейеру», когда они доступны. чистка, но не в обоих случаях, так что клубы имеют смысл)