2012-04-09 7 views
0

Ich werde erklären, was ich will mit Beispiel, nicht sicher, wie man es anders erklären.Powershell: String-Manipulationen

Heres der Code im mit:

Get-WmiObject win32_share | select name, path 

ein Beispiel Eintrag aus dem oben her ist:

Name Pfad
ADMIN $ C: \ windows
C $ C: \

Ich möchte alle Namen und Pfade in eine Variable setzen. Ich möchte die Zeichenfolge etwas wie folgt aussehen:

"Name: admin, Pfad: C: \ windows; Name: c $, Pfad: C: \; ect ect .."

Beliebig Ideen?

Antwort

0

Etwas wie folgt aus:

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

Gute Antwort, obwohl Powershell Weise sein würde: '(Get-WmiObject Win32_Share |% {"Name: {0}, Pfad: {1}" -f $ _. Name, $ _. Pfad}) -join ";" – manojlds

+0

danke. es funktioniert super. Was ist das? ist es ein regelmäßiger Ausdruck? – resolver101

3

leichte Änderung in der Herangehensweise von @ SINTER Antwort und mit mehr POSH Syntax:

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

Es ist alles Posh-Syntax imho, nur eine Möglichkeit ist auf Cmdlets beschränkt, eine andere nutzt .NET-Klassen direkt. –

+1

@AndyArismendi - Meiner Meinung nach, wenn Powershell hat "-join" und "-f", sollten Sie das über die BCL verwenden, die das gleiche erreicht. Auf jeden Fall ist alles, was den ersten benutzt, mehr POSH. – manojlds