我在使用 Powershell 向控制台写入文本时遇到问题
I have a Problem with Powershell writing text to console
这对你们中的大多数人来说很容易回答,但我正在努力解决这个问题。
例如,如果我输入 Get-Tpm
,我得到的 return 是,
Get-tpm
写入控制台,如下图
如果我输入
ECHO Get-tpm > C:\dssupport\output.txt
输出是一个包含'Get-tpm:'
的文本文件
有没有办法做到这两点,以便我可以在我的显示器上看到它,
并保存为文本文件?
我非常感谢任何帮助。
谢谢
大多数 PowerShell cmdlet,如 Get-Tpm
输出 objects,通常显示在控制台屏幕上,格式为 table 或列表。
您可以轻松地将这样的输出写入文件,通常是结构化的 Csv 文件,您可以使用 Export-Csv
.
在 Excel 中打开
然而,最后一个 cmdlet 没有像名为 -PassThru
的参数那样简洁的东西,但是您可以使用 可以 允许您这样做的 cmdlet。
在您的示例中,您可以这样做
# show on screen AND write to CSV file
Get-Tpm | ConvertTo-Csv -NoTypeInformation | Set-Content -Path 'X:\TPM.csv' -PassThru
或
# show on screen AND write to JSON file
Get-Tpm | ConvertTo-Json | Set-Content -Path 'X:\TPM.json' -PassThru
甚至
# show on screen as list AND write to text file
Get-Tpm | Format-List | Out-String | Set-Content -Path 'X:\TPM.txt' -PassThru
虽然这样写的文件实际上并不意味着用于 显示 以外的任何目的。
或者您可以在单独的代码行中执行此操作,例如在屏幕上显示为列表,在另一行中写入 csv 文件。
为此,您需要在变量中捕获 cmdlet 的结果:
$result = Get-Tpm
# show on screen as list (or table)
$result | Format-List # or do Format-Table -AutoSize
# show in a separate grid view window
$result | Out-GridView -Title "My TPM results"
# output to CSV file
$result | Export-Csv -Path 'X:\TPM.csv' -NoTypeInformation
这对你们中的大多数人来说很容易回答,但我正在努力解决这个问题。
例如,如果我输入 Get-Tpm
,我得到的 return 是,
Get-tpm
写入控制台,如下图
如果我输入
ECHO Get-tpm > C:\dssupport\output.txt
输出是一个包含'Get-tpm:'
的文本文件有没有办法做到这两点,以便我可以在我的显示器上看到它, 并保存为文本文件?
我非常感谢任何帮助。
谢谢
大多数 PowerShell cmdlet,如 Get-Tpm
输出 objects,通常显示在控制台屏幕上,格式为 table 或列表。
您可以轻松地将这样的输出写入文件,通常是结构化的 Csv 文件,您可以使用 Export-Csv
.
然而,最后一个 cmdlet 没有像名为 -PassThru
的参数那样简洁的东西,但是您可以使用 可以 允许您这样做的 cmdlet。
在您的示例中,您可以这样做
# show on screen AND write to CSV file
Get-Tpm | ConvertTo-Csv -NoTypeInformation | Set-Content -Path 'X:\TPM.csv' -PassThru
或
# show on screen AND write to JSON file
Get-Tpm | ConvertTo-Json | Set-Content -Path 'X:\TPM.json' -PassThru
甚至
# show on screen as list AND write to text file
Get-Tpm | Format-List | Out-String | Set-Content -Path 'X:\TPM.txt' -PassThru
虽然这样写的文件实际上并不意味着用于 显示 以外的任何目的。
或者您可以在单独的代码行中执行此操作,例如在屏幕上显示为列表,在另一行中写入 csv 文件。 为此,您需要在变量中捕获 cmdlet 的结果:
$result = Get-Tpm
# show on screen as list (or table)
$result | Format-List # or do Format-Table -AutoSize
# show in a separate grid view window
$result | Out-GridView -Title "My TPM results"
# output to CSV file
$result | Export-Csv -Path 'X:\TPM.csv' -NoTypeInformation