我真的在为一件看似简单的事情而苦苦挣扎。任何帮助表示赞赏...
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/