fehlermeldung erstellen?
hey ich da mal eine frage ist es möglich über windows 10 noch möglich eine fehlermeldung zu erstellen (wenn möglich als batch)
Was? Welche Fehlermedung? Worauf soll diese Reagieren?
Ich denke, das ich einigermaßen Zwischen den Zeilen lesen kann (manchmal sogar zu gut 🤪) ..aber Dein Halbsatz..?
naja ich dachte das die meldung bei ausführung einer batch datei erscheint dann ein text in ihr steht und darunter halt ein ok ;-;
1 Antwort
...Ach so...
1000 Wege führen nach Rom... Aber egal welcher, er heist nicht Batch. Trotzdem kann man mit Batch andere Sprachen steuern also sozusagen die andere Sprache Huckeback nehmen.
Hier nur Zwei :
Erstmal der Klassiker Batch + VBScript
VB-MsgBox.cmd
@echo off
rem Der Klassiker VBS mit Mesagebox erzeugen:
rem Diese Methode schreibt eine kleines VBScript (vorzugsweise in den Temp-Ordner) und führt diess bei Bedarf aus.
rem Kleiner Wehrmutstropfen, Umlaute funktionieren nicht.
rem Erklärung der Parameter https://de.wikibooks.org/wiki/Visual_Basic_Script_(VBS):_Wichtige_Objekte_und_Funktionen#Parameter
rem Text Aussehen und Funktion Titel
echo res=Msgbox("Mittteilungstext",vbOKonly+vbCritical+vbSystemModal, "Titel") >"%temp%\TestMsg.vbs"
cscript //nologo "%temp%\TestMsg.vbs"
rem Du kannst auch mehrere Messageboxen vorbereiten indem Du verschiedene Scripte generierst und diese Bei Bedarf aufrufst.
rem Du kannst dir sogar eine Kleine Sammlung in einem sicheren Ordner anlegen und Musst nicht für jede Batch neue Erzeugen
echo res=Msgbox("Schwerer Kugelschagger Fehler!",vbOKonly+vbCritical+vbSystemModal, "Systemfehler") >"%temp%\KugelMsg.vbs"
rem vbCrLf erzwingt eine Neue Zeile (Achtung: Ampersand & müssen im Batch-echo mit ^& maskiert werden!)
echo res=Msgbox("Der Farbvorat ihres Monitors geht zur neige!" ^& vbCrLf ^& "Schalte in kuerze auf Schwarz-Weiss",vbOKonly+vbExclamation+vbSystemModal, "Systemfehler") >"%temp%\MonitorMsg.vbs"
rem irgendwan später Aufrufen
cscript //nologo "%temp%\MonitorMsg.vbs"
cscript //nologo "%temp%\KugelMsg.vbs"
cscript //nologo "%temp%\TestMsg.vbs"
cscript //nologo "%temp%\MonitorMsg.vbs"
pause
VBS ist eine Sprache auf dem absterbenden Ast... Sie funktioniert aber sie ist auf dem Stand von vor 10 Jahren.
Heute verwendet man .Net-Sprachen und Powershell, aber auch diese lassen sich aus einer Batch heraus verwenden. Meist sogar besser als VBS.
Hier ein Beispiel für MessageBox unter Zuhilfenahme von .Net und Powershell:
dotNet-Msgox.cmd
@echo off
chcp 65001 >nul & rem umlaute erlauben
rem Rem Aufruf der .Net-Bibliothek über Powershell:
rem Das ganze funktioniert ohne das schreiben von ScriptDateien da Powershell auch Scripte direckt in der Kommendozeile ausführen kann.
rem Achtung die Steuervariablen für den BoxStyle werden alst kommagetrennte Aufzählung von festgelegten Begriffen (oder als Summe Werte der Begriffe) innerhalb eines Strings übergeben: 'Button,Icon,Funktionen' oder zb:'4112' (0+16+4096)
rem Achtung die Steuerbegriffe sind CaseSensitiv! Erklärung unter https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.interaction.msgbox?redirectedfrom=MSDN&view=netframework-4.8#Microsoft_VisualBasic_Interaction_MsgBox_System_Object_Microsoft_VisualBasic_MsgBoxStyle_System_Object_
rem wenn die Batch Umlaute beherrscht, so Tut dies auch unser Powershellaufruf
rem Bibliothek laden Aufruf von MessageBox Text Boxstyle Titel
powershell "Add-Type -a Microsoft.VisualBasic;[Microsoft.VisualBasic.Interaction]::MsgBox('Mittteilungstext','OKOnly,Critical,SystemModal','Titel')"
rem wer will schon immer solche langen Zeilen in seinem Code verwenden?
rem also Definieren wir Macros, welche sich einfach über eine Variable Aufrufen lassen...
rem kleiner Trick für Schreibfaule: was immer Wider kommt passt auch in eine Variable
set "VBInit=Add-Type -a Microsoft.VisualBasic;[Microsoft.VisualBasic.Interaction]"
rem und Lässt sich einsetzten:
set TestMsg=powershell "%VBInit%::MsgBox('Mittteilungstext','OKOnly,Critical,SystemModal','Titel')"
rem Hier verwende ich mal die Summe der Werte für OKOnly,Critical,SystemModal (0+16+4096) also 4112
set KugelMsg=powershell "%VBInit%::MsgBox('Schwerer Kugelschagger Fehler!','4112','Systemfehler')"
rem Hier als Goodies: Umlaute Möglich der zeilenvirschub wird mit 'string'+[Environment]::NewLine+'string' erledigt, MsgBoxRight mach txt Rechtsbündig
set MonitorMsg=powershell "%VBInit%::MsgBox('Der Farbvorat ihres Monitors geht zur neige!'+[Environment]::NewLine+'Schalte in kürze auf Schwarz-Weiß','OKOnly,Exclamation,SystemModal,MsgBoxRight','MonitorWarnung')"
rem Aufruf der Macros
%MonitorMsg%
%KugelMsg%
%TestMsg%
%MonitorMsg%
exit /b
pause
Das dürfte für Dich erstmal alles unheimlich kompliziert aussehen. (das meiste sind nur Kommentare)
Letztlich ist das wie Fahrrad fahren, wenn man einmal weiß wie's geht ist es fast lächerlich. Ich habe es so gut ich kann versucht zu erklären, aber ich bin kein Lehrer.