none
Object-Property in String ausgeben RRS feed

  • Frage

  • Hallo zusammen,

    ich habe immer wieder die Situation, dass ich ein Object-Property (heißt das überhaupt so?) in einem String ausgeben möchte und das klappt dann nicht so wie ich es will.

    Folgendes einfache Beispiel zeigt in etwa um was es geht:

    $Object = Get-Process -Name explorer
    $Message = "Prozessname: $Object.ProcessName"
    
    $Message
    $Object.ProcessName

    Der Output von $Message liefert "Prozessname: System.Diagnostics.Process (explorer).ProcessName" anstatt "Prozessname: explorer".

    Ich komme da drum rum, wenn ich das gewünschte Object-Property (z.B. $Object.ProcessName) vorher in eine Variable schreibe und dann die Variable im String angebe.

    Das nervt aber. Wie macht man das richtig?

    Danke


    • Bearbeitet MSWinkler Sonntag, 19. Februar 2017 13:22
    Sonntag, 19. Februar 2017 13:22

Antworten

  • Konnte es gerade selbst herausfinden ...

    Zitat: "However, if you want to access properties, or use indexes on variables in a double-quoted string, you have to enclose that subexpression in $()"

    $Message = "Prozessname: $($Object.ProcessName)"
    

    • Als Antwort markiert MSWinkler Sonntag, 19. Februar 2017 13:37
    Sonntag, 19. Februar 2017 13:37
  • > $Message = "Prozessname: $($Object.ProcessName)"
     
    Jepp. Oder noch flexibler:
     
    $Message = ( 'Prozessname: {0}' -f $Object.ProcessName )
     
    • Als Antwort markiert MSWinkler Montag, 20. Februar 2017 18:00
    Montag, 20. Februar 2017 10:06

Alle Antworten