Powershell Taschenrechner Programm Fehlerausgabe sonderzeichen?

Hallo Leute ich hab hier ein Skript für einen Taschenrechner und müsste hier nur die Funktion einbauen das er mir bei der Eingabe von Sonderzeichen eine ordentliche Fehlerausgabe gibt.
Dies hier ist soweit der Code:

Write-Host "Geben Sie zwei Zahlen ein" -ForegroundColor Red

Write-Host "Wählen Sie eine der vier möglichen Rechenoperationen aus:" -ForegroundColor Green

Write-Host "1: Zahl1 : Zahl2 = Ergebnis"

Write-Host "2: Zahl1 + Zahl2 = Ergebnis"

Write-Host "3: Zahl1 - Zahl2 = Ergebnis"

Write-Host "4: Zahl1 * Zahl2 = Ergebnis"

$Zahl1 = Read-Host "Bitte geben Sie die erste Zahl ein" 

$Zahl2 = Read-Host "Bitte geben Sie die zweite Zahl ein"

[int]$Eingabe = Read-Host "Wählen Sie eine Rechenoperation"

$Zahl1 = $Zahl1.Replace(",",".")

$Zahl2 = $Zahl2.Replace(",",".")

$Zahl1 = [double] $Zahl1

$Zahl2 = [double] $Zahl2

#Zulässige Rechenoperationen definiert

switch ($Eingabe) {

1 {$Ergebnis = $Zahl1 / $Zahl2}

2 {$Ergebnis = $Zahl1 + $Zahl2}

3 {$Ergebnis = $Zahl1 - $Zahl2}

4 {$Ergebnis = $Zahl1 * $Zahl2}

}

#Fehlerausgabe bei Division durch 0 und Programmabbruch

if(($Zahl2 -eq 0) -and ($Eingabe -eq 1)){

$antwort = "Es darf nicht durch 0 geteilt werden";

[System.Windows.Forms.MessageBox]::Show($antwort, "Ungültige Eingabe"); break 

}

#Eingabe Rechenoperation darf nicht kleiner 1 und größer 4 sein.

if(($Eingabe -lt 1) -or ($Eingabe -gt 4) -or ($Eingabe -gt 10)){

$antwort = "Die Eingabe liegt nicht im Wertebereich 1-4";

[System.Windows.Forms.MessageBox]::Show($antwort, "Ungültige Eingabe"); break

}

#stimmt die Eingabe mit dem Muster überein, so erfolgt die Berechnung und Ausgabe des Ergebnisses

else{

if($Eingabe -eq 1){

$antwort = "      <" + $Zahl1 + "> : <" + $Zahl2 + ">  =  <" + $Ergebnis + ">      ";

[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A durch B");

   }

if($Eingabe -eq 2){

$antwort = "      <" + $Zahl1 + "> + <" + $Zahl2 + ">  =  <" + $Ergebnis + ">      ";

[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A plus B");

if($Eingabe -eq 3){

$antwort = "      <" + $Zahl1 + "> - <" + $Zahl2 + ">  =  <" + $Ergebnis + ">      ";

[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A minus B");

}

if($Eingabe -eq 4){

$antwort = "      <" + $Zahl1 + "> * <" + $Zahl2 + ">  =  <" + $Ergebnis + ">      ";

[System.Windows.Forms.MessageBox]::Show($antwort, "Ergebnis zu A mal B");

}

}

Kann mir da jemand weiterhelfen ohne meinen Code komplett zu verändern?

Computer, skript, Taschenrechner, PowerShell, Powershell ISE
Wieso klappt das PowerShell Skript nicht?

Hallo

Ich habe nachfolgendes Skript. Das will irgendwie nicht. Ich möchte ein Netzlaufwerk mappen, dass auch nach dem Neustarten wieder hier ist.

Es muss irgendwo einen Fehler sein, der ich einfach nicht sehe.

Danke für die Hilfe im Voraus!

<#

Eventuell muss vor der Ausführung die PowerShell Policy umgeändert werden.

PowerShell als Admin starten, untenstehnden Code ausführen und dann das Skript.

Set-ExecutionPolicy unrestricted CurrentUser

#>

#Log
Start-Transcript -Path $HOME\desktop\NLW-MAP-LOG.txt

#Benutzerdaten Abfragen

<#
$user = Read-Host "Benutezrname eingeben"
$pass = Read-Host "Passwort eingeben" |ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PsCredential($user,$pass)
#>

$cred = Get-Credential -Message "Bitte mit dem Benutzername + Passwort anmelden"

#Ordner

<#
ACHTUNG - FOLGENDE ORDNER HABEN GLEICHE LAUFWERKSBUCHSTABEN:
FabianFSL = W
Workaut = W
Workaut Informatik = Z
Koordination Weiterbildung = Z
Entwicklung Weiterbildung = U
AA Kommunikation = U
AA Z APW = Z

UNBEDINGT VORHER PRÜFEN OB DAS FÜR DEN BENUTZER PASST, ANSONSTEN MANUELL ÜBER New-PSDrive EIN EIGENER BUCHSTABE ZUWEISEN!!
#>

$aajbuchhaltung = 'New-PSDrive -Name "J" -Root "\\192.168.34.96\AA J Buchhaltung" -Persist -PSProvider FileSystem -Credential $cred'
$gdc = 'New-PSDrive -Name "T" -Root "\\192.168.34.96\Gian Duri" -Persist -PSProvider "FileSystem" -Credential $cred'
$glerwweitert = 'New-PSDrive -Name "O" -Root "\\192.168.34.96\GL erweitert" -Persist -PSProvider FileSystem -Credential $cred'
$uhome = 'New-PSDrive -Name "P" -Root "\\192.168.34.96\home" -Persist -PSProvider FileSystem -Credential $cred'
$admin = 'New-PSDrive -Name "R" -Root "\\192.168.34.96\workaut Admin" -Persist -PSProvider FileSystem -Credential $cred'
$it = 'New-PSDrive -Name "Z" -Root "\\192.168.34.96\Workaut ICT" -Persist -PSProvider FileSystem -Credential $cred'

$ExclDrives = ('C', 'D')
Get-PSDrive -PSProvider FileSystem | Where-Object {$ExclDrives -notcontains $_.Name} | Remove-PSDrive

<#

Kopieren und Vorname Nachname gemäss Benutzername erstezen.

Invoke-Expression muss bei jedem da stehen, danach $ordnername durch Name siehe oben erstezen.

elseif ($ced.username -eq 'Vorname Nachname') 
   {
       Invoke-Expression $ordnername
   }
#>

if ($cred.username -eq 'userA')
   {
       Invoke-Expression $gdc
       Invoke-Expression $uhome
       Invoke-Expression $admin
       Invoke-Expression $it
   }

   elseif ($cred.username -eq 'userB') 
   {
       Invoke-Expression $aajbuchhaltung

   }

Stop-Transcript

LG calgia

Computer, Technik, Fehler, programmieren, blind, skript, PowerShell