我可以使用 Select-Object 选择要显示的列,甚至可以添加计算列。一个例子:
gci | select *, @{n='LAS'; e={(Get-Date)-$_.LastAccessTime}}
我想添加一个计算列但保留默认列。如果没有 * 通配符,我只会得到我计算出的属性。有了它,我得到了一切。我必须使用的唯一解决方法是手动列出默认属性名称。有什么想法吗?
最佳答案
问题是您实际上声明要显示所有 属性('*')。
因此要仅添加到标准属性,您首先需要获取标准属性。
[string[]]$StdProperties = (Get-ChildItem).PSStandardMembers.DefaultDisplayPropertySet[1].ReferencedPropertyNames
我们实际上并不想改变返回对象的标准属性
Get-Childitem | select Name | Get-Member| group TypeName | select Name
Name
----
Selected.System.IO.DirectoryInfo
Selected.System.IO.FileInfo
所以我们只需要使用要使用的新属性扩展提取的字符串数组。
$StdProperties += 'LAS'
最后,使用它......
Get-ChildItem | select *, @{n='LAS'; e={(Get-Date) - $_.LastAccessTime}} |
select $StdProperties
关于powershell - 选择对象 - 保留默认列但添加一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68706871/