Powershell - Ausgabe von Inhalt meiner Variable

newbi2009
Goto Top
Hallo zusammen,
in meinem Programm fülle ich einige Variablen mit Werten (Variable-Name am Ende mit aufsteigender Ziffer). Diese möchte ich später ausgeben, ohne jede Variable einzelnd ("manuell") anzusprechen. Ich versuche den Variable-Namen in einer Schleife zu erzeugen und den Wert in der Variable zu verarbeiten/auszugeben.

Ich bekomme aber den Inhalt der Variable auf diesem Weg nicht ausgegeben. Kann mir da wohl jemand auf die Sprünge helfen, wo mein Fehler liegt?

Hier ein Beispiel um zu veranschaulichen, was ich genau meine:

Ich möchte folgendes ausgegeben bekommen:

Durchgang 1
Die Farbe ist rot
Durchgang 2
Die Farbe ist blau
Durchgang 3
Die Farbe ist grün

Ich bekomme aber ausgegeben:

Durchgang 1
Die Farbe ist $Farbe1
Durchgang 2
Die Farbe ist $Farbe2
Durchgang 3
Die Farbe ist $Farbe3


das ist mein Code:


Ich könnte mir vorstellen, das das Problem in dem .toString() liegt, mit dem ich die Variable fülle - ich wüsste aber nicht, wie ich das sonst machen sollte....

Vielen Dank
Holger

Content-Key: 3141087079

Url: https://administrator.de/contentid/3141087079

Ausgedruckt am: 01.07.2022 um 20:07 Uhr

Mitglied: TK1987
TK1987 22.06.2022 aktualisiert um 09:04:07 Uhr
Goto Top
Moin,

sowas erreicht man am einfachsten über eine Enumeration.

Dadurch wird der Farbe wirklich ihr entsprechender Wert zugewiesen - und du kannst jederzeit den Wert in den Namen der Farbe - oder umgekehrt den Namen der Farbe in ihren Wert konvertieren.

Gruß Thomas

BTW: Schon einen Blick in unseren Powershell Leitfaden für Anfänger geworfen?
Mitglied: newbi2009
newbi2009 22.06.2022 um 09:20:06 Uhr
Goto Top
Hallo Thomas,

danke für die Antwort - aber das kann ich so nicht machen..... Ich habe ein (ellenlanges) Programm, in dessen Verlauf ich die Variablen (hier nur beispielhaft $Farbe1 - $Farbe3 genannt) bereits gefüllt habe. In Wahrheit gibt es wesentlich mehr "Farben" und diese sind auch nicht statisch gefüllt. Sprich die Variable "$Farbe1" hat mal den Wert grün und mal den Wert rot.....

Gruß
Holger
Mitglied: TK1987
Lösung TK1987 22.06.2022 aktualisiert um 09:29:42 Uhr
Goto Top
Moin Holger,

Zitat von @newbi2009:
In Wahrheit gibt es wesentlich mehr "Farben" und diese sind auch nicht statisch gefüllt. Sprich die Variable "$Farbe1" hat mal den Wert grün und mal den Wert rot.....
Das solltest du überdenken. Darüber hinaus lässt sich Enum auch mehrfach neu definieren - und du kannst natürlich beliebig Farben hinzufügen.

Aber um deine Frage zu beantworten:
Zur Info: iex ist Alias für Invoke-Expression und führt einen Text als Code aus.

Gruß Thomas
Mitglied: colinardo
Lösung colinardo 22.06.2022 aktualisiert um 10:33:02 Uhr
Goto Top
Servus.
Oder man nimmt eben ganz klassisch ein Array

Alternativ zu Invoke-Expression ginge es auch noch mittels Get-Variable
Grüße Uwe
Mitglied: newbi2009
newbi2009 22.06.2022 um 12:32:32 Uhr
Goto Top
sehr cool! Danke!!