首页 > 解决方案 > 在 Powershell 中合并输出

问题描述

我目前有这个检查注册表的脚本,如果密钥存在,那么它将向控制台输出一个值。如何修改此脚本,以便将每个输出保存到变量中,然后将该变量导出到文本/csv 文件?

if ((Get-ItemPropertyValue -Path "HKLM:\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE" -Name HelpPane.exe) -eq '1')
{
    Write-Output 'Yes'
} 
else 
{
    Write-Output 'No'
}

if ((Get-ItemPropertyValue -Path "HKLM:\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_DISABLE_SQM_UPLOAD_FOR_APP" -Name iexplore.exe) -eq '1')
{
    Write-Output 'Yes'
} 
else 
{
    Write-Output 'No'
}

if ($Host.Name -eq "ConsoleHost")
{
    Write-Host "Press any key to continue..."
    $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null

标签: powershell

解决方案


用于Tee-Object此,它通过管道移动数据并将其保存到文件中:

$content | Tee-Object -FilePath C:\some\path\on\disk.txt

这将获取您的变量$content,将其传输到Tee-Object将输出写入文件的管道,然后获取相同的输出并将其推送到管道中。在这种情况下,您应该会看到它$content也被写入了输出流,但如果您选择这样做,您也可以将其传递给管道中的另一个 cmdlet。


推荐阅读