fehlermeldung erstellen?

Erzesel  09.11.2020, 13:49

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..?

cmdtypi 
Beitragsersteller
 09.11.2020, 16:50

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.

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren