gpt4 book ai didi

powershell - 更改 ConvertFrom-CSV 对象的类型

转载 作者:行者123 更新时间:2023-12-01 12:02:32 25 4
gpt4 key购买 nike

我被困在某件事上,我无法弄清楚问题出在哪里。我有一个生成 CSV 格式文本输出的命令。我已使用 ConvertFrom-CSV 成功地将 CSV 输出转换为 Powershell 对象。一切都很好!我想应用一些自定义格式,所以我想将对象转换为自定义 pstype 名称。我不能让它改变类型。 ConvertFrom-CSV 输出一个 PSCustomObject,所以我认为这很容易,但到目前为止运气不好。

我的代码:

##This would be a function "get-devices" that creates command text and outputs the CSV output
##This all works properly
function get-devices {
$Command.Invoke() | ConvertFrom-Csv
}
$GAMOBJ = get-devices
$GAMOBJ.PSObject.TypeNames.Insert(0,"System.Gam.Device")
$GAMOBJ

对象正确打印,但仍作为 PSCustomObject,因此格式不适用。我错过了什么?

感谢任何帮助,提前致谢。

这是 Get-Member 的输出:

       TypeName: Selected.System.Management.Automation.PSCustomObject

Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
AssetID NoteProperty System.String AssetID=ASSETID
Expiration NoteProperty System.String Expiration=2000-01-01
Location NoteProperty System.String Location=LOCATION
Model NoteProperty System.String Model=CHROMEBOOKMODEL
OU NoteProperty System.String OU=/
Serial NoteProperty System.String Serial=123456
Status NoteProperty System.String Status=ACTIVE

有人在下面补充说我用 Select-Object 过滤了对象。我去掉了select对象,成员类型不变。

    TypeName: System.Management.Automation.PSCustomObject

最佳答案

您必须将您的 ETS 类型名称插入到每个对象的 .PSTypeNames 集合(又名 .psobject.TypeNames):

$GAMOBJ.ForEach({ $_.PSTypeNames.Insert(0, "System.Gam.Device") })

否则,您只是将类型名称应用于整个数组,这与一个一个打印对象无关。

关于powershell - 更改 ConvertFrom-CSV 对象的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60376874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com