【问题标题】:How Reorganize Output of Powershell Command?如何重组 Powershell 命令的输出?
【发布时间】:2014-01-09 13:54:24
【问题描述】:

如何重新组织这个 powershell 命令的输出?

Get-WmiObject -Class Win32_Service -Property Name,StartMode,State -Filter "Name='Fax'"|findstr /r /c:'^[A-Z]'

输出:

Name             : Fax
StartMode        : Manual
State            : Stopped

所需的输出:

Fax;Manual;Stopped

我必须使用,设置命令?或者我可以在命令行上做其他事情?

提前致谢

【问题讨论】:

  • 这样可以将信息保存在分号分隔的文件中吗?
  • 是的,我可以将输出保存到文件中

标签: powershell output


【解决方案1】:

如果我们只是做一个分号分隔的字符串...您可以从Get-WmiObject 输出的对象的属性中创建一个字符串以获得您想要的输出。

例子:

PS C:\> $object = Get-WmiObject -Class Win32_Service -Property Name,StartMode,State -Filter "Name='Fax'"

# Example 1: Concatenating strings
PS C:\> $object.Name+";"+$object.StartMode+";"+$object.State
Fax;Manual;Stopped

# Example 2: Using string joining
PS C:\> [string]::join(';',$object.Name,$object.StartMode,$object.State)
Fax;Manual;Stopped

# Example 3: Using string joining with an array
PS C:\> $array = @($object | % { $_.Name, $_.StartMode, $_.State })
PS C:\> [string]::join(';',$array)
Fax;Manual;Stopped

# Example 4: The join operator
PS C:\> $object.Name,$object.StartMode,$object.State -join ";"
Fax;Manual;Stopped

您可以阅读有关-join 运算符here 的更多信息,以及有关[string]::join here 的更多信息。

【讨论】:

  • 输出不同:PS C:\> echo $object.Name+";"+$object.StartMode+";"+$object.State+;+Name : Fax StartMode : Manual State : Stopped .StartMode+;+Name : Fax Start Mode : Manual State : Stopped.State
  • @clarkseth 尝试删除管道 | 之后的内容,应该没问题。如果您只是要加入属性以进行输出,则不需要findstr
猜你喜欢
  • 1970-01-01
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 2018-10-31
  • 2021-09-11
  • 2022-01-24
  • 1970-01-01
  • 2018-12-31
相关资源
最近更新 更多