2012-04-09 47 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