emeriks
Goto Top

PowerShell - ISE - boolsche Parameter übergeben

Hi,
wie muss man in der PowerShell ISE boolsche Parameter übergeben, wenn man das Script direkt in der ISE ausführt?
Egal, was ich angebe, es ist immer "true". (siehe Screenshot)

Versucht habe ich:
  • true / false
  • $true / $false
  • 1 / 0

E.

powershell

Content-Key: 396421

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

Printed on: April 23, 2024 at 08:04 o'clock

Mitglied: 137846
137846 Dec 21, 2018 updated at 11:36:20 (UTC)
Goto Top
$true / $false
1 / 0
Geht beides (hier nochmal für dich verifiziert) wenn du es direkt als Parameter mitgibst!

screenshot

Gruß A.
Mitglied: 137846
Solution 137846 Dec 21, 2018 updated at 11:38:52 (UTC)
Goto Top
Der Grund dafür in deinem Fall ist folgender: Wenn du die Parameter so interaktiv abfragen lässt wird String to Bool gecasted und da wird jegliche Eingabe (egal welche) in True gewandelt , wenn du False für einen Parameter haben willst muss der String leer sein also einfach beim Prompt Enter drücken!

Das ist nur so wenn du die Parameter interaktiv abfragen lässt, statt sie direkt mitzugeben.
Member: SeaStorm
SeaStorm Dec 21, 2018 at 11:43:48 (UTC)
Goto Top
Hi

ja da is PS ein bisschen dumm. Das Problem ist, das die Eingabe dort als String bzw Int angenommen wird.
Und da du somit immer einen String prüfst, ob er existierst, bekommst du immer ein True.


Effektiv funktioniert ein boolean parameter nur wenn man ihn als parameter entsprechend übergibt, aber nicht, wenn diese Abfrage kommt.
Man kann sich da auch einen Workaround basteln, aber wer will schon diese Abfragen face-smile
Member: emeriks
emeriks Dec 21, 2018 at 12:17:33 (UTC)
Goto Top
Zitat von @137846:
Geht beides (hier nochmal für dich verifiziert) wenn du es direkt als Parameter mitgibst!
Ja, schon klar. Es ging aber um den Start in der ISE.
Member: emeriks
emeriks Dec 21, 2018 at 12:18:01 (UTC)
Goto Top
Zitat von @137846:
Der Grund dafür in deinem Fall ist folgender: Wenn du die Parameter so interaktiv abfragen lässt wird String to Bool gecasted und da wird jegliche Eingabe (egal welche) in True gewandelt , wenn du False für einen Parameter haben willst muss der String leer sein also einfach beim Prompt Enter drücken!
So geht es. Das ist aber ganz schön dämlich ....
Mitglied: 137846
137846 Dec 21, 2018 updated at 14:46:19 (UTC)
Goto Top
Das ist aber ganz schön dämlich ....
Klar, ist aber nicht auf meinem Mist gewachsen face-smile, und Parameter gebe ich persönlich sowieso immer direkt im Aufruf mit da tangiert mich dieser Müll eh nicht..