2016-04-28 39 views
1

Dies ist, wie ich den String bauen und dass ein Variablen zuweisen:Entfernen von doppelten geschweiften Klammern aus string

$package = $package+$component+"=[{"+$componentField+":"+$componentValue+"}" 

Write-Host $package 

Ausgang:

efc90fde-c75c-d5e5-bd3e-7f7ce358e2e2=[{{artifacturl:http://10.1.18.12:8088/job/Xyz/640/artifact/target/xyz.war}}

Erwartet:

efc90fde-c75c-d5e5-bd3e-7f7ce358e2e2=[{artifacturl:http://10.1.18.12:8088/job/Xyz/640/artifact/target/xyz.war}
+0

Tut a ny antwort löse dein problem? –

+0

Auf der Konsole sieht es aus wie {{oder}}, aber wenn ich diese in eine Datei schreibe, finde ich, dass es eigentlich nur eine ist oder dass es auf der Konsole nur so aussieht. Meine Sache funktioniert ohne irgendwelche Änderungen – SANU

Antwort

0

Nur do:

$package = $package+$component+"=[{"+$componentField+":"+$componentValue+"}".Replace("{{", "{")..Replace("}}", "}") 

BTW sollte dies auch tun, den Trick:

$package = $package+$component+ "=[$componentField:$componentValue" 
0

Sie auch einen regulären Ausdruck verwenden, könnte die Zeichenfolge zu ersetzen:

$package -replace '({|})\1', '$1' 

Demo.

Allerdings würde ich Ihnen vorschlagen zu bauen die Zeichenkette, die eine Formatzeichenkette benutzt:

$package = '{0}{1}=[{2}:{3}' -f $package, $component, $componentField, $componentValue 
Verwandte Themen