2014-01-09 39 views
0

我該如何重新組織這個powershell命令的輸出?如何重新組織Powershell命令的輸出?

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

OUTPUT:

Name    : Fax 
StartMode  : Manual 
State   : Stopped 

輸出期望:

Fax;Manual;Stopped 

我已經使用,設置COMAND?或者我可以在命令行上做其他事情?

在此先感謝

+0

這是爲了您可以將信息保存在分號分隔的文件中? – EBGreen

+0

是的,我可以保存輸出到一個文件 – clarkseth

回答

0

如果我們只是在做一個分號分隔的字符串...你可以通過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]::joinhere

+0

它的輸出是不同的:PS C:\> echo $ object.Name +「;」+ $ object.StartMode +「;」+ $ object.State +; + Name:Fax StartMode:Manual狀態:Stopped.StartMode +; +名稱:傳真啓動 模式:手動狀態:已停止。狀態 – clarkseth

+0

@clarkseth嘗試刪除管道後面的內容'',它應該沒問題。如果你只是想加入屬性進行輸出,你不需要'findstr'。 –

+0

是的,我讀過你的指南,我已經解決了。謝謝超級! – clarkseth