Benutzer mit den meisten Antworten
Problem mit replace

Frage
-
Hallo,
ich bräuchte mal ein bisschen Hilfe bzgl. -replace. Folgendes kleines Script:
$val = read-host "Eingabe" for ($a = 1; $a -le $val; $a++) { $xyz=$xyz,"{TAB}" } write-host $xyz
Die Ausgabe sieht, wie erwartet, so aus:
Eingabe: 5
{TAB} {TAB} {TAB} {TAB} {TAB}Alles wunderbar, bis auf eine Kleinigkeit: Zwischen den einzelnen {TAB} befindet sich stets ein Leerzeichen. Diese wollte ich nun gern entfernen und dachte dabei an -replace.
$val = read-host "Eingabe" for ($a = 1; $a -le $val; $a++) { $xyz=$xyz,"{TAB}" } $xyz -replace (" ","") write-host $xyz
Ausgabe:
Eingabe: 5
System.Object[]{TAB}
{TAB}
{TAB} {TAB} {TAB} {TAB} {TAB}Nun habe ich auch schon ein dutzend anderer Varianten probiert, immer bekomme ich die Meldung System.Object[], und überhaupt klappt nichts so wie erwartet. Was verstehe bzw. mache ich falsch???
Für Antworten, Hinweise etc. schon mal vielen Dank!
Grüße
7flames
Antworten
-
Moin,
ich denke mal, der merkwürdige Konstrukt ist aus dem Zusammenhang gerissen.
$xyz=$xyz,"{TAB}"
Das Problem hier ist das Koma.
Das wäre korrekt:
$xyz=$xyz + "{TAB}" (mit Plus)oder kürzer:
$xyz+="{TAB}"Aber logischerweise geht alles prinzipbedingt nur dann gut, wenn $xyz auch
vor der Schleife schon ein STRING ist. Sonst ist die Typkonvertierung ein
Glücksspiel.
Grüße aus Berlin schickt Robert
MVP Exchange Server- Als Antwort markiert 7flames Mittwoch, 30. März 2011 12:03
Alle Antworten
-
Moin,
ich denke mal, der merkwürdige Konstrukt ist aus dem Zusammenhang gerissen.
$xyz=$xyz,"{TAB}"
Das Problem hier ist das Koma.
Das wäre korrekt:
$xyz=$xyz + "{TAB}" (mit Plus)oder kürzer:
$xyz+="{TAB}"Aber logischerweise geht alles prinzipbedingt nur dann gut, wenn $xyz auch
vor der Schleife schon ein STRING ist. Sonst ist die Typkonvertierung ein
Glücksspiel.
Grüße aus Berlin schickt Robert
MVP Exchange Server- Als Antwort markiert 7flames Mittwoch, 30. März 2011 12:03