Powershell: Funktionsparameter im Aufruf berechnen
Moin zusammnen,
irgendwie finde ich nicht die richtigen Suchbegriffe, um meine Frage per Suchmaschine beantworten zu können.
Nehmen wir als Beispiel folgende Funktion:
Ist es möglich, beispielsweise die [Int32]EventID direkt im Aufruf zu berechnen?
Ich hatte Beispielsweise folgendes versucht:
und alle möglichen anderen Variationen, die mir eingefallen sind. Leider funktioniert das so nicht. Weiß hier jemand einen Weg?
Und ja, ich weiß, dass ich den Wert vorher Berechnen und mittels Variable übergeben kann. Aus optischen Gründen will ich das in diesem Fall aber nicht.
Danke und Gruß
irgendwie finde ich nicht die richtigen Suchbegriffe, um meine Frage per Suchmaschine beantworten zu können.
Nehmen wir als Beispiel folgende Funktion:
Write-EventLog -LogName "Application" -Source "MyApp" -EventID 3001 -EntryType Information -Message "Supertolle Nachricht"
Ist es möglich, beispielsweise die [Int32]EventID direkt im Aufruf zu berechnen?
Ich hatte Beispielsweise folgendes versucht:
-EventID (if ($i -eq 1){return 2} else {return 3})
Und ja, ich weiß, dass ich den Wert vorher Berechnen und mittels Variable übergeben kann. Aus optischen Gründen will ich das in diesem Fall aber nicht.
Danke und Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7298771492
Url: https://administrator.de/contentid/7298771492
Ausgedruckt am: 04.12.2024 um 08:12 Uhr
6 Kommentare
Neuester Kommentar
Probiers mal so
oder so
Funktioniert hier beides.
Gruß
Write-EventLog -LogName "Application" -Source "MyApp" -EventID (@{$true=2;$false=3}[($i -eq 1)]) -EntryType Information -Message "Supertolle Nachricht"
Write-EventLog -LogName "Application" -Source "MyApp" -EventID $(if ($i -eq 1){2}else{3}) -EntryType Information -Message "Supertolle Nachricht"
Gruß
Ich habe ein solches Konstrukt allerdings noch nicht gesehen - muss ich mir mal näher ansehen.
Das ist eine Abkürzung für ein If-Else oder kann auch als Switch-Konstrukt verwendet werden, mittels einer Hashtable. Die Bedingung steht direkt dahinter in den eckigen Klammern und die Ergebniszuweisung in der Hasshtable. Ausgeschrieben kann man es auch so verstehen$hashtable = @{$true=2;$false=3}
$hashtable[($i -eq 1)]
Ach da fehlte das Dollarzeichen vor dem Ausdruck, dann klappt es auch so, sorry ....
-EventID $(if ($i -eq 1){2}else{3})