我正在 C# 中创建一个 PowerShell Cmdlet 以从 JSON 文件读取字段并输出一些对象。这些对象是简单的 POCO 类型:
public class FieldDefinition
{
public FieldDefinition(string name, TypeCode code)
{
Name = name;
Code = code;
}
public string Name { get; }
public TypeCode Code { get; }
}
写入输出时,条目显示为:
PS ~Debug> Get-Field
Name : Session
Code : Int64
Name : Instance
Code : String
理想情况下,我希望默认演示文稿为表格:
PS ~Debug> Get-Field | Format-Table
Name Code
---- ----
Session Int64
Instance String
当我调用类似命令时Get-Process
,我总是看到表格格式。如何使我的命令将其输出显示为表格?
每次命令输出数据表时,输出实际上都会(无形地)通过管道传输到 Out-Default 命令。这反过来又通过管道传送数据(不可见)
到默认目的地,默认情况下是“out-host”,即终端。
out-host 使用以下文件中包含的格式化信息将数据格式化为表格形式:
C:\windows\system32\windowspowershell\v1.0\DotNetTypes.format.ps1xml
(注意:请勿编辑此文件,因为它是数字签名的。因此,如果您进行最微小的更改,powershell 将停止工作)
它通过在 xml 文件中查找匹配对象的条目来实现这一点(您可以使用 get-member 找到它)
所有 out-* 命令也使用相同的 xml 文件(尽管 write-host 是一个例外,稍后将介绍)。
但是,命令输出的表可能在 xml 文件中没有预定义视图。在这种情况下,out-* 命令
查找辅助 xml 文件以获取格式指导:
C:\windows\system32\windowspowershell\v1.0\Types.ps1xml
参考:https://codingbee.net/tutorials/powershell/powershell-changing-a-command-outputs-default-formatting https://codingbee.net/tutorials/powershell/powershell-changing-a-command-outputs-default-formatting
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)