powershell - 如何打印没有标题的 PSObject?
问题描述
我有这个运行的脚本(它获取当前的 Microsoft 版本),并且希望它打印没有标题。
这是工作脚本:
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Where-Object {$_.DisplayName -like "Microsoft Office*" -and $_.PSChildName -notlike "{*"} | Select-Object DisplayName, DisplayVersion | ForEach-Object {
[pscustomobject]@{
Name = ($_.DisplayName)
Version=($_.DisplayVersion)
}
}
我知道通常,
gci | ft -HideTableHeaders
有效,但我将如何在 PS-Object 输出中应用这样的东西。
解决方案
一种选择是覆盖该ToString()
方法:
$customObject = [pscustomobject]@{
Name = ($_.DisplayName)
Version=($_.DisplayVersion)
} |Add-Member -Name ToString -MemberType ScriptMethod -Value { 'Name: {0}, Version: {1}' -f $this.Name,$this.Version } -Force -Passthru
现在,当传递给一个接受字符串参数的函数时,它将以您的自定义格式显示:
function Add-LogEntry
{
param([string]$Message)
# write $message to event log or log file here
}
Add-LogEntry $customObject
推荐阅读
- ios - 二元运算符“>”不能应用于两个“Int?” 尝试排序时
- docker - 无法在 docker 中优雅地停止应用程序
- objective-c - 为什么我在 Xcode 单元测试中遇到错误的浮点运算问题?
- vba - 使用表格检查导入 Excel - access 2016
- vue.js - 每页的 Vuejs MPA 和 indexPath
- mongodb - Spring-boot + Mongodb 手册参考不起作用,找不到我的错误,查询 Mongodb 工作正常
- html - 徽标与导航链接不在同一行
- javascript - 如何处理javascript中的不可变对象?
- java - 如何在 Google App Engine 的 app.yaml 文件中配置 servlet 过滤器?
- javascript - JS new Function - 按名称动态记录变量