none
Problem mit replace RRS feed

  • 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

     

    Dienstag, 29. März 2011 23:08

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
    Mittwoch, 30. März 2011 06:09

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
    Mittwoch, 30. März 2011 06:09
  • Moin moin,


    danke für die Antwort.

    Ja, jetzt klappt es, auch ohne replace. Und auch mit! :-)

    Grüße aus Hamburg

    7flames


    Mittwoch, 30. März 2011 12:06