![]() |
Sie sind hier: Home > Produkte > Software > Zum Archiv > Winscript |
Windows automatisieren:WinScript XP 3.0:
|
|
Die Winscript XP-Kommandos |
Angenommen, Sie setzen beispielsweise eine Stapeldatei zum Leeren des Dokumentenordners im Startmenü ein. Bevor das Batch loslegt, möchten Sie aber noch eine Sicherheitsabfrage einfügen. Mit den wenigen zur Verfügung stehenden Batchbefehlen könnte man diese Aufgabe mit dem (inzwischen ausgestorbenen) DOS-Befehl CHOICE erledigen - was heutzutage eher mäßig aussieht. Mit Winscript XP können Sie dagegen eine elegante Dialogbox mit einem entsprechenden Hinweistext und beispielsweise den beiden Schaltfläche "Ja" und "Nein" anzeigen lassen.
Das ist aber bei weitem noch nicht alles. Winscript XP verfügt in der aktuellen Fassung über folgende Windows-Elemente und Zusätze, die alle problemlos in Stapeldateien eingesetzt werden können - selbstverständlich auch in allen bereits bestehenden Batches:
Vor allem die beiden Dateidialoge und die Inputbox werden sicherlich viel Anwendung finden. Denn dadurch kann man in Zukunft bei Batchdateien vollkommen auf die Angabe von Dateinamen und sonstigen Eingaben als Startparameter verzichten - das unkomfortable Zusammenhacken der Befehle an der Eingabeaufforderung hat damit endlich ein Ende. Winscript XP ist ausführbar unter allen Windows-Versionen ab Windows 95.
![]() |
Download: Sofort ausführbares Setup (2,08 MByte) für Windows 98/ME/2000/XP/Vista |
![]() |
Hilfe und Infos zur Installation finden Sie hier. |
|
Alle Tools und Artikel komplett auf der Tools&More-CD. |
|
Unterstützen Sie Tools&More: Lassen Sie sich registrieren. |
![]() |
Dieses Programm weiterempfehlen. |
So wird Winscript XP angewendet |
Da die DOS-Box mit allerlei Restriktionen versehen ist, wurde der Aufbau der Winscript XP-Kommandos so einfach wie möglich gehalten. Ein Aufruf hat das Format:
Call Winscript Befehl [Parameter] [Infodatei]
Für Befehl setzen Sie eines der oben genannten Winscript XP-Kommandos ein, zum Beispiel Messagebox. Die Schreibweise (Gross-/Kleinschreibung) der Befehle kann frei gewählt werden. Parameter sowie Infodatei übergeben zusätzliche Infos, sind aber nicht bei allen Winscript XP-Befehlen nötig.
Bitte beachten Sie:
Allen Aufrufen von Winscript XP muss unbedingt das Konsolenkommando Call vorangestellt werden! Andernfalls kommt es zu Ausführungsfehlern. Falls Sie Winscript bereits in Versionen VOR 3.0 eingesetzt haben, so müssen Sie NACH einem Update auf Version 3.0 oder höher alle betreffenden Stapeldateien auf diesen Punkt überprüfen: Allen Aufrufen von Winscript XP muss das Kommando Call vorangestellt werden!
Hier jetzt der komplette Aufruf für die im nebenstehenden Bild gezeigt Dialogbox im Vordergrund:
Call Winscript MessageBox info.txt
Infos über das Aussehen und der Text der Messagebox werden in einer eigenen Datei (hier info.txt) übergeben. Die einzelnen Zeilen darin haben (zumindest bei Messagebox) folgende Bedeutung:
1. Zeile: Der Titelzeilentext
2. Zeile: Die Beschreibung des Icons und der Schaltflächen
3. und folgende Zeilen: Der Dialogtext
Die Beschreibungsdatei unseres Beispiels sieht daher folgendermaßen aus:
Dokumentenverweise löschen
Frage JaNein Rechts
Sollen die Verweise im Dokumenten-Ordner
wirklich alle gelöscht werden?
Auf die Reihenfolge der Angaben ist unbedingt zu achten. Winscript XP ermittelt lediglich über die Zeilenposition, um welche Art von Angabe (Titel, Tasten, Icon) es sich handelt. Die erste Zeile enthält den Titel der Dialogbox. In der zweiten Zeile wird das Icon mit dem Fragezeichen angefordert, dazu zwei Schaltflächen mit den Aufschriften "Ja" und "Nein", wobei die rechte Taste "Nein" bereits ausgewählt sein soll. Die Aufteilung des Dialogtextes auf zwei Zeilen (3. und 4.) hat zur Folge, dass der Text im Fenster auch tatsächlich zweizeilig dargestellt wird und nicht als Zeichenspaghetti erscheint (siehe Bild).
Zwecks Dokumentation können auch Kommentarzeilen in die Beschreibungsdatei eingefügt werden. Solche Zeilen müssen mit dem Kommando Rem, einem Semikolon (;) oder einem einfachen Anführungszeichen (') beginnen. Kommentarzeilen werden bei der Zählung der Datenzeilen natürlich nicht berücksichtigt. Ein Kommentar in der ersten Zeile einer Beschreibungsdatei wird also nicht als Fenstertitel verwendet, sondern die Angaben in der nachfolgenden Zeile - sofern diese nicht auch ein Kommentar ist.
Die Beschreibungsdateien der einzelnen Winscript XP-Befehle können Sie mit einem ganz normalen Editor wie Notepad oder Edit als vorgefertigte Textdateien erstellt werden. Kompakterweise können Sie sie aber auch durch die ausführende Stapeldatei kurz vor ihrem Einsatz anlegen und gleich danach wieder löschen lassen:
rem Beschreibungsdatei info.txt vorbereiten:
echo Dokumenten-Ordner leeren > info.txt
echo Frage JaNein Rechts >> info.txt
echo Soll der Ordner "Dokumente" >> info.txt
echo wirklich geleert werden? >> info.txt
So erhält man Antworten |
Damit ist klar, wie man zum Beispiel ein Dialogfenster definiert und anzeigen lässt. Aber wie werden die an der Oberfläche gemachten Angaben nun an die ausführende Stapeldatei geleitet? Hierfür dient die Umgebungsvariable wsresult, in der die entsprechenden Daten stehen.
Angenommen, Sie hätten im obigen Beispiel die Schaltfläche "Ja" gedrückt, so würde die Umgebungsvariable wsresult anschließend die Zeichenkette "JA" enthalten - andernfalls "NEIN". Der Inhalt einer Umgebungsvariable wird durch Einklammerung mit zwei Prozentzeichen (%) ermittelt:
if "%wsresult%" == "JA" goto KillDocs
Bitte beachten Sie:
Bei manchen Dialogen, wie beispielsweise der einfachen Eingabebox (Winscript XP-Befehl InputBox) ist es möglich, keine Angaben zu machen oder einfach die Schaltfläche "Abbrechen" zu drücken. In diesem Fall würde die Umgebungsvariable wsresult anschließend keinen Inhalt haben. Daher ist es nötig, die oben gezeigt Auswertung z.B. mit Anführungszeichen ("%wsresult%") zu machen, da es sonst zu einem Syntax-Fehler und kommt.
Die Ergebnisse in wsresult sind immer VERSAL geschrieben, damit eine spätere Auswertung (z.B. über If) in der ausführenden Stapeldatei leichter fällt.
Hier ein Beispiel für den kompletten Aufbau eines Batches zum Löschen der Verweise im Dokumentenordner:
rem #############################################
rem Demo-Batch zum Löschen der Dokumentenverweise
rem #############################################
rem
rem ### info.tmp für Abfrage vorbereiten:
echo Dokumentenverweise löschen>info.tmp
echo Frage JaNein Rechts>>info.tmp
echo Sollen die Verweise im Ordner "Dokumente">>info.tmp
echo wirklich alle gelöscht werden?>>info.tmp
rem
rem ### Abfrage starten:
call winscript messagebox info.tmp
rem
rem ### Je nach Auswahl weiter machen
if "%wsresult%" == "NEIN" goto Ende
rem
rem ### Ordnerinhalt löschen (Pfad ggf. anpassen)
del /s/q "%USERPROFILE%\Recent\*.*"
rem
rem ### info.tmp für Folgeinfo vorbereiten:
echo Dokumentenverweise löschen>info.tmp
echo OK Info>>info.tmp
echo Alle Verweise im Ordner "Dokumente">>info.tmp
echo wurden gelöscht.>>info.tmp
rem
rem ### Info anzeigen:
call winscript messagebox info.tmp
rem
:Ende
rem ### Aufräumen
del info.tmp
Alle Winscript XP-Kommandos im Detail |
Alle Winscript XP-Befehle werden analog der gezeigten Verfahren angewendet. Die hierfür nötigen Parameter werden im folgenden ausführlich erläutert. Eine kompakte Zusammenfassung in Tabellenform finden Sie am Ende dieses Textes (Tabelle 1).
Tipp: Zwecks leichterem Verständnis ist im Installationspaket von WinScript XP auch eine Demo-Batch enthalten, die alle Befehle an einem Life-Beispiel dokumentiert.
CheckDrive überprüft, ob sich ein bestimmtes Speichermedium überhaupt ansprechen lässt. Fehler, die beispielsweise auf nicht eingelegte Datenträger oder nicht eingeschaltete Geräte zurückzuführen sind, können so von vorn herein ausgeschlossen werden. Als Parameter ist zumindest der Laufwerkbuchstabe des zu prüfenden Drives anzugeben. Dieses Kommando benötigt keine Beschreibungsdatei. Das Ergebnis erhält man wie üblich in der Umgebungsvariable wsresult - sie enthält entweder OK, falls man problemlos auf den Datenträger zugreifen kann, bzw. ERROR, falls nicht. Hier ein Beispiel:
Rem Prüfe, ob Zugriff auf Diskette in A: möglich
:start
call winscript checkdrive a
if "%wsresult%" == "OK" goto driveok
goto fehler
: driveok
CheckLabel lässt Sie verifizieren, ob es sich bei dem in ein bestimmtes Laufwerk eingelegten Medium um das richtige handelt. Bei dem Aufruf ist neben der betreffenden Laufwerkskennung auch der erwartete Datenträgernamen anzugeben. Dieses Kommando benötigt keine Beschreibungsdatei. Stimmt der Name des überprüften Mediums, so liefert die Umgebungsvariable wsresult den Wert OK - falls nicht ERROR. Auch hierzu ein Beispiel:
Rem Prüfe, ob Medium in A: "backupxy" heißt
:start
call winscript checklabel a backupxy
if "%wsresult%" == "OK" goto labelok
goto fehler
: labelok
|
|
FileSaveBox: Standard-Dialog zum Sichern einer Datei, ebenfalls mit Unterstützung langer Dateinamen und Netzlaufwerken. Dieser Befehl entspricht weitestgehend FileOpenBox, im Titel wird (je nach Windows-Version) statt "öffnen" jedoch "sichern" angezeigt.
Help lässt Sie direkt aus der Eingabeaufforderung heraus die Winscript XP-Onlinehilfe öffnen. Das geht oftmals schneller, als die Hilfe über den Eintrag im Startmenü per Maus zu starten. Dieses Kommando benötigt keine Beschreibungsdatei. Der Aufruf:
Rem Winscript XP-Hilfe öffnen
call winscript help
|
|
|
|
Play spielt eine .wav-Datei ab. Infos darüber werden in einer Beschreibungsdatei mit folgendem Aufbau übergeben:
1. Zeile: Name der Klangdatei (.wav-Format)
2. Zeile: Ausführungsverhalten. Bei Angabe von WAIT wartet Winscript XP bis die Klangdatei komplett abgespielt ist und gibt dann erst die Kontrolle zurück an die Stapeldatei. Eine sofortige Rückgabe erreichen Sie mit CONTINUE.
rem Abspielen einer Klangdatei
echo %windir%\media\chimes.wav > info.txt
echo wait >> info.txt
call winscript play info.txt
del info.txt
|
Tabelle 1.a: Die Winscript-Kommandos im Überblick (Teil 1) |
Befehl | MessageBox | InputBox | ListBox |
Zweck | Nachrichten-fenster mit frei festlegbaren Dialogtext, bis zu drei Schaltflächen und verschiedenen Icons | Eingabe-fenster mit frei festlegbaren Dialogtext für die Eingabe einer (vorbestimm- baren) Zeichenkette | Listenauswahl- fenster mit frei festlegbaren Dialogtext und Inhalt |
Syntax | call winscript messagebox info.dat | call winscript inputbox info.dat | call winscript listbox info.dat |
Beschreibungs- datei: Zeile 1 |
Fenstertitel | Fenstertitel | Fenstertitel |
Zeile 2 | Icon, Taster und Vorauswahl (siehe Tabellen 2 bis 4) | Vorausgewählter Text, der in der Eingabezeile erscheinen soll | Name der Textdatei, die den Listeninhalt enthält |
Zeile 3 | Ab hier sind alle folgenden Zeilen Dialogtext | Ab hier sind alle folgenden Zeilen Dialogtext | Auswahl: SINGLESELECT erlaubt nur die Auswahl eines einzigen Listeneintrags, MULTISELECT dagegen mehrere. STRING bzw. NUMERIC: Damit werden Listenmarkierungen entweder als Zeichen- ketten oder num. Aufzählungen in der Ergebnisvariablen WSRESULT abgelegt. Wird bsw. der 1., 5. und der 33, Eintrag gewählt, so enthält WSRESULT durch NUMERIC die Zeichenkette "1 5 33" (ohne Anführungszeichen). Zum Aufsplitten eines MULTISELECT- Ergebnisses über Batchbefehle bietet sich das Kommando FOR an. |
Zeile 4 | - | - | Ab hier sind alle folgenden Zeilen Dialogtext |
Ergebnisse in %wsresult% | Wert richtet sich nach dem Beschriftung der zuvor gedrückten Schaltfläche. War es beispielsweise "OK", enthält die Variable die Zeichenkette OK (siehe Tabellen 2 bis 4) | Variable erhält den Inhalt des Eingabefeldes. Wurde abgebrochen, so ist die Variable leer. | Variable erhält den ausgewählten Listeneintrag. Sind es mehrere, so werden sie durch Leerzeichen voneinander getrennt. Wurde abgebrochen, so ist die Variable leer. |
|
Tabelle 1.b: Die Winscript-Kommandos im Überblick (Teil 2) |
Befehl | FileOpenBox | FileSaveBox | Play |
Zweck | Standard-Dialog zum Öffnen einer Datei | Standard-Dialog zum Sichern einer Datei | Modul zum Abspielen von WAV-Dateien |
Syntax | call winscript fileopenbox info.dat | call winscript filesavebox info.dat | call winscript play info.dat |
Beschreibungs- datei: Zeile 1 |
Fenstertitel | Fenstertitel | Name der abzuspielenden Datei |
Zeile 2 | Vorgegebener Name für die zu öffnende Datei | Vorgegebener Name für die zu sichernde Datei | Warteverhalten: WAIT wartet, bis die Datei abgespielt wurde, CONTINUE kehrt sofort zum Batch zurück |
Zeile 3 | Der vorgegebene Name des Verzeichnisses, das der Dialog öffnen soll | Der vorgegebene Name des Verzeichnisses, das der Dialog öffnen soll | - |
Zeile 4 | Dateifilter für den Dialog, Beispiel: Text (*.txt) : *.txt : Bilder (*.bmp; *.ico) : *.bmp; *.ico | Dateifilter für den Dialog, Beispiel: Text (*.txt) : *.txt : Bilder (*.bmp; *.ico) : *.bmp; *.ico | - |
Ergebnisse in %wsresult% | Variable erhält den ausgewählten Dateinamen. Wurde abgebrochen, so ist die Variable leer. | Variable erhält den ausgewählten Dateinamen. Wurde abgebrochen, so ist die Variable leer. | Variable wird nicht verändert. |
|
Tabelle 1.c: Die Winscript-Kommandos im Überblick (Teil 3) |
Befehl | QueryFolderBox | Info | Help |
Zweck | Dialog zur Eingabe eines Pfades über einen Verzeichnisbaum | Info zeigt den Info-Dialog von Winscript XP an. Er enthält Infos über die Programmversion und Links zu eventuellen Updates des Tools. | Help lässt Sie direkt aus der Eingabeaufforderung heraus die Winscript XP-Onlinehilfe öffnen. |
Syntax | call winscript queryfolderbox info.dat | call winscript info | call winscript help |
Beschreibungs- datei: Zeile 1 |
Ab hier sind alle folgenden Zeilen Dialogtext | (nicht verwendet) | (nicht verwendet) |
Ergebnisse in %wsresult% | Variable erhält den ausgewählten Pfad. Wurde abgebrochen, so ist die Variable leer. | Variable wird nicht verändert. | Variable wird nicht verändert. |
|
Tabelle 1.d: Die Winscript-Kommandos im Überblick (Teil 4) |
Befehl | CheckDrive | CheckLabel | |
Zweck | Dialog zur Eingabe eines Pfades über einen Verzeichnisbaum | Info zeigt den Info-Dialog von Winscript XP an. Er enthält Infos über die Programmversion und Links zu eventuellen Updates des Tools. | |
Syntax | call winscript checkdrive laufwerkskennung | call winscript checklabel laufwerkskennung datenträgername | |
Beschreibungs- datei: Zeile 1 |
(nicht verwendet) | (nicht verwendet) | |
Ergebnisse in %wsresult% | Variable erhält den ausgewählten Pfad. Wurde abgebrochen, so ist die Variable leer. | Variable wird nicht verändert. |
|
Tabelle 2: Die Bezeichnungen für die Tastendefinition beim Befehl MessageBox |
Bezeichner | Abkürzung | Anzahl der gezeigten Taster | Aufschrift der Schaltflächen (entsprechen auch den Ergebnissen in %wsresult% falls gedrückt, aber in versaler Schreibweise) |
(keine) | (keine) | 1 | OK |
Ok | (keine) | 1 | OK |
OkAbbrechen | OA | 2 | OK, Abbrechen |
WiederholenAbbrechen | WA | 2 | Wiederholen, Abbrechen |
JaNein | JN | 2 | Ja, Nein |
JaNeinAbbrechen | JNA | 3 | Ja, Nein, Abbrechen |
Abbrechen- Wiederholen- Ignorieren |
AWI | 3 | Abbrechen, Wiederholen, Ignorieren |
|
Tabelle 3: Kennungen für die Tastenvorauswahl beim Befehl MessageBox |
Bezeichner | Voreingestellte Taste |
(keine) | Links |
Links | Links |
Mitte | Mitte |
Rechts | Rechts |
|
Tabelle 4: Die Bezeichnungen für die Icondarstellung beim Befehl MessageBox |
Bezeichner | Dargestelltes Icon |
(keine) | (keine) |
Frage | Weisse Sprechblase mit blauem "?" |
Info | Weisse Sprechblase mit blauem "i" |
Stop | Weisses "X" auf rotem Kreis |
Warnung | Schwarzes "!" auf gelbem Dreieck |
|