Sie sind hier:
»
PC + Co.
»
mehr BAT-Skripte
»
Bginfo
Tipp
In der Quicksearch-Box rechts können Sie den Namen eines Windows-Kommandos oder
Kommandozeilentools eingeben
und kommen so schnell zu dessen Beschreibung.
BATch-Dateien - Bginfo erweitern
Erweiterungen der Ausgabe von Bginfo mit Batchfiles
Einleitung
Arbeitsweise
Screenshots
Download
Einleitung
Mit dem Programm BGInfo werden Bildschirm-Hintergrundbilder generiert,
wo man diverse Informationen einblenden kann. Es gibt zahlreiche
vordefinierte Felder, die man verwenden kann. Zusätzlich können
eigene Text-Dateien, VB-Skripte, Ausgaben von WMI-Abfragen, Registry-Werte
angezeigt werden.
Vorab:
Sie benötigen die Freeware
Bginfo von Sysinternals.
Arbeitsweise
Für die Aktualisierung der Hintergrundinformationen mit Bginfo benötigt man
einen Aufruf als Taskplaner. Der normale Aufruf von Bginfo in einer Batchdatei
erfolgt mit einem Einzeiler dieser Art:
Bginfo.exe /timer:0 /iq meinset.bgi
Eigene Erweiterungen mit Skripten kann man auf 2 Arten erledigen:
- Nutzung des benutzerdefinierten Feldes eines VBScripts
- Nutzung des benutzerdefinierten Feldes einer Dateiausgabe
VBScripte lassen sich also direkt als Custom-Feld integrieren. Eine Beschreibung befindet sich
in der Hilfe von Bginfo - daher gehe ich nicht weiter darauf ein.
Um Batch-Dateien zu nutzen, muss man den Umweg über die Dateien nehmen.
Ich erweitere dazu meinen Wrapper zum Aufruf von bginfo. Vor dem Aktualisieren
des Hintergrundes starte ich zunächst meine Batchdateien, leite deren Ausgabe in eine
Datei um. In meinem Set habe ich Custom-Felder mit der Ausgabe von Dateien definiert.
Soweit das Ganze verdaut?
Wenn man schon beim Skripten ist ... wenn sich einige Tests anhäufen würden
und die Ausgabe jedes Tests mich mit Infos überhäuft, statt auf wirklich wichtige
Sachen hinzuweisen, habe ich nicht viel gekonnt.
Bringen wir also etwas Ordnung in ein vielleicht drohendes Chaos:
- alle meine Batch-Dateien befinden sich in einem Unterverzeichnis "plugin-scripts"
- Ich kategorisiere meine Batch-Tests in die Rubrik "Warnungen" und "Fehler"
Das geht einfach über den Dateinamen - [Name_des_Tests]_warning.bat bzw.
[Name_des_Tests]_error.bat.
- Alle Batchdateien einer Rubrik werden in je eine Textdatei pro Rubrik umgeleitet.
Mittels FOR-Schleife werden alle Batchfiles in alphabetischer Reihenfolge
abgeklappert und umgeleitet - die Warnungen werden nach c:\bginfo_custom_warnings.txt
geschrieben und die Fehlermeldungen nach c:\bginfo_custom_errors.txt - Um die Informationsflut einzudämmen, geben meine Batchtests nicht in jedem Fall
etwas aus, sondern nur, wenn eine Warnung festgestellt wurde.
- In der GUI von Bginfo werden 2 Customfelder definiert, die die Textdateien
für Warnungen und Fehlermeldungen aufnehmen. Dies Customfelder werden in
das Ausgabe-Template eingefügt. Wer mag kann die Fehler rot und die Warnungen
gelb ausgeben lassen.
Mein Wrapper-Batchfile liegt im selben Ordner, wie Bginfo, sieht dann etwa so aus:
:: -- variables
set file4Warnings="%appdata%\bginfo\bginfo_custom_warnings.txt"
set file4Errors="%appdata%\bginfo\bginfo_custom_errors.txt"
set scriptdir=%~dp0%
set plugindir=%scriptdir%\plugin-scripts
set bgifile=%scriptdir%\set001.bgi
:: -- delete the output files first
del "%file4Warnings%" "%file4Errors%" >nul 2>&1
:: -- create list with warnings ...
for /F %%a in ('dir /B /S /O:N %plugindir%\*_warning.bat') do ( echo ..... %%a && call %%a >>%file4Warnings% )
:: -- create list with errors ...
for /F %%a in ('dir /B /S /O:N %plugindir%\*_error.bat') do ( echo ..... %%a && call %%a >>%file4Errors% )
:: -- starting bginfo ...
%scriptdir%\Bginfo.exe /timer:0 /iq %bgifile%
Meine Verzeichnisstruktur sieht nun so aus: im Programmverzeichnis befindet
sich mein Wrapper (_wrapper_bginfo.bat) und das Template (set001.bgi).
Im Unterordner "plugin-scripts" sind meine einzelnen Tests:
[bginfo-root]
|
| Bginfo.exe
| _wrapper_bginfo.bat
| Eula.txt
| set001.bgi
|
\---plugin-scripts
birthday.txt
birthday_warning.bat
missing_services_error.bat
showdate.exe
Das Plugin für Geburtstage wertet Einträge in der birthday.txt aus - hier stehen
Namen und Geburtstage in der Form [Jahr-Monat-Tag]:[Name] drin.
Es werden die in diesem und nächsten Monat noch folgenden Geburtstage angezeigt.
Es wird hierfür die showdate.exe benötigt.
Das andere Beispiel testet eine (beim ersten Start angelegte) Textdatei
mit den Namen der Dienste, ob diese alle laufen.
Dies funktioniert mit Hilfe des Komandos net start.
Seitenanfang
Screenshots
Nach dem Aufruf von Bginfo:
Durch Klick auf den Schalter Custom kann man eigene Felder definieren:
Mit dem Schalter "add" fügt man sie in das Template ein (man kann die
Namen natürlich auch tippen) und anschliessend einfärben. Meine Customfelder
sind ganz unten unterhalb "Messages".
Und so kann es dann auf dem Desktop aussehen.
Seitenanfang
Download
examplebginfo.zip (23,1 kB)
Seitenanfang