在PowerShell中声明变量的问题

时间:2019-05-17 23:30:35

标签: powershell

我已经声明了2个PowerShell变量

$prm=Get-WmiObject Win32_Product -Computer . -Filter "vendor = 'Wolters Kluwer Financial Services'" | Select-Object Name, Vendor, Version
$rgteng=Get-WmiObject Win32_Product -Computer . -Filter "vendor = 'WKFS'" | Select-Object Name, Vendor, Version

我希望将此变量输出到文本文件o / p @{Name=Wolters Kluwer Financial Services Regulatory Reporting FRA Param 11.2.0; Vendor=Wolters Kluwer Financial Services; Version=11.2.0},我希望将此o / p输出到文本文件。

我尝试使用Write-OutputWrite-Host,但没有一个给出正确的o / p

1 个答案:

答案 0 :(得分:0)

那里发生的事情看起来像这样(只是大图):

  1. Get-WmiObject Win32_Product -Computer . -Filter "vendor = 'Wolters Kluwer Financial Services'"创建一个WMI对象并将其通过管道传递到下一个命令

  2. Select-Object Name, Vendor, Version将该对象转换为新的PSCustom类型对象(更像是WMI对象的表版本,仅具有所需的信息)

然后变得混乱:

  • 如果您使用写入主机或将其显示在屏幕上,则输出将根据Powershell的设置进行格式化(可以通过更改xml文件来更改这些设置)

  • 如果您使用export-csv,则基本上会使用convertto-csv | out-file c:\sometheing.txt + 一些已应用的格式设置规则。 (我认为文件的UTF-8类型已更改,但我不确定...)

因此,如果您想确切地了解变量/文件的外观,而又没有Powershell格式干扰您的工作,请使用convertto-csv | out-file