powershell - 我在使用 Powershell 向控制台写入文本时遇到问题
问题描述
对于大多数人来说,这很容易回答,但我正在努力解决这个问题。例如,如果我输入Get-Tpm
,我得到的返回是,
Get-tpm
写入控制台,如下所示。
如果我输入
ECHO Get-tpm > C:\dssupport\output.txt
输出是一个包含“Get-tpm:”的文本文件
有没有办法做到这两点,这样我就可以在我的显示器上看到它,也可以保存为文本文件?
我很感激任何帮助。
谢谢
解决方案
大多数 PowerShell cmdlet 都喜欢Get-Tpm
输出对象,这些对象通常显示在控制台屏幕上,格式为表格或列表。您可以轻松地将这样的输出写入文件,通常是结构化的 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
推荐阅读
- java - 如何使用 JAVA 将所有 CSS 属性应用于网页中的任何元素?
- python - 从随机生成的列表中选择 - python
- css - 在 testcafe 中等待 css 属性值
- r - 如何将任意序列附加到数据框列
- c# - Mixed mode Debugging Python/C# using Child Process Debugging Power Tool
- python - 如何将 gRPC Python 插件与 Docker 和 Google Cloud Builds 一起使用?
- neo4j - Neo4J 中的无效备份
- c# - 如何在 Visual Studio 上使用 xamarin 表单向 ArcGIS Runtime 共享地图应用程序添加动态标记或图钉?
- dart - Flutter 中的 Openstreetmap?
- html - 网站背景图片在手机上跳跃