【问题标题】:How to output and format PsObject to multine text box in GUI如何在 GUI 中将 PsObject 输出和格式化为多文本框
【发布时间】:2020-06-01 02:28:25
【问题描述】:

我正在使用 powershell 脚本中的 WMI 图形用户界面。如何格式化 PsObject 以在多行文本框中输出,以便 PsObject 的每个属性都在自己的行上?

这是出于我自己的学习目的 - 我知道那里有用于收集 WMI 的工具 :)

【问题讨论】:

  • GUI可以通过json接收数据吗?
  • 可能是$textbox.Text = $theObject | Format-List | Out-String 之类的?

标签: powershell pscustomobject


【解决方案1】:

您可以使用ForEach-Object 循环访问PSObject 中的属性,或者按照@Theo 的建议使用内联Format-List

这里是满足您要求的示例代码 sn-p

$Form = New-Object System.Windows.Forms.Form
$Form.Size = New-Object System.Drawing.Size(400,400)
$Form.StartPosition = "CenterScreen"

$objTextBox1 = New-Object System.Windows.Forms.TextBox 
$objTextBox1.Multiline = $True;
$objTextBox1.Location = New-Object System.Drawing.Size(10,10) 
$objTextBox1.Size = New-Object System.Drawing.Size(300,400)
$objTextBox1.Scrollbars = "Vertical" 

$Form.Controls.Add($objTextBox1)

$output = Get-ComputerInfo -Property "os*"

$output.PSObject.Properties | ForEach-Object {
    $objTextBox1.Text = $objTextBox1.Text + "$($_.Name): $($_.Value)`r`n";
    #Write-Host "$($_.Name): $($_.Value)`r`n" 
}

$form.ShowDialog()| Out-Null 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多