powershell在使用ConvertTo Json时将日期属性转换为字符串
我希望从cmdlet获取所有Hyper-V VM信息,如下所示:powershell在使用ConvertTo Json时将日期属性转换为字符串,powershell,hyper-v,Powershell,Hyper V,我希望从cmdlet获取所有Hyper-V VM信息,如下所示: getvm | selectobject*|转换为Json 其中每个VM字典中的CreationTime看起来像输出中的\/Date(-116444473600000)\/“, 如何使输出json中的格式类似于2017/11/29 16:09:00 当我猜它是历元时间戳的数字时,我发现它有时是负数 我找到了一些关于这个问题的文章,举个例子,但是在我的例子中,Get VM中有一个属性,我不确定是否有一种更快的方法来转换日期属性,而
getvm | selectobject*|转换为Json
其中每个VM字典中的CreationTime
看起来像输出中的\/Date(-116444473600000)\/“,
如何使输出json中的格式类似于2017/11/29 16:09:00
当我猜它是历元时间戳的数字时,我发现它有时是负数
我找到了一些关于这个问题的文章,举个例子,但是在我的例子中,
Get VM
中有一个属性,我不确定是否有一种更快的方法来转换日期属性,而不需要长脚本来解析输出。要根据用户定义的表达式选择属性,可以用以下方式定义它们:
Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, *
这将选择用户定义的属性ReadableCreationTime
和所有其他属性(*
)
现在,您要排除原始的CreationTime
,因为它是a)难以读取的,b)对ReadableCreationTime
是多余的。这可以使用以下参数完成:
Get-VM | Select-Object -Property @{Name="ReadableCreationTime"; Expression={Get-Date $_.CreationTime}}, * -ExcludeProperty CreationTime
…并将结果传输到converttojson
请记住,在读取生成的json时,您必须解析日期,因为它只是一个字符串,不是有效的日期值。如何
get vm | select*,@{Name=“ReadableCreationTime”;表达式={get date$\uuu.CreationTime}-ExcludeProperty CreationTime | ConvertTo Json
对不起,我本不想否决投票,但事情发生了。你的回答帮助了我。谢谢,我再次道歉