我正在编写一个脚本来列出具有特定扩展名(.dll)的所有文件。我的脚本工作正常,但我想过滤掉所有那些拥有微软版权的文件。应该采取什么方法?
$Dir = Get-ChildItem C:\Windows\Microsoft.NET\Framework -include *.dll -recurse | sort-object name | format-table name, directory -auto
$Dir
答案 0 :(得分:3)
使用$_.VersionInfo.LegalCopyright
语句中的Where-Object
进行过滤。例如:
$Dir = Get-ChildItem C:\Windows\Microsoft.NET\Framework -include *.dll -recurse |
Where-Object { $_.VersionInfo.LegalCopyright -notmatch 'Microsoft' }
$Dir | sort-object name | format-table name, directory -auto
永远不要将Format-Table
中的数据存储在变量中。它抛弃了对象并返回不可用的格式对象。仅在输出到控制台或使用ex时使用它。保存到文件时| Out-String | Out-File ...
。