Hallo,
Ich möchte in Powershell überprüfen, ob ein dort gestartetes Fenster normal Beendet wurde, einen falschen Wert eingegeben wurde oder ob ein richtiger Wert eingegeben wurde. Bei einem Falschen Wert soll alles wiederholen, beim Beenden halt Beenden und bei einem richtigen Wert solls weitergehen (while beenden).
Hier mal mein Code-Problem (SerialConsole.ps1)
$Help = @" .\SerialConsole.ps1 ***PowerShell Serielle Konsole*** ********von Pascal Gesell******** Autor: Pascal Gesell Setzte die PowerShell execution policy auf 'RemoteSigned' um dieses Script ausführen zu können. PS> Set-ExecutionPolicy RemoteSigned"@ $stat = $null $schleife = $true function MainGUI { [Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null [Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null $frm = New-Object System.Windows.Forms.Form $btn1 = New-Object System.Windows.Forms.Button $btn2 = New-Object System.Windows.Forms.Button $txtbox1 = New-Object System.Windows.Forms.TextBox $lbl1 = New-Object System.Windows.Forms.Label $InitialFormWindowState = New-Object System.Windows.Forms.FormWindowState $Handler_btn2_Click= { $stat = "X" $frm.close() } $Handler_btn1_Click= { If($txtbox1.Text.Contains("COM") -eq $true) { $stat = "Y" $frm.Close() } else { [System.Windows.Forms.MessageBox]::Show("Ungültiger Wert","Fehler",[System.Windows.Forms.MessageBoxButtons]::OK,[System.Windows.Forms.MessageBoxIcon]::Exclamation) $stat = "N" $frm.Close() } } $OnLoadForm_StateCorrection= { $frm.WindowState = $InitialFormWindowState } #Size: Weite, Höhe $frm.Text = "PE-GUI" $frm.Name = "frm" $frm.ClientSize = New-Object System.Drawing.Size(200,60) $frm.ShowIcon = $false $frm.MinimizeBox = $false $frm.MaximizeBox = $false $frm.CancelButton = $btn1 $btn1.Name = "btn1" $btn1.Size = New-Object System.Drawing.Size(65,20) $btn1.Text = "Verbinden" $btn1.Location = New-Object System.Drawing.Size(130,30) $btn1.add_Click($Handler_btn1_Click) $frm.Controls.Add($btn1) $btn2.Name = "btn2" $btn2.Size = New-Object System.Drawing.Size(65,20) $btn2.Text = "Beenden" $btn2.Location = New-Object System.Drawing.Size(130,5) $btn2.add_Click($Handler_btn2_Click) $frm.Controls.Add($btn2) $txtbox1.Name = "txtbox1" $txtbox1.Size = New-Object System.Drawing.Size(115, 20) $txtbox1.Location = New-Object System.Drawing.Size(5, 30) $frm.Controls.Add($txtbox1) $lbl1.Name = "lbl1" $lbl1.Text = "COM-PORT:" $lbl1.Size = New-Object System.Drawing.Size(150, 20) $lbl1.Location = New-Object System.Drawing.Size(5, 8) $frm.Controls.Add($lbl1) $InitialFormWindowState = $frm.WindowState $frm.add_Load($OnLoadForm_StateCorrection) $frm.ShowDialog() | Out-Null } If ($Host.Name -match 'ise') { 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'" break; } while($schleife -eq $true) { MainGUI If($stat -eq "N") { $schleife = $true } ElseIf($stat -eq "Y") { $schleife = $false } ElseIf($stat -eq "X") { $schleife = $false EXIT break; } } break;
Ich wäre sehr dankbar wenn mich jemand in die richtige Richtung schubsen würde, da ich selber neu in der Powershell-Welt bin.
mfg & thx
gfcwfzkm - Pascal
Hoi