如何在函数中拆分 CustomObject?
How to split CustomObject in function?
我对这段代码有疑问。我有在 PC 中扫描应用程序 32-64 然后将其导出到 excel 的功能。问题是,“'Datum_Instalace' = $_.InstallDate”是字符串,我不知道如何解析它。例如,应用程序“Microsoft Edge”具有 'Datum_Instalace' 20181128,我想使用 powershell 将其更改为 2018.11.28 或更好的 28.11.2018。
[PSCustomObject]@{
'Nazev_PC' = hostname
'Bit' = $b2
'Nazev_Programu' = $_.DisplayName
'Verze' = $_.DisplayVersion
'Datum_Instalace' = $_.InstallDate
'Vydavatel' = $_.Publisher
}
How it looks like in Excel
使用[datetime]::ParseExact()
解析InstallDate
字符串,之后你可以re-format它:
[PSCustomObject]@{
'Nazev_PC' = hostname
'Bit' = $b2
'Nazev_Programu' = $_.DisplayName
'Verze' = $_.DisplayVersion
'Datum_Instalace' = try{ [datetime]::ParseExact($_.InstallDate, 'yyyyMMdd', $null).ToString('dd.MM.yyyy') } catch { '' }
'Vydavatel' = $_.Publisher
}
现在 PowerShell 将尝试解析格式为 yyyyMMdd
的输入字符串,然后输出格式为 dd.MM.yyyy
的字符串。如果转换失败,我们简单地输出一个空字符串。
我对这段代码有疑问。我有在 PC 中扫描应用程序 32-64 然后将其导出到 excel 的功能。问题是,“'Datum_Instalace' = $_.InstallDate”是字符串,我不知道如何解析它。例如,应用程序“Microsoft Edge”具有 'Datum_Instalace' 20181128,我想使用 powershell 将其更改为 2018.11.28 或更好的 28.11.2018。
[PSCustomObject]@{
'Nazev_PC' = hostname
'Bit' = $b2
'Nazev_Programu' = $_.DisplayName
'Verze' = $_.DisplayVersion
'Datum_Instalace' = $_.InstallDate
'Vydavatel' = $_.Publisher
}
How it looks like in Excel
使用[datetime]::ParseExact()
解析InstallDate
字符串,之后你可以re-format它:
[PSCustomObject]@{
'Nazev_PC' = hostname
'Bit' = $b2
'Nazev_Programu' = $_.DisplayName
'Verze' = $_.DisplayVersion
'Datum_Instalace' = try{ [datetime]::ParseExact($_.InstallDate, 'yyyyMMdd', $null).ToString('dd.MM.yyyy') } catch { '' }
'Vydavatel' = $_.Publisher
}
现在 PowerShell 将尝试解析格式为 yyyyMMdd
的输入字符串,然后输出格式为 dd.MM.yyyy
的字符串。如果转换失败,我们简单地输出一个空字符串。