使用PowerShell,如何将文件添加到新创建的文件集合中?

时间:2011-08-09 20:24:56

标签: .net scripting powershell powershell-v2.0 file-manipulation

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

这是伪代表。

$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 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

@ EBGreen的答案直接解决了你的问题,但你可以用更简洁的方式完成你想要的,并且可以用更多的Powershell方式使用以下方法:

你可以这样做:

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

(另外,如果您使用语句并对其进行管道处理,而不是收集变量,您将获得更好的性能,因为对象通过管道“流式传输”,只要它们可用。此外,您可能只计算保持或清除但不是大多数时间都是如此,所以夜总会有意义)