[PowerShell] If-Abfrage arbeitet nicht korrekt

  • PowerShell

    [PowerShell] If-Abfrage arbeitet nicht korrekt

    Hi,

    ich möchte in einer If-Abfrage, die in einer While-Schleife ist, überprüfen, ob die While-Schleife weiter gehen soll, ob sie die beendet werden soll oder ob das ganze Script beendet werden soll...

    nunja, habe schon gegoogelt und mich in PowerShell eingearbeitet, hänge aber in dem Problem fest... PowerShell gibt keine Fehler zurück.
    Hier der PowerShellCode von meiner SerialConsole.ps1

    Quellcode

    1. $Help = @"
    2. .\SerialConsole.ps1
    3. ***PowerShell Serielle Konsole***
    4. ********von Pascal Gesell********
    5. Autor: Pascal Gesell
    6. Lizenz: GNU Public License - GPL
    7. Setzte die PowerShell execution policy auf 'RemoteSigned' um
    8. dieses Script ausführen zu können.
    9. PS> Set-ExecutionPolicy RemoteSigned
    10. "@
    11. $stat = $null
    12. $schleife = $true
    13. function MainGUI
    14. {
    15. [Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
    16. [Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null
    17. $frm = New-Object System.Windows.Forms.Form
    18. $btn1 = New-Object System.Windows.Forms.Button
    19. $btn2 = New-Object System.Windows.Forms.Button
    20. $txtbox1 = New-Object System.Windows.Forms.TextBox
    21. $lbl1 = New-Object System.Windows.Forms.Label
    22. $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState
    23. $Handler_btn2_Click=
    24. {
    25. $stat = "X"
    26. $frm.close()
    27. }
    28. $Handler_btn1_Click=
    29. {
    30. If($txtbox1.Text.Contains("COM") -eq $true)
    31. {
    32. $stat = "Y"
    33. $frm.Close()
    34. }
    35. else
    36. {
    37. [System.Windows.Forms.MessageBox]::Show("Ungültiger Wert","Fehler",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Exclamation)
    38. $stat = "N"
    39. $frm.Close()
    40. }
    41. }
    42. $OnLoadForm_StateCorrection=
    43. {
    44. $frm.WindowState = $InitialFormWindowState
    45. }
    46. #Size: Weite, Höhe
    47. $frm.Text = "PE-GUI"
    48. $frm.Name = "frm"
    49. $frm.ClientSize = New-Object System.Drawing.Size(200,60)
    50. $frm.ShowIcon = $false
    51. $frm.MinimizeBox = $false
    52. $frm.MaximizeBox = $false
    53. $frm.CancelButton = $btn1
    54. $btn1.Name = "btn1"
    55. $btn1.Size = New-Object System.Drawing.Size(65,20)
    56. $btn1.Text = "Verbinden"
    57. $btn1.Location = New-Object System.Drawing.Size(130,30)
    58. $btn1.add_Click($Handler_btn1_Click)
    59. $frm.Controls.Add($btn1)
    60. $btn2.Name = "btn2"
    61. $btn2.Size = New-Object System.Drawing.Size(65,20)
    62. $btn2.Text = "Beenden"
    63. $btn2.Location = New-Object System.Drawing.Size(130,5)
    64. $btn2.add_Click($Handler_btn2_Click)
    65. $frm.Controls.Add($btn2)
    66. $txtbox1.Name = "txtbox1"
    67. $txtbox1.Size = New-Object System.Drawing.Size(115, 20)
    68. $txtbox1.Location = New-Object System.Drawing.Size(5, 30)
    69. $frm.Controls.Add($txtbox1)
    70. $lbl1.Name = "lbl1"
    71. $lbl1.Text = "COM-PORT:"
    72. $lbl1.Size = New-Object System.Drawing.Size(150, 20)
    73. $lbl1.Location = New-Object System.Drawing.Size(5, 8)
    74. $frm.Controls.Add($lbl1)
    75. $InitialFormWindowState = $frm.WindowState
    76. $frm.add_Load($OnLoadForm_StateCorrection)
    77. $frm.ShowDialog() | Out-Null
    78. }
    79. If ($Host.Name -match 'ise')
    80. {
    81. Write-Host "Warnung: Dieses Script muss in der Konsole ausgeführt werden`n`Rechts-Klick auf dem Script und wähle 'Mit PowerShell ausführen'"
    82. break;
    83. }
    84. while($schleife -eq $true)
    85. {
    86. MainGUI
    87. If($stat -eq "N")
    88. {
    89. $schleife = $true
    90. }
    91. ElseIf($stat -eq "Y")
    92. {
    93. $schleife = $false
    94. }
    95. ElseIf($stat -eq "X")
    96. {
    97. $schleife = $false
    98. EXIT
    99. break;
    100. }
    101. }
    102. break;

    Die Fehler sind zuunterst vom Quellcode (Zeile 100 bis 114).

    Hat jemand mehr Erfahrung mit PowerShell?

    mfg

    gfc

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „gfcwfzkm“ ()