2012-04-09 39 views
0

我會通過示例來解釋我想要的,不知道如何以另一種方式解釋它。Powershell:字符串操作

赫雷什使用的代碼IM:

Get-WmiObject win32_share | select name, path 

一個示例項是從上面是:

名稱路徑
ADMIN $ C:\窗戶
C $ C:\

我想把所有的名字和路徑放到一個變量中。我希望字符串看起來像:

「名:admin,路徑:C:\ WINDOWS;名稱:C $,路徑:C:\; ECT等..」

任何想法?

回答

0

事情是這樣的:

[string]::Join("; ", (Get-WmiObject win32_share | % { [string]::Format("Name: {0}, Path: {1}", $_.Name, $_.Path)})) 
+0

很好的回答,但PowerShell的方法是:'(GET-WmiObject可以win32_share |%{「名稱:{0},路徑:{1}」-f $ _。Name,$ _。Path})-join「;」' – manojlds 2012-04-09 12:59:12

+0

謝謝。它的效果很好。這是什麼?這是一個正則表達式嗎? – resolver101 2012-04-09 13:25:57

3

的方法稍作修改從@燒結礦的答案,並使用更多POSH語法:

$out="";Get-WmiObject win32_share | %{ $out+="Name: {0}, Path: {1}; " -f $_.Name, $_.Path} 
+0

這都是Posh語法,只有一種方法僅限於cmdlet,另一種方式直接使用.NET類。 – 2012-04-09 13:22:36

+1

@AndyArismendi - 在我看來,當Powershell具有「-join」和「-f」時,你應該在BCL上使用它來達到相同效果。當然,使用前者的東西更多是POSH。 – manojlds 2012-04-09 13:45:59