kruemelbaer
Goto Top

Meldungsbox aus cmd aufrufen mit Powershell?

Guten Tag,

ich möchte aus einem Batch Script (.bat) am Ende ein Meldungsfenster aufrufen in der Art:

"Hinweis: Das Backup war erfolgreich!" -> OK

Idealerweise mit Powershell. Hierzu habe ich einen Powershell-Befehl gefunden:

$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup("Mitteilung",0,"Kopfzeile",4)

Doch ich weiß nicht, wie man dies aus einer cmd Datei aufruft. Ausserdem möchte ich auch nur einen Knopf, nämlich OK.

Kann mir bitte jemand helfen?

Vielen Dank!

Stefan

Content-ID: 32132605449

Url: https://administrator.de/forum/meldungsbox-aus-cmd-aufrufen-mit-powershell-32132605449.html

Ausgedruckt am: 08.04.2025 um 16:04 Uhr

godlie
godlie 21.02.2024 um 13:40:57 Uhr
Goto Top
Hallo,

ich würde das genau anders herum machen, mit der powershell das bat script aufrufen und auf basis eines returnwertes der bat eine MessageBox erzeugen.

# Batch-Datei aufrufen
Start-Process "C:\Temp\batch.bat"  

# Exit-Code abrufen
$exitCode = $LastExitCode

# Exit-Code auswerten
if ($exitCode -eq 0) {
$message = "Die Batch-Datei wurde erfolgreich ausgeführt."  
$title = "Information"  
$icon = [System.Windows.MessageBoxIcon]::Information
$buttons = [System.Windows.MessageBoxButton]::OK
Show-MessageBox $message -Title $title -Icon $icon -Buttons $buttons
} else {
    Write-Host "Die Batch-Datei wurde mit einem Fehler beendet. Exit-Code: $exitCode"  
}

grüße
11078840001
Lösung 11078840001 21.02.2024 aktualisiert um 13:47:53 Uhr
Goto Top
@echo off
set "message=Backup done."  
powershell -EP ByPass -C "Add-Type -A System.Windows.Forms;[System.Windows.Forms.MessageBox]::Show('%message%','Info',0,64)"  
Kraemer
Kraemer 21.02.2024 um 13:44:44 Uhr
Goto Top
Moin,

wenn es nicht schön sein muss, geht das ganze auch aus der Batch heraus (QuickAndDirty)

start "" /wait cmd /c "echo Hello world!&echo(&pause"  
DerWoWusste
DerWoWusste 21.02.2024 um 16:04:31 Uhr
Goto Top
aus einem Batch Script ...idealerweise mit Powershell
Ja, klingt ideal (?). Warum nicht in Batch mittels msg.exe?
kruemelbaer
kruemelbaer 21.02.2024 um 18:12:52 Uhr
Goto Top
Hallo zusammen,

es musste aus DOS heraus geschehen, da es da schon ein fertiges Programm gibt.
Das mit msg.exe ist auch ein super Tipp, wobei ich aufgrund einer Härtungssoftware erstmal darauf verzichten wollte.
Der Tipp von abramakabra war zielführend. Powershell muss ich mir mal in Ruhe anschauen.

Erstmal vielen Dank, ihr habt mir super geholfen!!!

Danke!!! face-smile

Stefan
DerWoWusste
DerWoWusste 21.02.2024 um 18:17:29 Uhr
Goto Top
Was bemängelt die Haftungssoftware?
ThePinky777
ThePinky777 21.02.2024 aktualisiert um 18:19:32 Uhr
Goto Top
also aus DOS rufst du ein Powershell Script so auf:

"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -executionpolicy Unrestricted -File "c:\PowerShellScript.ps1"  

und in die ps1 Datei legst du deinen Powershell Code rein.

Sprich diese Zeile und Pfad zur PS1 Datei in deine .bat Datei als Zeile rein.