2

如何创建一个空白文件集合然后向其中添加文件?

这是伪表示。

$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

提前致谢。

4

2 回答 2

4
$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
于 2011-08-09T21:07:42.953 回答
3

@EBGreen 的答案直接解决了您的问题,但是您可以使用以下方式以更简洁且可以说以更 Powershell 的方式完成您想要的事情:

你可以这样做:

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

(此外,如果您将语句合并并管道它们,而不是在变量中收集,您将获得更好的性能,因为只要对象可用,就会通过管道“流式传输”。此外,您可能只会计算保留或清除而不是大多数时候都是这样,所以泡吧是有道理的)

于 2011-08-09T21:27:55.840 回答