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-Key: 32132605449

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

Printed on: April 16, 2024 at 16:04 o'clock

Member: godlie
godlie Feb 21, 2024 at 12:40:57 (UTC)
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
Mitglied: 11078840001
Solution 11078840001 Feb 21, 2024 updated at 12:47:53 (UTC)
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)"  
Member: Kraemer
Kraemer Feb 21, 2024 at 12:44:44 (UTC)
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"  
Member: DerWoWusste
DerWoWusste Feb 21, 2024 at 15:04:31 (UTC)
Goto Top
aus einem Batch Script ...idealerweise mit Powershell
Ja, klingt ideal (?). Warum nicht in Batch mittels msg.exe?
Member: kruemelbaer
kruemelbaer Feb 21, 2024 at 17:12:52 (UTC)
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
Member: DerWoWusste
DerWoWusste Feb 21, 2024 at 17:17:29 (UTC)
Goto Top
Was bemängelt die Haftungssoftware?
Member: ThePinky777
ThePinky777 Feb 21, 2024 updated at 17:19:32 (UTC)
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.