none
Variable von unnötigen Zeichen befreien RRS feed

  • Frage

  • Hallo zusammen,

    bin noch etwas unbedarft was PowerShell angeht und bräuchte daher eine kleine Hilfestellung.
    Ich lasse via PowerShell die aktiven Monitore auf Namen und Seriennummer auslesen. Dies funktioniert soweit auch ganz gut. Nach dem auslesen würde ich diese gerne in eine INI-Datei schreiben. Soweit so gut aber nach den ausgelesenen Werte wird derzeit noch eine reihe von Sonderzeichen geschrieben die ich gerne gelöscht haben würde.
    In der PowerShell ISE werden diese Zeichen als Leerzeichen angezeigt. In Notepad++ als "NUL".

    Probiert habe ich schon den Trim und den Replace Befehl ohne Erfolg.

    Der besseren übersicht hier der Code-Schnipsel bei dem ich das Problem vermute:

    $Name = $null
    $Name = ($monitor.UserFriendlyName | %{[char]$_}) -join ''
    $Name = "Monitor", $int, ": ", $Name -join ''
    $Serial = ($monitor.SerialNumberID | % {[char]$_}) -join ''
    $Serial = "Seriennummer", $int, ": ", $Serial -join''
    $Name | add-content $Datei
    $Serial | add-content $Datei

    Vielen Dank im Voraus für eure Hilfe :)

    LG
    Jan

    Dienstag, 29. Mai 2012 10:21

Antworten

  • Hallo Jan,

    was da enthalten ist, ist ein Character mit Ascii Wert 0; machte Tools zeigen sie als Box an, andere gar nicht oder eben als Nul.

    Du musst also den Char 0 ersetzten lassen; hier zur Demo durch ein x

    $Name = $Name.Replace([char]0, "x");


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    • Als Antwort markiert Aggi85 Dienstag, 29. Mai 2012 11:47
    Dienstag, 29. Mai 2012 10:32

Alle Antworten

  • Hallo Jan,

    was da enthalten ist, ist ein Character mit Ascii Wert 0; machte Tools zeigen sie als Box an, andere gar nicht oder eben als Nul.

    Du musst also den Char 0 ersetzten lassen; hier zur Demo durch ein x

    $Name = $Name.Replace([char]0, "x");


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    • Als Antwort markiert Aggi85 Dienstag, 29. Mai 2012 11:47
    Dienstag, 29. Mai 2012 10:32
  • Hallo Olaf,

    danke für die schnelle Hilfe.
    Statt des Replace habe ich den Trim Befehl genommen, da ein ersetzten mit Nichts in einer Fehlermeldung endete. Ansonsten war die Antwort perfekt :)

    Dienstag, 29. Mai 2012 11:47