csv - 替换 powershell 输出中的 NULL 值

标签 csv powershell

我真的在为一件看似简单的事情而苦苦挣扎。任何帮助表示赞赏...

tldr;我正在尝试从 powershell 中查找和替换空白或 NULL 值
输出到“无数据”


我正在使用以下 powershell 脚本来获取已安装的应用程序信息

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*

以下是上述脚本的示例输出(根据我的喜好过滤)。我正在获取这些数据,将其导出为 CSV,以便稍后导入另一个应用程序进行分析。
Host             : Computer1
DisplayName      : AutoDWG DWG DXF Converter 2015
Version          : 
Publisher        : 
InstallDate      : 
arrival_datetime : 2015-11-03T09:42:18

Host             : Computer2
DisplayName      : Beyond Compare Version 3.1.11
Version          : 
Publisher        : Scooter Software
InstallDate      : 20150218
arrival_datetime : 2015-11-03T09:42:18

CSV 导出以正确的格式放置数据,但在项目没有版本、发布者等数据的情况下,它将其表示为“,,”(见下文)
"Computer1","AutoDWG DWG DXF Converter 2015",,,,"2015-11-03T09:54:21"
"Computer2","Beyond Compare Version 3.1.11",,"Scooter Software","20150218","2015-11-03T09:54:21"

导入 CSV 时,空白值被重新解释为 NULL,这会引发程序循环,因为它需要一个字符串。我试图将这些更改为字符串“无数据”,但遇到了很多麻烦......

处理这个问题的最佳方法是什么?

最佳答案

您可以检查从 Import-Csv cmdlet 传输的属性值,并更改它们。例子:

Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | 
ForEach-Object { 
foreach ($p in $_.PSObject.Properties) 
{ 
 if ($p.Value -eq [string]::Empty)
 {
  $p.Value = 'No Data'
 }
} 
 Write-Output $_
}

关于csv - 替换 powershell 输出中的 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503283/

相关文章:

javascript - Angular Javascript 导出 CSV。有没有办法在 Mac 和 Windows 中一致地指定文件扩展名

android - 如何使用 Athena 从 AWS S3 上的隐藏 csv 文件(以点开头)查询数据

附加到 csv 文件的 C 登录程序

powershell - 用增量值替换字符

powershell如何关闭.exe进程

scala - 当第一行是模式时,如何从 Spark 中的 csv(使用 scala)创建数据框?

php - 写入 csv 文件时转义分号字符

PowerShell摆脱最后的 `n` r?

powershell - 在此处字符串中的子表达式中迭代会产生额外的空格,为什么?

python - 从Windows Server 2008中的powershell 3.0脚本获取python版本