Batchutility WBAT
Batchprogramme ganz einfach mit GUI einrichten. Mit diesem Utility ein Kinderspiel. Hier eine Einleitung in die Verwendung und Funktionsweise von WBAT
Batchprogramme ganz einfach mit GUI einrichten. Mit diesem Utility ein Kinderspiel. Hier eine Einleitung in die Verwendung und Funktionsweise von WBAT
WBAT ist ein Batch-Utility welches sich z.B. mit BatToExe Converter kinderleicht in dein Programm integrieren lassen. es besteht auch die Möglichkeit die erforderlichen Dateien im Systemordner zu hinterlegen um sie lokal allgemein einsetzen zu können. Die Funktionen von WBAT finden alle im aktuellen Fenster statt. Popups kommen allso innerhalb des Screens.
Download WBAT:
http://www.horstmuc.de/int/wbat250.zip
Bild:
http://img189.imageshack.us/img189/9667/wbat.png
http://t2.gstatic.com/images?q=tbn:ANd9GcSK2qHNuio7IBXfmaajlnuzmN7qWu_6 ...
Was kann WBAT?
x Mausintegration
x Popups
x Knöpfe
x Eingabefelder
xxx Passwortfeld
xxx Zwingende Eingaben
xxx Begrenzte Eingaben (z.B. auf 5 Zeichen)
x Kästchen zum Ankreuzen
x Entweder - oder Auswahlfelder
x Anzeigen von Scrollbaren Listen
x Ausgabe Farbiger Inhalte auf definierten Zeilen
x Verwendung von verschiedenen Schriftarten
x Verschiebbare Menüs
x "Animationen" / "Ladebalken"
Wie Nutze ich WBAT? ------------------
Lade dir das ZIP-File runter und extrahier es in einen eigenen Ordner.
Aus diesem Ordner brauchst du nun folgende 6 Dateien:
Zusammen machen diese weniger als 30kb aus.
Zur Konfiguration der einzelnen Dateien noch Später.
Allgemeines ----------
Alle arten von WbatFenstern verhalten sich gleich wie PAUSE. Sobald ein Fenster quitiert wird läuft das Script weiter.
(gillt nicht für =wbat text 5,9 "blablabla"=)
Diese Beschreibung gillt für die allgemeinen Einstellungen der WBAT.ini. Diese Definiert was wie aussieht und verwendet wird. z.B. wo das Menülayout WBAT.txt zu finden ist. Mann kann jedoch in der INI sowohl den Ort als auch den Namen verändern. Ebenfalls möglich ist die verwendung mehrerer Menülayoutquellen. Evt. Seht ihr zuerst die INI an und passt sie an euer Bedürfnisse an.
Popups ---------
Popups wie man sie kennt. Sie sind sehr Praktisch für Fehleranalysen oder allgemeine outputs.
Diese werden in deinem Hauptscript folgendermassen hinterlegt:
Erklärung:
wbat > Aufrufen der WBAT.com
box > Ein Popup
12,28 > Zeile 12, Spalte 28
"text" > Dein Inhalt
OK > Mit einem OK button
Erweiterungsmöglichkeiten:
(blue on green) heisst soviel wie das Popup soll in blauer Schrift auf grünem Hintergrund erscheinen (Augenkrebs ^^)
Mit einem "," kann man gewünschte Schaltflächen trennen, im obigen Fall wären dies drei Schaltflächen. OK, Abbruch und Löschen
Um abzurufen welcher Button gedrückt wurde wird if errorlevel verwendet
Wichtig ist die errorlevelabfragen immer in absteigender Reihenfolge zu schreiben da die Interpretierung ja Zeile für Zeile geschieht.
Eine weiter Möglichkeit z.B. für eine Bitte Warten anzeige während der Batch eine grössere Berechnung durchführt.
Erklärung:
wbat text > Textausgabe
5,12 > 5. Zeile, 12 Reihe
(white on red)> Farbdefinition
"Text" > Inhalt der Anzeige
Hier wird ein Feld angezeigt (In diesem Fall mit Weisser Schrift auf Rotem Hintergrund). Man kann es weder Bestätigen noch wegdrücken. Es ist so lange vorhanden bis wieder ein cls vorgenommen wird.
Knöpfe --------------
Knöpfe sind für viele dinge Nützlich. Um eine Box mit z.B. vier Buttons zu erstellen muss man nun die Datei WBAT.txt öffnen. Diese müsst ihr erstmal leeren da dieser Inhalt von der DEMO stammt.
Folgender Eintrag muss in die WBAT.txt:
Erklärung:
:offnen > Markierungspunkt (fast wie in der Batch)
"Text" > Titel dieses Fensters
[x] > Schliessen [x]-Button (optional)
[ abs ] > Eckige Klammern interpretiert WBAT als Buttons
Abschliessen muss man das ganze auch wieder mit einem ":" damit WBAT weiss wo die Fensterdefinition aufhört. (Sonst gibts error)
Erweiterungsmöglichkeiten:
das ? Markiert den Knopf der mit ESC angesteuert werden soll. Es wird nicht Angezeigt.
Die Formatierung wird von WBAT 1:1 übernommen. Tabstopps gelten übrigens als Auflistungspunkte. Ist kein Platz zwischen den Buttons kann es sein, dass WBAT die eingabe nicht interpretieren kann.
In eurem Script muss man folgendes Integrieren damit das Fenster angezeigt wird:
Erklärung:
call w.bat > hoffentlich allen klar ;) öffnet Instanz in Instanz
box > Selbiges wie Popup... es soll ein Fenster aufgehen
6 > 6. Zeile
:offnen > unter welchem Namen findet WBAT das Layout in WBAT.txt
Erweiterung Time-Out-Funktion:
#1,10 beschreibt, dass nach 10 Sekunden automatisch der erste Button gewählt wird. Der Countdown kann auch im Menü durch das einfügen von "#?" ins Layout angezeigt werden
Um abzurufen welcher Knopf gedrückt wurde verwendet man %wbat%.
Wurde OK gedrückt so ist wbat=OK. Ich verwende meist Zahlen damit ich mit Nummernblock navigieren kann da er immer die erste Ziffer oder Zahl als Schnellwahl anbietet.
Erweiterungsmöglichkeiten:
Erklärung:
(black on +white) > Farbdefinition des Fensters
#%zpos% > zpos wird zufällig generiert. So ist der als erstes ausgewählte Button eines Menüs jedes mal ein anderer.
Eingabefelder ----------------
Eingabefelder kann man für Formulare oder Suchabfragen verwenden oder was auch sonst noch so ainfällt ;)
Um ein Formular zu erstellen muss man dies ebenfalls in der WBAT.txt machen.
Erklärung:
Für die Erklärung der Grundelemente siehe oben.
Wenn nun in den -Klammern an erster (!) stelle ein "$" steht so interpretiert WBAT dies als Eingabefeld. Der Text im Eingabefeld definiert den Variabelnamen.
[$ Pass,5.P! ] ,5 bedeutet dass die Eingabe max 5 Zeichen lang sein darf ,P bedeutet dass es ein Passwortfeld ist und er daher anstatt die Eingabe nur noch "*" anzeigt. Das "!" heisst es ist ein Pflichtfeld. Wenn man dies nicht ausfüllt kommt man nur noch mit ESC aus dem Menü.
Die Abfrage in deinem Batch sieht dann so aus:
Echo ersetzt ihr natürlich durch eure Funktion.
Man kann auch Formulare kreieren ohne einen [ OK ] Button. Wenn kein Button existiert so wird Enter als OK gewertet.
Checkboxes kennen wir ja alle sie sind praktisch wenn man mehrere Dinge abfragen möchte ohne, dass der User Text eingeben muss.
Auch hier standardmässig das editieren der WBAT.txt für das Layout
Hier ist die maximale Anzahl der Checkboxen pro Formular auf 9 beschränkt.
[!] --> Checkbox neben dem Text
[! Text ] -> Checkbox mit Textinhalt
Integration im Batch:
Um abzufragen welche Checkboxen angekreuzt wurden muss man die Variablen %WCB1% bis %WCB9% abfragen. Für jede Checkbox ergibt sich der Wert 0 für nicht angekreuzt und 1 für angekreuzt:
Daher ist die Max. Anzahl auch auf 9 pro Formular beschränkt. WCB1 - WCB9
Entweder - oder Auswahlfelder --------
Für Formulare sinnvoll welche eine oder auswahl zur verfügung stellen z.B. Männlich - Weiblich
Auch hier muss das Layout ersmal in der WBAT.txt stattfinden.
Erklärung
[.] > Ein feld zum Anwählen neben dem Text
[. text ] > Anwählbares Feld mit Textinhalt
In eurem Batch wird dies dann so Integriert:
Für erklärung des Befehls siehe oben.
Die Abfrage welches Feld gewählt wurde findet mit %WRB% statt
wird das erste feld angewählt so ist WRB=1 beim zweiten WRB=2 usw...
Anzeigen von Scrollbaren Listen --------------------
Dies ist Nützlich wenn man eine Dateiliste ausgeben möchte auf welchem man per Mausklick auswählen kann welche Datei geöffnet werden soll.
Ausnahmsweise ist hier kein edit im WBAT.txt notwendig ;)
Um eine liste zu kreieren muss man eine Temporäre Datei anlegen dessen Inhalt wird dann als Liste ausgegeben.
Hier gibt der dir-Befehl den Inhalt des Ordners an die tmp weiter und diese dient dann als Liste. ( call w.bat list ) Die Position dieser Liste ist auf Zeile 6, Reihe 30 also ganz Rechts.
Um dann eine gewünschte Datei zu öffnen verwendet man die Variabel %wbat%
Ausgabe Farbiger Inhalte auf definierten Zeilen -------------
Wie öde doch das CMD-Fenster ist mit seiner einfarbigen Ansicht... gäääähn
Gut gibt es da in WBAT eine bzw. mehrere Lösungen
Erklärung:
fill > Fülle bereich
5,10 > Beginne auf Zeile 5 Spalte 10
(5,6) > Box von 5 Höhe und 6 Breite
(green..) > Farbe
Damit lassen sich auch "Animationen" basteln durch die Verzögerte Befehlsausgabe... (Siehe Besipiele)
ein weiterer Befehl dazu füllt den sichtbaren Teil ein, Springt man eine Zeile nach unten verschwindet die Farbe in der Untersten Zeile und Steigt entsprechend hoch:
Voller Syntax:
wbat FILL position (dimensions) (colors) "string" +s
z.B.
wbat fill 13,32 (9,28) (+magenta on blue) "└┐┌┘" +2
Eine weitere möglichkeit habe ich oben bereits beschrieben:
Verwendung von verschiedenen Schriftarten ------
Man kann eine weitere Schriftar hinzufügen indem man in der WBAT.ini die Angabe "FontFile" bearbeitet und die Schriftart der Wahl hinzufügt.
Im Batch ladet man die Schrift folgendermassen:
So jedenfalls in der Englischen DEMO... probiert habe ich es selbst noch nicht.
Farbliste:
black, blue, green, cyan, red, magenta, brown, white
+black, +blue, +green, +cyan, +red, +magenta, +brown, +white
Diese Farben gibt es in 2 Variationen Hell und Dunkel.
Dunkel ist wenn der Name (z.B. white) normal geschrieben ist. white ist in diesem Fall ein helles Grau. Wenn ich aber den Wert auf +white setze ist es schneeweiss. Mann kann also jede Farbe normal und mit einem "+" davor Schreiben um die Hellere Variante zu erhalten.
Einfügen eines *Briefkopfs"
z.B.
Mit den "~" definiert man von wo bis wo dieses Element mit den Farben der Variable %Wtexthi% eingefärbt werden soll.
Nun kann man einstellen dass dies als Kopf dient indem man im Batch folgendes Verwendet:
Damit lädt er den Bildschirm neu (wbat cls) und füllt den inhalt mit schwarz und cyan und den Kopf in der Farbe schwarz und weiss.
text 0 heisst Zeile 1 Spalte 1
Spezielles ---------------------
Die WBAT.txt muss weder so heissen noch im gleichen Ordner liegen.
z.B:
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ wird im Batch als Durchgezogener Bindestrich angezeigt. So kann man schön räumlich einteilen.
WBAT.ini ------------------------
WBAT.txt Muster -------------------
Muster für Anmeldeformular:
Beispiel eines Error outputs:
Ich setze bei jeder Sprungmarke die variable %jump% auf den Namen der Sprungmarke. Wenn dann in einer IF schleife etwas nicht zutrifft was jedoch muss so kann man dies definieren als "error=ZeileX Schleife wurde verlassen"
Beispiel einer "Animation": Diese "Animation" entsteht eigentlich nur durch die Verzögerte Befehlsverarbeitung...
Hier ein Beispiel eines Ladebalkens:
So ich glaub das wars erstmal fürs erste... Wenn noch Fragen dann einfach stellen ich versuch sie nach bestem Wissen zu beantworten.
Lg
Apop
Batchprogramme ganz einfach mit GUI einrichten. Mit diesem Utility ein Kinderspiel. Hier eine Einleitung in die Verwendung und Funktionsweise von WBAT
WBAT ist ein Batch-Utility welches sich z.B. mit BatToExe Converter kinderleicht in dein Programm integrieren lassen. es besteht auch die Möglichkeit die erforderlichen Dateien im Systemordner zu hinterlegen um sie lokal allgemein einsetzen zu können. Die Funktionen von WBAT finden alle im aktuellen Fenster statt. Popups kommen allso innerhalb des Screens.
Download WBAT:
http://www.horstmuc.de/int/wbat250.zip
Bild:
http://img189.imageshack.us/img189/9667/wbat.png
http://t2.gstatic.com/images?q=tbn:ANd9GcSK2qHNuio7IBXfmaajlnuzmN7qWu_6 ...
Was kann WBAT?
x Mausintegration
x Popups
x Knöpfe
x Eingabefelder
xxx Passwortfeld
xxx Zwingende Eingaben
xxx Begrenzte Eingaben (z.B. auf 5 Zeichen)
x Kästchen zum Ankreuzen
x Entweder - oder Auswahlfelder
x Anzeigen von Scrollbaren Listen
x Ausgabe Farbiger Inhalte auf definierten Zeilen
x Verwendung von verschiedenen Schriftarten
x Verschiebbare Menüs
x "Animationen" / "Ladebalken"
Wie Nutze ich WBAT? ------------------
Lade dir das ZIP-File runter und extrahier es in einen eigenen Ordner.
Aus diesem Ordner brauchst du nun folgende 6 Dateien:
- WBAT.COM > Befehlsinterpreter
- W.bat > Übermittlung von Variablen
- WBAT.ini > Grundkonfiguration WBAT
- WBAT.txt > Menülayout
- SANSERIF.FNT > Schriftart
- PAL.ini > Farbpalette
Zusammen machen diese weniger als 30kb aus.
Zur Konfiguration der einzelnen Dateien noch Später.
Allgemeines ----------
Alle arten von WbatFenstern verhalten sich gleich wie PAUSE. Sobald ein Fenster quitiert wird läuft das Script weiter.
(gillt nicht für =wbat text 5,9 "blablabla"=)
Diese Beschreibung gillt für die allgemeinen Einstellungen der WBAT.ini. Diese Definiert was wie aussieht und verwendet wird. z.B. wo das Menülayout WBAT.txt zu finden ist. Mann kann jedoch in der INI sowohl den Ort als auch den Namen verändern. Ebenfalls möglich ist die verwendung mehrerer Menülayoutquellen. Evt. Seht ihr zuerst die INI an und passt sie an euer Bedürfnisse an.
Popups ---------
Popups wie man sie kennt. Sie sind sehr Praktisch für Fehleranalysen oder allgemeine outputs.
Diese werden in deinem Hauptscript folgendermassen hinterlegt:
wbat box 12,28 "Text" OK
Erklärung:
wbat > Aufrufen der WBAT.com
box > Ein Popup
12,28 > Zeile 12, Spalte 28
"text" > Dein Inhalt
OK > Mit einem OK button
Erweiterungsmöglichkeiten:
wbat box (blue on green) 12,28 "Text" OK,Abbruch,Löschen
Mit einem "," kann man gewünschte Schaltflächen trennen, im obigen Fall wären dies drei Schaltflächen. OK, Abbruch und Löschen
Um abzurufen welcher Button gedrückt wurde wird if errorlevel verwendet
if errorlevel 3 goto Löschen
if errorlevel 2 goto Abbruch
if errorlevel 1 goto OK
Eine weiter Möglichkeit z.B. für eine Bitte Warten anzeige während der Batch eine grössere Berechnung durchführt.
wbat text 5,12 (white on red) "Datenbank wird geladen, Bitte warten."
wbat text > Textausgabe
5,12 > 5. Zeile, 12 Reihe
(white on red)> Farbdefinition
"Text" > Inhalt der Anzeige
Hier wird ein Feld angezeigt (In diesem Fall mit Weisser Schrift auf Rotem Hintergrund). Man kann es weder Bestätigen noch wegdrücken. Es ist so lange vorhanden bis wieder ein cls vorgenommen wird.
Knöpfe --------------
Knöpfe sind für viele dinge Nützlich. Um eine Box mit z.B. vier Buttons zu erstellen muss man nun die Datei WBAT.txt öffnen. Diese müsst ihr erstmal leeren da dieser Inhalt von der DEMO stammt.
Folgender Eintrag muss in die WBAT.txt:
:offnen "Text" [x]
Kaleder öffnen?
[ Ja ] [ Nein ]
:
:offnen > Markierungspunkt (fast wie in der Batch)
"Text" > Titel dieses Fensters
[x] > Schliessen [x]-Button (optional)
[ abs ] > Eckige Klammern interpretiert WBAT als Buttons
Abschliessen muss man das ganze auch wieder mit einem ":" damit WBAT weiss wo die Fensterdefinition aufhört. (Sonst gibts error)
Erweiterungsmöglichkeiten:
[? Exit ]
Die Formatierung wird von WBAT 1:1 übernommen. Tabstopps gelten übrigens als Auflistungspunkte. Ist kein Platz zwischen den Buttons kann es sein, dass WBAT die eingabe nicht interpretieren kann.
In eurem Script muss man folgendes Integrieren damit das Fenster angezeigt wird:
call w.bat box 6 :offnen
call w.bat > hoffentlich allen klar ;) öffnet Instanz in Instanz
box > Selbiges wie Popup... es soll ein Fenster aufgehen
6 > 6. Zeile
:offnen > unter welchem Namen findet WBAT das Layout in WBAT.txt
Erweiterung Time-Out-Funktion:
call w.bat box 6 :offnen #1,10
#1,10 beschreibt, dass nach 10 Sekunden automatisch der erste Button gewählt wird. Der Countdown kann auch im Menü durch das einfügen von "#?" ins Layout angezeigt werden
:offnen "Datei öffnen"
Timer: #?
[ OK ]
:
Um abzurufen welcher Knopf gedrückt wurde verwendet man %wbat%.
Wurde OK gedrückt so ist wbat=OK. Ich verwende meist Zahlen damit ich mit Nummernblock navigieren kann da er immer die erste Ziffer oder Zahl als Schnellwahl anbietet.
if %wbat% == OK goto START
Erweiterungsmöglichkeiten:
set "zpos=%?%"
call w.bat box (black on +white) 6 :offnen #%zpos%
(black on +white) > Farbdefinition des Fensters
#%zpos% > zpos wird zufällig generiert. So ist der als erstes ausgewählte Button eines Menüs jedes mal ein anderer.
Eingabefelder ----------------
Eingabefelder kann man für Formulare oder Suchabfragen verwenden oder was auch sonst noch so ainfällt ;)
Um ein Formular zu erstellen muss man dies ebenfalls in der WBAT.txt machen.
:menu "Anmeldung"
Name : [$ Name ]
Vorname : [$ VName ]
Pseudonym: [$ Pseudo,5!]
Passwort : [$ Pass,8,P!]
[ OK ]
:
Für die Erklärung der Grundelemente siehe oben.
Wenn nun in den -Klammern an erster (!) stelle ein "$" steht so interpretiert WBAT dies als Eingabefeld. Der Text im Eingabefeld definiert den Variabelnamen.
[$ Pass,5.P! ] ,5 bedeutet dass die Eingabe max 5 Zeichen lang sein darf ,P bedeutet dass es ein Passwortfeld ist und er daher anstatt die Eingabe nur noch "*" anzeigt. Das "!" heisst es ist ein Pflichtfeld. Wenn man dies nicht ausfüllt kommt man nur noch mit ESC aus dem Menü.
Die Abfrage in deinem Batch sieht dann so aus:
echo %Name%
echo %VName%
echo %Pseudo%
echo %Pass%
Man kann auch Formulare kreieren ohne einen [ OK ] Button. Wenn kein Button existiert so wird Enter als OK gewertet.
Achtung die Grösse der im WBAT.txt definierten Fenster ist auf eine bestimmte Anzahl begrenzt. WBAT wird euch jedoch eine Entsprechende Fehlermeldung anzeigen, dass zu viele Zeichen verwendet wurden für das Menü.
Dann müsst ihr das Menü halt in zwei Kategorien aufteilen. Ebenfalls begrenzt ist die Höhe der Fenster und zwar logischerweise auf die Höhe des CMD-Fensters.
Kästchen zum Ankreuzen -------------Dann müsst ihr das Menü halt in zwei Kategorien aufteilen. Ebenfalls begrenzt ist die Höhe der Fenster und zwar logischerweise auf die Höhe des CMD-Fensters.
Checkboxes kennen wir ja alle sie sind praktisch wenn man mehrere Dinge abfragen möchte ohne, dass der User Text eingeben muss.
Auch hier standardmässig das editieren der WBAT.txt für das Layout
:checkboxes "Wähle aus was du Magst"
[!] Strand [!] Sonne [!] Urlaub
[! Arbeit ] [! Regen ] [! Hunger ]
[ OK ]
:
[!] --> Checkbox neben dem Text
[! Text ] -> Checkbox mit Textinhalt
Integration im Batch:
Um abzufragen welche Checkboxen angekreuzt wurden muss man die Variablen %WCB1% bis %WCB9% abfragen. Für jede Checkbox ergibt sich der Wert 0 für nicht angekreuzt und 1 für angekreuzt:
if %WCB1% == 1 set mager1=Strand
...
if %WCB6% == 1 set mager6=Hunger
Entweder - oder Auswahlfelder --------
Für Formulare sinnvoll welche eine oder auswahl zur verfügung stellen z.B. Männlich - Weiblich
Auch hier muss das Layout ersmal in der WBAT.txt stattfinden.
:ModerW "Was sind sie?"
[.] Männlich
[. Weiblich ]
[ OK ]
:
[.] > Ein feld zum Anwählen neben dem Text
[. text ] > Anwählbares Feld mit Textinhalt
In eurem Batch wird dies dann so Integriert:
call w.bat box 6 :ModerW
Die Abfrage welches Feld gewählt wurde findet mit %WRB% statt
wird das erste feld angewählt so ist WRB=1 beim zweiten WRB=2 usw...
if %WRB% == 1 set geschlecht=Männlich
if %WRB% == 2 set geschlecht=Weiblich
Dies ist Nützlich wenn man eine Dateiliste ausgeben möchte auf welchem man per Mausklick auswählen kann welche Datei geöffnet werden soll.
Ausnahmsweise ist hier kein edit im WBAT.txt notwendig ;)
Um eine liste zu kreieren muss man eine Temporäre Datei anlegen dessen Inhalt wird dann als Liste ausgegeben.
dir C:\MeingewünschterOrdner\*.doc >%tmp%\wieauchimmer.tmp
call w.bat list 3,60 %tmp%\wieauchimmer.tmp
Um dann eine gewünschte Datei zu öffnen verwendet man die Variabel %wbat%
start C:\MeingewünschterOrdner\%wbat%
Wie öde doch das CMD-Fenster ist mit seiner einfarbigen Ansicht... gäääähn
Gut gibt es da in WBAT eine bzw. mehrere Lösungen
wbat fill 5,10 (5,6) (green on black)
fill > Fülle bereich
5,10 > Beginne auf Zeile 5 Spalte 10
(5,6) > Box von 5 Höhe und 6 Breite
(green..) > Farbe
Damit lassen sich auch "Animationen" basteln durch die Verzögerte Befehlsausgabe... (Siehe Besipiele)
ein weiterer Befehl dazu füllt den sichtbaren Teil ein, Springt man eine Zeile nach unten verschwindet die Farbe in der Untersten Zeile und Steigt entsprechend hoch:
wbat cls (green on black)
Voller Syntax:
wbat FILL position (dimensions) (colors) "string" +s
z.B.
wbat fill 13,32 (9,28) (+magenta on blue) "└┐┌┘" +2
Eine weitere möglichkeit habe ich oben bereits beschrieben:
wbat text 5,12 (black on +grey) "Text in Eingefärbtem Feld"
Man kann eine weitere Schriftar hinzufügen indem man in der WBAT.ini die Angabe "FontFile" bearbeitet und die Schriftart der Wahl hinzufügt.
Im Batch ladet man die Schrift folgendermassen:
wbat font %grösse%
Text
Mode CO80
Farbliste:
black, blue, green, cyan, red, magenta, brown, white
+black, +blue, +green, +cyan, +red, +magenta, +brown, +white
Diese Farben gibt es in 2 Variationen Hell und Dunkel.
Dunkel ist wenn der Name (z.B. white) normal geschrieben ist. white ist in diesem Fall ein helles Grau. Wenn ich aber den Wert auf +white setze ist es schneeweiss. Mann kann also jede Farbe normal und mit einem "+" davor Schreiben um die Hellere Variante zu erhalten.
Einfügen eines *Briefkopfs"
z.B.
:title
~_______________________________________________________________
_____________________________TITLE_____________________________
~
:
Nun kann man einstellen dass dies als Kopf dient indem man im Batch folgendes Verwendet:
set Wtexthi=+white on black
wbat cls (+black on cyan) ! text 0 :title
text 0 heisst Zeile 1 Spalte 1
Spezielles ---------------------
Die WBAT.txt muss weder so heissen noch im gleichen Ordner liegen.
z.B:
call w.bat box 6 @C:\OrdnerDeinerWahl\deinfile.txt:usersetupbox
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ wird im Batch als Durchgezogener Bindestrich angezeigt. So kann man schön räumlich einteilen.
WBAT.ini ------------------------
BlinkMode=0 ;Aus ist Empfohlen
ELvar=1 ;Sollen Menüboxen mit ? drin als ESC gehandelt weden?
rightESC=1 ;Rechtsklick = ESC
ESCinput=0 ;ESC ignorieren?
ErrorPause=1 ;Halt bei errors (errorlevel 255)
KeybFlush=0 ;Keyboardcache löschen beim Starten?
NoHideCursor=0 ;Blinkende Eingabe Verstecken?
MouseReset=0 ;Mouse reset erzwingen =1 (hab ich noch nie probiert)
DragAnim=1 ;"Animationen" Ein oder Aus
BoxFrame=" " ;3*3 pattern, example: "ÚÄ¿³ ³ÀÄÙ" <-- Weiss auch nicht
CheckSymbol="x" ;Symbol dass in einer Checkbox beim anklicken kommt
RadioSymbol="*" ;Symbol bei entweder oder felder (RadioButtons)
HiSymbol="~" ;Symbol um Importe einzufärben
SourceFile=WBAT.TXT ;Wo ist WBAT.txt hinterlegt bzw DeineWahl.txt
PalFile=+PAL.INI ;Farbpalette (command: wbat pal)
FontFile=+SANSERIF.FNT ;Zus. Schriftart (command: wbat font)
;("+" means: in directory of WBAT.COM)
[color]
Screen= black on +green ;Standardfüllung bei "wbat cls" oder fill
TextHi= red on +green ;Farbe von Import-Texten
TextTitle=+white on magenta ;Titelbildfarbe
Box= black on +white ;Standard füt box/menu/list
BoxHi= red on +white ;Farbe wenn man über einen Button fährt
Divider= cyan ;Welche Farbe haben die Trennstriche "ÄÄ"
Shadow= +black ;Farbe des Fensterschattens
BoxTitle= black on +blue ;Farben im Titel eines Fensters
Bar= +white on +red ;Aktive Kontrollelemente
Button= black on white ;Farbe der Buttons
HotKey= red ;Farbe der Kurzwahltaste
;NONE schaltet die Hotkey- Funktion ab
Muster für Anmeldeformular:
:usersetupbox "Hinzufgen eines neuen Users"
User-ID*: [$ ID,8! ]
Visum*: [$ visum,3! ]
Vorname*: [$ vname,8! ]
Nachname*: [$ naname,8! ]
(* = Pflichtfelder)
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ÄÄÄÄÄÄÄÄÄÄÄÄ Login-Rechte ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
[.] Benutzer [.] Administrator
[ 2 Hilfe ]
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
[ 1 OK ] [ 0 Zurck ]
:
Beispiel eines Error outputs:
Ich setze bei jeder Sprungmarke die variable %jump% auf den Namen der Sprungmarke. Wenn dann in einer IF schleife etwas nicht zutrifft was jedoch muss so kann man dies definieren als "error=ZeileX Schleife wurde verlassen"
echo off
:START
set "jumper=START"
wbat cls (black on +black)
set /p eingabe=
if not defined eingabe set "error=Keine Eingabe!" & goto Fail
goto DONE
:Fail
wbat cls (+red on red)
wbat box 12,28 "%error%" OK
goto %jumper%
:DONE
wbat box 12,28 "%eingabe% Akzeptiert!" OK
goto :eof
Beispiel einer "Animation": Diese "Animation" entsteht eigentlich nur durch die Verzögerte Befehlsverarbeitung...
wbat fill 2,0 (4,90) (+white on black)
wbat fill 20,0 (4,90) (+white on black)
wbat fill 10,26 (7,3) (black on +white)
wbat fill 10,26 (1,6) (black on +white)
wbat fill 11,31 (1,3) (black on +white)
wbat fill 12,32 (1,2) (black on +white)
wbat fill 13,30 (2,2) (black on +white)
wbat fill 15,31 (1,2) (black on +white)
wbat fill 16,32 (1,2) (black on +white)
wbat fill 10,37 (7,3) (black on +white)
wbat fill 16,40 (1,5) (black on +white)
wbat fill 10,46 (7,3) (black on +white)
wbat fill 10,52 (7,3) (black on +white)
wbat fill 13,49 (1,3) (black on +white)
Hier ein Beispiel eines Ladebalkens:
echo ! ! 0%
Befehlsabfolge1
cls
echo !!!! ! 15%
wbat fill 1,1 (1,4) (black on +white)
Befehlsabfolge2
cls
echo !!!!!!! ! 25%
wbat fill 1,1 (1,7) (black on +white)
Befehlsabfolge3
cls
echo !!!!!!!!!!!!!! ! 50%
wbat fill 1,1 (1,14) (black on +white)
usw...
So ich glaub das wars erstmal fürs erste... Wenn noch Fragen dann einfach stellen ich versuch sie nach bestem Wissen zu beantworten.
Lg
Apop
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205045
Url: https://administrator.de/tutorial/batchutility-wbat-205045.html
Ausgedruckt am: 25.12.2024 um 14:12 Uhr
9 Kommentare
Neuester Kommentar
Hallo Apop85,
umfangreiche Erklärung
Ich kannte WBAT bereits und habe auch schon ein bisschen damit gespielt. Aus einem Konsolefenster macht man nun mal kein echtes GUI, ist aber trotzdem nett.
Der Vollständigkeit wegen sei noch erwähnt, dass WBAT eine 16-Bit-Anwendung ist (*.com). Seine Tage sind leider gezählt, da auf modernen x64 Systemen nicht mehr lauffähig (außer mit einem zusätzlichen x86 Emulator, wie bspw. DOSBox).
Grüße
rubberman
umfangreiche Erklärung
Ich kannte WBAT bereits und habe auch schon ein bisschen damit gespielt. Aus einem Konsolefenster macht man nun mal kein echtes GUI, ist aber trotzdem nett.
Der Vollständigkeit wegen sei noch erwähnt, dass WBAT eine 16-Bit-Anwendung ist (*.com). Seine Tage sind leider gezählt, da auf modernen x64 Systemen nicht mehr lauffähig (außer mit einem zusätzlichen x86 Emulator, wie bspw. DOSBox).
Grüße
rubberman
Hallo Apop85.
Weiß nicht genau worauf du hinaus willst. Wenn du etwas ähnliches wie WBAT schreiben willst, eignet sich beinahe jede Programmiersprache. Die benötigten Consolefunktionen bringt die WINAPI mit. Wenn ich irgendwann viel Langeweile haben sollte, schreib ich mal ein paar hundert Zeilen in C. Das sollte schon genügen ...
Grüße
rubberman
Kenn mich nur nich so aus welche Sprachen da in etwa ähnl. sind.
Weiß nicht genau worauf du hinaus willst. Wenn du etwas ähnliches wie WBAT schreiben willst, eignet sich beinahe jede Programmiersprache. Die benötigten Consolefunktionen bringt die WINAPI mit. Wenn ich irgendwann viel Langeweile haben sollte, schreib ich mal ein paar hundert Zeilen in C. Das sollte schon genügen ...
Grüße
rubberman
Hallo Apop85,
auf die Gefahr hin dass wir etwas off topic werden ...
Ich habe mit Programmierung beruflich nichts am Hut. Alles selbst beigebracht, nix irgendwo gelernt. Von daher kann ich nicht sagen, welche Sprache man als Informatiker lernt (vermutlich C oder C++), ich gehe aber davon aus dass Programmieren bei der Ausbildung zum Informatiker nicht die Hauptrolle spielt.
Batch lässt sich mit gar nichts vergleichen. Vorkenntnisse dort, helfen bei dem Erlernen einer Programmiersprache nur wenig. Im Gegenteil. Wer sich mit Batch angewöhnt hat, mit zig GOTOs Spaghetticode zu schreiben, wird es schwer haben.
Grüße
rubberman
auf die Gefahr hin dass wir etwas off topic werden ...
Ich habe mit Programmierung beruflich nichts am Hut. Alles selbst beigebracht, nix irgendwo gelernt. Von daher kann ich nicht sagen, welche Sprache man als Informatiker lernt (vermutlich C oder C++), ich gehe aber davon aus dass Programmieren bei der Ausbildung zum Informatiker nicht die Hauptrolle spielt.
Batch lässt sich mit gar nichts vergleichen. Vorkenntnisse dort, helfen bei dem Erlernen einer Programmiersprache nur wenig. Im Gegenteil. Wer sich mit Batch angewöhnt hat, mit zig GOTOs Spaghetticode zu schreiben, wird es schwer haben.
Grüße
rubberman
Hallo Apop85.
Übrigens sind C (prozedural) und C++ (objektorientiert) zwei unterschiedliche Sprachen (auch wenn C fast vollständig in C++ aufgeht).
So etwas wie SELFHTML für HTML stellt wohl letztlich das "Microsoft Developer Network" (MSDN) für die Programmierung unter Windows dar, zu dem ich mittlerweile eine Art Hassliebe entwickelt habe ...
Grüße
rubberman
Kann man mit Call ein setlocal ersetzen? Bzw. werden die Variablen gelöscht bei exit /B oder bleiben die bestehen?
Nein, die Umgebung bleibt gleich. Wenn du eine Subumgebung einrichten willst geht das auch nur über SETLOCAL und das Aufheben über ENDLOCAL.Gibts da sowas wie SELFHTML für C/C++?
Tutorials gibt es genügend im Netz. Wenn du aber nicht so ein Masochist bist, wie ich - der alles aus Google heraus kitzelt und per Try And Error lernt - solltest du dir ein gutes Buch anschaffen. Im Zusammenhang mit C++ habe ich da oft von Ulrich Breymann "Der C++ Programmierer" gehört...Übrigens sind C (prozedural) und C++ (objektorientiert) zwei unterschiedliche Sprachen (auch wenn C fast vollständig in C++ aufgeht).
So etwas wie SELFHTML für HTML stellt wohl letztlich das "Microsoft Developer Network" (MSDN) für die Programmierung unter Windows dar, zu dem ich mittlerweile eine Art Hassliebe entwickelt habe ...
Grüße
rubberman
Die Benachrichtigung kam wegen einem Spam Post der mittlerweile gelöscht ist.
Schön zu hören, dass du dich weiter mit Programmierung beschäftigst. Mach ich auch immer noch als Freizeitbeschäftigung. Und ebenfalls weniger mit Batch, eher mit C (was allerdings auch nicht weniger masochistisch ist ).
Grüße
Steffen
Schön zu hören, dass du dich weiter mit Programmierung beschäftigst. Mach ich auch immer noch als Freizeitbeschäftigung. Und ebenfalls weniger mit Batch, eher mit C (was allerdings auch nicht weniger masochistisch ist ).
Grüße
Steffen