none
Array vor Bestimmten Buchstaben "trennen" RRS feed

  • Frage

  • Hallo miteinander, 

    ich habe den Befehl

    $printer = (get-printer -ComputerName $Computer).name 

    welcher mir alle Drucker des jeweiligen Rechners anzeigt. Nun habe ich einen Textblock in welchem ich das Ergebnis anzeigen lassen will, also: 

    $textblock1.text = "$printer"

    Jetzt werden mir die Drucker angezeigt, nur aber nebeneinander. Ich würde sie mir jedoch gerne untereinander anzeigen lassen, gibt's da eine Möglichkeit?

    Vielen Dank schon mal. 

    Mfg,

    Tonnkful

    Donnerstag, 12. Januar 2017 08:59

Antworten

  • Hallo Tonnkful,

    versuch mal, die Gänsefüßchen beim Variable definieren weg zu lassen.
    Mit

    $Var = "$IrgendEinArray"

    baut Powershell ein System.Object. Ergebnis: Druckernamen als String

    Mit

    $Var = $IrgendEinArray

    baut Powershell ein System.Array bzw. übernimmt den Object-Type der Variable. Ergebnis: Druckernamen im Array Zeile für Zeile.

    Hoffe das Verhalten ist bei diesem textblock von Dir genauso. Wenn nicht, solltest Du nach einer Möglichkeit suchen, dieses ~Feld mit einem anderen Typ zu deklarieren.


    MfG, Jannik D.

    Donnerstag, 12. Januar 2017 13:52

Alle Antworten

  • hey Tinnkful,

    es gibt die möglich strings per $variable.split aufzutrennen - hier muss du dann entsprechend das zeichen angeben, wo die trennung erfolgen soll.

    https://blogs.technet.microsoft.com/heyscriptingguy/2014/07/17/using-the-split-method-in-powershell/

    gruß

    Carsten


    http://www.ms-fabric.de/ Wenn Dir eine Forenantwort weiter geholfen hat dann markiere sie doch bitte als Antwort, dies hilft anderen bei der Lösung von Problemen! LG Carsten

    Donnerstag, 12. Januar 2017 09:37
  • Vielen Dank! Aber kann ich das irgendwie auch unabhängig von Buchstaben machen?
    Donnerstag, 12. Januar 2017 09:47
  • So ganz verstehe ich Deine Frage nicht. Powershell gibt normalerweise Arrays zeilenweise aus. Ich vermute mal Du hast uns noch die ein oder andere essenzielle Information vorenthalten.  ;-)

    Du könntest das Array von Name erst mal mit einem gewählten Zeichen verketten und dann an diesem Zeichen nach Deinen Wünschen wieder trennen.

    $printer -join ','


    Grüße - Best regards

    PS:> (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH-666 Donnerstag, 12. Januar 2017 10:13 Tippfehler korrigiert
    Donnerstag, 12. Januar 2017 09:58
  • richtig oder man baut sich eine foreach schleife, die jeden Drucker per "write-host" in die shell in die schreibt.

    Die Frage ist was du genau damit machen möchtest.

    Gruß

    Carsten


    http://www.ms-fabric.de/ Wenn Dir eine Forenantwort weiter geholfen hat dann markiere sie doch bitte als Antwort, dies hilft anderen bei der Lösung von Problemen! LG Carsten

    Donnerstag, 12. Januar 2017 10:03
  • > Nun habe ich einen Textblock

     
    Was ist denn dieser "Textblock"? Ein WPF-Textblock? Wenn ja, "Wrapping" gesetzt? Oder meinst du eine Winforms-Textbox? Falls ja, "Multiline"-Property auf $true gesetzt?

    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Neu: Powershell Code Manager v5 ! Link
    (Schneller, besser + komfortabler scripten.)

    Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
    Warum das Ganze? Hier gibts die Antwort.



    Donnerstag, 12. Januar 2017 12:17
    Moderator
  • Hallo Tonnkful,

    versuch mal, die Gänsefüßchen beim Variable definieren weg zu lassen.
    Mit

    $Var = "$IrgendEinArray"

    baut Powershell ein System.Object. Ergebnis: Druckernamen als String

    Mit

    $Var = $IrgendEinArray

    baut Powershell ein System.Array bzw. übernimmt den Object-Type der Variable. Ergebnis: Druckernamen im Array Zeile für Zeile.

    Hoffe das Verhalten ist bei diesem textblock von Dir genauso. Wenn nicht, solltest Du nach einer Möglichkeit suchen, dieses ~Feld mit einem anderen Typ zu deklarieren.


    MfG, Jannik D.

    Donnerstag, 12. Januar 2017 13:52