945 Stimmen

Wie kann ich in PowerShell Zeichenfolgen und Variablen verketten?

Nehmen wir an, ich habe das folgende Snippet:

$assoc = New-Object PSObject -Property @{
    Id = 42
    Name = "Slim Shady"
    Owner = "Eminem"
}

Write-Host $assoc.Id + "  -  "  + $assoc.Name + "  -  " + $assoc.Owner

Ich würde erwarten, dass dieser Ausschnitt dies zeigt:

42 - Slim Shady - Eminem

Aber stattdessen zeigt es:

42 + - + Slim Shady + - + Eminem

Das lässt mich glauben, dass die + Operator ist für die Verkettung von Zeichenketten und Variablen nicht geeignet.

Wie sollten Sie dies mit PowerShell angehen?

10voto

Martin Brandl Punkte 51333

Ich möchte nur einen anderen Weg aufzeigen, dies mit .NET zu tun String.Format :

$name = "Slim Shady"
Write-Host ([string]::Format("My name is {0}", $name))

9voto

Kelly Davis Punkte 308

Verketten Sie Zeichenketten wie zu DOS-Zeiten. Dies ist eine große Sache für die Protokollierung, so dass Sie hier gehen:

$strDate = Get-Date
$strday = "$($strDate.Year)$($strDate.Month)$($strDate.Day)"

Write-Output "$($strDate.Year)$($strDate.Month)$($strDate.Day)"
Write-Output $strday

8voto

Luke Puplett Punkte 38914

Ich scheine damit (und mit vielen anderen unintuitiven Dingen) jedes Mal zu kämpfen, wenn ich die PowerShell nach einer gewissen Zeit der Abwesenheit wieder verwende, daher entscheide ich mich jetzt für:

[string]::Concat("There are ", $count, " items in the list")

8voto

elev8ed Punkte 183

Diese Antworten scheinen alle sehr kompliziert zu sein. Wenn Sie dies in einem PowerShell-Skript verwenden, können Sie einfach dies tun:

$name = 'Slim Shady'
Write-Host 'My name is'$name

Es wird ausgegeben

Mein Name ist Slim Shady

Beachten Sie, dass zwischen den Wörtern ein Leerzeichen eingefügt wird

8voto

E.V.I.L. Punkte 2032

En Was in PowerShell zu tun / nicht zu tun ist: Teil 1 :

$id = $assoc.Id
$name = $assoc.Name
$owner = $assoc.owner
"$id - $name - $owner"

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X