过滤此集合并写入txt文件

时间:2011-11-05 18:48:50

标签: powershell

我有以下powershell脚本: -

$Files = gci "e:\sourcecontrolledprojects\genericsolution\genericsolution" -recurse | Where {$_.extension -eq ".dll"} 
$Files | Format-Table FullName | 

如何过滤此选项仅返回文件名中包含test的Dll,并将每个Dll路径写入文本文件中的新行?

由于

3 个答案:

答案 0 :(得分:1)

$Files = gci "e:\sourcecontrolledprojects\genericsolution\genericsolution" -recurse -filter "*test*.dll"  
$Files | foreach-object {$_.fullname} | out-file testdll.txt

答案 1 :(得分:1)

试试这个:

gci e:\sourcecontrolledprojects\genericsolution\genericsolution -Include "*test*.dll" -Recurse | 
select -expand fullname | out-file test.txt

谨慎使用您尝试使用的Format-Table。一旦你这样做,那之后你要管道的是格式化对象而不是你想要的原始对象。如果要在主机上格式化输出,请仅将其用作最后一步。

答案 2 :(得分:1)

我的回答是@manojlds和@ jon的组合。使用filter参数,展开路径并以流方式将其写入文本文件(而不是先将输出分配给变量)。为了便于阅读,代码分为两行:

$path = 'e:\sourcecontrolledprojects\genericsolution\genericsolution'
gci $path -filter *test*.dll -recurse | select -expand fullname | out-file .\dlls.txt