如何在函数中拆分 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 的字符串。如果转换失败,我们简单地输出一个空字符串。