Используя PowerShell, как я могу добавить файл во вновь созданную коллекцию файлов? - PullRequest
2 голосов
/ 10 августа 2011

Как создать пустую коллекцию файлов и добавить в нее файл?

Это псевдопредставление.

$filelist = get-childitem "c:\somefolder\*"

$keepfiles  = new-object psobject #????
$purgefiles = new-object psobject #????

foreach ($file in $filelist)
{
  if (somecondition)
    $keepfiles | Add-Member $file #?????
  else
    $purgefiles | Add-Member $file #?????
}

#at this point I can use my 2 new collections

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 10 августа 2011
$filelist = get-childitem "c:\somefolder\*"

$keepfiles  = new-object System.Collections.ArrayList
$purgefiles = new-object System.Collections.ArrayList

foreach ($file in $filelist)
{
  if (somecondition)
    $keepfiles.Add($file)
  else
    $purgefiles.Add($file)
}

#at this point I can use my 2 new collections
3 голосов
/ 10 августа 2011

@ Ответ EBGreen напрямую касается вашего вопроса, но вы можете выполнить то, что вы хотите, более кратко и, возможно, более мощным способом, используя ниже:

Вы можете сделать это так:

$filelist = get-childitem "c:\somefolder\*" 
$keepfiles = $filelist | ?{somecondition}
$purgefiles =  $filelist | ?{-not (somecondition)}
#$purgefiles =  compare $filelist $keepfiles | %{$_.InputObject}

(также, если вы соберете операторы и конвейеризуете их, а не собираете в переменные, вы получите лучшую производительность, так как объекты «передаются по конвейеру», когда они доступны. чистка, но не в обоих случаях, так что клубы имеют смысл)

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