如何创建空白文件集,然后向其中添加文件?
这是伪代表。
$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
提前致谢。
答案 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}
(另外,如果您使用语句并对其进行管道处理,而不是收集变量,您将获得更好的性能,因为对象通过管道“流式传输”,只要它们可用。此外,您可能只计算保持或清除但不是大多数时间都是如此,所以夜总会有意义)