Array
(
[0] => 12v some
[1] => Item, which contains comma
[2] => Another item
)
我正在尝试使用计算机及其版本所具有的特定软件创建表。
我想如果软件没有退出,请在标题DisplayName下放置软件名称,在DisplayVersion标题下放置Not Installed。
如果该软件存在,它会很好地工作,但是如果不存在,则不会将名称放在标题下,并且在excel文件上放置空白行。
我现在正在接受的示例是:
$array = @()
$path="C:\Reports\Software.txt"
$programs = Get-Content -Path $Path;
foreach ($program in $programs)
{
$system64=Get-ItemProperty
HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select DisplayName, DisplayVersion | where {$_.DisplayName -like
"*$program*"};
$system32=Get-ItemProperty
HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* | Select
DisplayName, DisplayVersion| where {$_.DisplayName -like "*$program*"};
if ($system64)
{
Write-Host "npp query = "$system64""
Write-Host "npp query = "$system32""
Write-Host -ForegroundColor green "$program already installed!"
$array += $system64
}
elseif ($system32)
{
Write-Host "npp query = "$system64""
Write-Host "npp query = "$system32""
Write-Host -ForegroundColor green "$program already installed!"
$array += $system32
}
else
{
$array += $program
}
}
$array |Export-Csv C:\Reports\Software.csv -NoType
我想要什么
DisplayVersion DisplayName
Gimp 2.8.22
7-Zip 18.01
Notepad++ 7.5.8
有什么建议吗?
答案 0 :(得分:0)
在您的else语句中尝试一下:
$array += @(1 | Select-Object @{Name="DisplayName";Expression={$program}},@{Name="DisplayVersion";Expression={'not installed'}})
由此,您将创建一个自定义对象并将其添加到您的数组中。
希望有帮助。