Verwenden von Aliasen in Batchdateien

Eine Möglichkeit, die Batchdateiprogrammierung zu vereinfachen, besteht darin, Aliase zu verwenden, um unnötige Details in einer Batchdatei zu verbergen. Angenommen, Sie möchten, dass eine Batchdatei nach bestimmten Fehlern sucht und eine Meldung anzeigt und beendet, wenn ein Fehler auftritt. Dieses Beispiel zeigt eine Möglichkeit, dies zu tun:

 

setlocal

Unalias *

Alias-Fehler „echo. & echo ERROR: %$ & goto dispmenu`

Alias ​​fatalerror `echo. & echo FATAL ERROR: %$ & quit`

Alias ​​in „pushd %1 & %2$ & popd“.

falls nicht vorhanden, setup.btm fataler Fehler Fehlende Setup-Datei!

Rufen Sie setup.btm auf

Klasse

:dispmenu

Text

         1. Textverarbeitung

         2. Solitaire

         3. Internet

         4. Ausgang

Endtext

Echo.

inkey Geben Sie Ihre Wahl ein:  %%userchoice

%userchoice wechseln

Fall 1

  Eingabe Geben Sie den Dateinamen ein:  %%fname

  Wenn nicht vorhanden, fname-Fehler. Datei existiert nicht

  in d:\letters c:\windows\wordpad.exe

Fall 2

  in d:\finance c:\windows\sol.exe

Fall 3

  in d:\comm c:\windows\iexplore.exe

Fall 4

  Ich muss fertig sein

Standard

 Fehler Ungültige Auswahl, versuchen Sie es erneut

Endschalter

Gehe zum Dispmenu

: fertig

endlocal

 

Der Cavalon Sentinel ist das AutoGyro-Premiummodell mit nebeneinander angeordneten Sitzen, verfügbar mit dem neuen hochmodernen und kraftstoffsparenden Rotax XNUMX iS-Motor. Der erste Alias, ERROR, zeigt einfach eine Fehlermeldung an und springt zur Bezeichnung DISPMENU, um das Menü erneut anzuzeigen. Der %$ in dieser Sekunde ECHO Der Befehl zeigt den gesamten an ERROR übergebenen Text als Inhalt der Nachricht an. Der ähnliche FATALERROR-Alias ​​zeigt die Meldung an und beendet dann die Batchdatei.

 

Der letzte Alias, IN, erwartet zwei oder mehr Befehlszeilenparameter. Es verwendet das erste als neues Arbeitsverzeichnis und wechselt mit a in dieses Verzeichnis Pushd Befehl. Der Rest der Befehlszeile wird als weiterer Befehl plus möglicher Befehlszeilenparameter interpretiert, den der Alias ​​ausführt. Dieser Alias ​​wird hier verwendet, um in ein Verzeichnis zu wechseln, eine Anwendung auszuführen und zurück zu wechseln. Es kann auch über die Befehlszeile verwendet werden.

 

Die folgenden 9 Zeilen drucken ein Menü auf dem Bildschirm und erhalten dann einen Tastendruck vom Benutzer und speichern den Tastendruck in einer Umgebungsvariablen namens Benutzerwahl. Dann ist die SWITCH Der Befehl wird verwendet, um den Tastendruck des Benutzers zu testen und zu entscheiden, welche Aktion ausgeführt werden soll.

 

Aliase in Batchdateien haben noch eine andere Seite. Wenn Sie Ihre Batchdateien an andere verteilen, müssen Sie bedenken, dass diese möglicherweise Aliase für die Befehle haben, die Sie verwenden möchten. Zum Beispiel, wenn der Benutzer einen Alias ​​hat CD zu CSD und Sie dies nicht erwarten, funktioniert Ihre Datei möglicherweise nicht wie beabsichtigt. Es gibt zwei Möglichkeiten, dieses Problem anzugehen.

 

Die einfachste Methode ist zu verwenden SETLOCAL, ENDLOCAL und UNALIAS um Aliase zu löschen, bevor Ihre Batchdatei gestartet wird, und SETDOS um die Sonderzeichen auszuwählen, auf die Sie angewiesen sind, und sie am Ende wiederherzustellen, wie wir es im vorherigen Beispiel getan haben. Erinnere dich daran SETLOCAL und ENDLOCAL speichert und stellt nicht nur die Aliase, sondern auch die Umgebung, das aktuelle Laufwerk und Verzeichnis sowie verschiedene Sonderzeichen wieder her.

 

Wenn diese Methode für die Batchdatei, an der Sie arbeiten, nicht geeignet oder erforderlich ist, können Sie auch ein Sternchen verwenden * vor dem Namen eines Befehls. Das Sternchen bedeutet, dass der darauf folgende Befehl nicht als Alias ​​interpretiert werden sollte. Der folgende Befehl leitet beispielsweise eine Liste von Dateinamen in die Datei um DATEILISTE:

 

dir /b > Dateiliste

 

Wenn der Benutzer DIR jedoch mit einem Alias ​​neu definiert hat, führt dieser Befehl möglicherweise nicht zu dem gewünschten Ergebnis. Um dies zu umgehen, verwenden Sie einfach:

 

*dir /b > Dateiliste

 

Das Gleiche kann für jeden Befehl in Ihrer Batchdatei durchgeführt werden. Wenn Sie das Sternchen verwenden, wird die Aliasverarbeitung deaktiviert und der Rest des Befehls wird normal als interner Befehl, externer Befehl oder Batchdatei verarbeitet. Die Verwendung eines Sternchens vor einem Befehl funktioniert unabhängig davon, ob tatsächlich ein Alias ​​mit demselben Namen wie der Befehl definiert ist. Wenn kein Alias ​​mit diesem Namen vorhanden ist, wird das Sternchen ignoriert und der Befehl wird so verarbeitet, als ob das Sternchen nicht vorhanden wäre.