Zweck:Erstellen, Ändern oder Anzeigen von benutzerdefinierten Variablenfunktionen

 

Format:Anzeigemodus:

FUNCTION [/GL /LL /P] [wildname]

 

Direkter Definitionsmodus:

FUNCTION [/= /GL /LL] name[=]definition

 

Definitionsdateimodus:

FUNCTION [/= /G /GL /L /LL /O /Z] /R [file...]

         

fileEine oder mehrere Eingabedateien, aus denen Funktionsdefinitionen gelesen werden.
wildnameName der Funktion, deren Definition angezeigt werden soll (kann * und ? wildcardsenthalten  )
nameDer Name der Funktion, die Sie definieren möchten.
definitionDer Wert oder die Definition dessen, was die Funktion zurückgeben soll.

 

/G(lobal) /P(ause)
/GL (globale Liste) /R(ead file)
/L(ocal) /Z(Liste überschreiben)

/LL (lokale Liste)

 

Siehe auch: UNFUNCTION und ESET.

 

Syntax der Dateivervollständigung:

 

Die Standard-Syntax für die Vervollständigung von Dateinamen ist: [/r] * [1] Funktionen [2*] *

 

Verwendung:

 

Onestep        Übersicht

Onestep        Anzeigen von Funktionen

Onestep        Definieren von Funktionen

Onestep        Löschen von Funktionen

Onestep        Lokale und globale Funktionen

Onestep        Speichern und Zurückladen Ihrer Funktionen

Onestep        Warnungen

 

Überblick

 

MitFUNCTION können Siebenutzerdefinierte variable Funktionen erstellen oder anzeigen, die überall dort verwendet werden können, wo auch Variablenfunktionen verwendet werden können. Benutzerdefinierte Funktionen sind leistungsfähige Alternativen zu Unterprogrammen.

 

Anzeigen von Funktionen

 

Wenn Sie den Befehl FUNCTION ohne Parameter aufrufen, wird die aktuelle Funktionsliste angezeigt (die lokale Funktionsliste, wenn Sie lokale Funktionen in TCMD.INI oder in der Startbefehlszeile von TCC festgelegt haben ; andernfalls die globale Funktionsliste):

 

function

 

Wenn Sie einen Platzhalter(* oder ?) ohne Gleichheitszeichen und ohne Definition angeben, zeigt FUNCTION die aktuellen Werte aller Funktionen an, die den Platzhalter enthalten, z.B:

 

function *dx*

 

zeigt alle Funktionen an, die dx in ihrem Namen enthalten.

 

Sie können die Option/Pverwenden , um das Blättern in der Anzeige zu steuern, wenn Sie Funktionen anzeigen.

 

Definieren von Funktionen

 

Wenn Sie das Gleichheitszeichen und die Definitioneinschließen , erstellt oder aktualisiert FUNCTION die Funktion, auf die sich der Name bezieht.  Alle früheren Definitionen, die mit dem Namen verbunden sind , werden verworfen. Anstelle des  =-Zeichens können Sie ein oder mehrere Leer- oder Tabulatorzeichen verwenden, um den Namen und die Definition zu trennen .

 

Sobald eine Funktion definiert ist, kann die Definition mit ESET /Fbearbeitet werden .

 

Eine Funktion kann optional Verweise auf Parameter verwenden, die von %0 bis %511nummeriert sind  und beim Aufruf der Funktion durch den entsprechenden Parameterwert ersetzt werden. %0 bezieht sich auf den Funktionsnamen, %1 auf den ersten Parameter, usw. Zum Beispiel gibt die Funktion

 

function leftmost=`%@left[1,%1]`

 

das am weitesten links stehende Zeichen in ihrem Parameter zurück, z. B.%@leftmost[xyz] gibtx zurück .

 

Der Parameter %n$ hat eine besondere Bedeutung. TCC wird so interpretiert, dass er "alle Argumente von Parameter n bis zum Ende " bedeutet . Wenn n nicht angegeben wird, hat er den Standardwert 1, so dass %$ "alle an die Funktion übergebenen Argumente "bedeutet.

 

Der Parameter %-n$ bedeutet "die Argumente von Parameter 1 bis n - 1".

 

Die spezielle Variablenreferenz %# expandiert zu der Anzahl deran die Funktion übergebenen Parameter.

 

Eine Funktionsdefinition muss überhaupt keine Parameter referenzieren. Ein Beispiel:

 

function tomorrow=`%@makedate[%@inc[%@date[%_date]]]`

 

könnte einfach als %@tomorrow[]aufgerufen werden.

 

Um den Funktionsnamenzu verwenden , rufen Sie die Funktion als %@name[Parameter] auf , wobei Sie genügend Parameter angeben müssen, um dem Parameter mit der höchsten Nummer , auf den in der Funktionsdefinition verwiesen wird, einen Wert zuzuweisen. Die Funktion kann mehr Parameter haben, die dann ignoriert werden.

 

Das Thema Farben, Farbnamen und Codes zeigt ein einfaches Beispiel für die Verwendung einer Funktion in einer Batchdatei.

 

Löschen von Funktionen

 

Dienormale Methode ist die Verwendung des  Befehls UNFUNCTION. Es ist jedoch auch möglich, eine Funktion zu löschen, indem man sie ohne Definition umdefiniert , z.B. mit dem Befehl

 

function fs=

 

löscht die Funktion fs.

 

Lokale und globale Funktionen

 

Funktionen können in lokalen und/oder globalen Listen gespeichert werden.

 

Bei einer lokalen Funktionsliste wirken sich alle Änderungen an den Funktionen nur auf die aktuelle Kopie von TCC. Sie sind in anderen Shells oder anderen Sitzungen nicht sichtbar.

 

Bei einer globalen Funktionsliste haben alle Kopien von TCC dieselbe Funktionsliste, und alle Änderungen an den Funktionen in einer Kopie wirken sich auf alle anderen Kopien aus. Dies ist die Voreinstellung in TCC.

 

Sie können den Typ der zu verwendenden Funktionsliste mit den Optionen /GL und /LL in den  Konfigurationsoptionen FUNCTION, Lokale Funktionen und Globale Funktionen, mit den  Optionen /L und /LF des  START-Befehls und mit den Startoptionen /L und /LF festlegen .

 

Wenn Sie /GL oder /LL nicht angeben, TCC sucht zunächst nach Funktionen in der lokalen Liste. Wenn es keine lokale Liste gibt oder die Funktion nicht gefunden wird, TCC wird die globale Liste durchsucht (falls vorhanden).

 

Es gibt keine feste Regel für die Entscheidung, ob eine lokale oder eine globale Funktionsliste verwendet werden soll. Je nach Ihrer Arbeitsweise kann es für Sie am praktischsten sein, einen Typ oder eine Mischung von Typen in verschiedenen Sitzungen oder Shells zu verwenden. Wir empfehlen Ihnen, mit der Standardmethode zu beginnen und sie dann zu ändern, wenn Sie feststellen, dass die Standardmethode nicht geeignet ist.

 

Immer wenn Sie eine zweite Kopie von TCC starten, die eine lokale Funktionsliste verwendet, erbt sie eine Kopie der Funktionen aus der vorherigen Shell. Alle Änderungen an den Funktionen, die in der zweiten Shell vorgenommen werden, wirken sich jedoch nur auf diese Shell aus. Wenn Sie möchten, dass die in der zweiten Shell vorgenommenen Änderungen auch die vorherige Shell betreffen, verwenden Sie in beiden Shells eine globale Funktionsliste.

 

Speichern und erneutes Laden Ihrer Funktionen

 

Auf diese Weisekönnen Sie Ihre Funktionen in einer Datei ( z. B.FUNCTIONS.LST) speichern :

 

function > function.lst

 

Sie können dann alle Funktionsdefinitionen in der Datei neu laden, wenn Sie das nächste Mal mit dem Befehl starten:

 

function /r function.lst

 

Das ist viel schneller, als jede Funktion einzeln in einer Batch-Datei zu definieren. Wenn Sie Ihre Funktionsdefinitionen in einer separaten Datei aufbewahren, die Sie beim TCC starten, können Sie sie mit einem Texteditor bearbeiten, die bearbeitete Datei mit FUNCTION /R neu laden und wissen, daß beim nächsten Start von FUNCTION /R dieselbe Funktionsliste geladen wird. TCC.

 

Wenn Sie Funktionen in einer Datei definieren, die mit dem Befehl FUNCTION /R verarbeitet wird, brauchen Sie die Definition nicht in Anführungszeichen zu setzen, auch wenn dies normalerweise erforderlich wäre, wenn Sie dieselbe Funktion in der Befehlszeile oder in einer Batch-Datei definieren.

 

Warnungen

 

Wenn Sie eine Funktion in der Befehlszeile definieren (d. h. ohne Verwendung der  Option /R ), werden Variablen und Funktionen, die nicht durch Hochkommata oder doppelte %-Zeichen geschützt sind, sofort ausgewertet, und das Ergebnis wird Teil der Funktionsdefinition.

 

Syntaxfehler in einer Funktionsdefinition werden erst erkannt, wenn sie verwendet wird.

 

Optionen:

 

/=Zeigt den FUNCTION-Befehlsdialog an, um Ihnen bei der Einstellung der Befehlszeilenoptionen zu helfen. Die Option /= kann an einer beliebigen Stelle in der Zeile stehen; zusätzliche Optionen setzen die entsprechenden Felder im Befehlsdialog.

 

/GWechselt von einer lokalen zu einer globalen Funktionsliste. Wenn Sie bereits eine globale Funktionsliste haben (zum Beispiel in einer anderen TCC Instanz oder in SHRALIAS), wird FUNCTION die Umwandlung nicht vornehmen.

 

/GLLesen von und Schreiben in die globale Funktionsliste. Wenn Sie sowohl lokale als auch globale Funktionslisten definiert haben und /GL nicht angeben, wird FUNCTION standardmäßig die lokale Liste verwenden.

 

/LWechsel von einer globalen zu einer lokalen Funktionsliste.

 

/LLLesen von und Schreiben in die lokale Funktionsliste.

 

/OVorhandene Werte nicht überschreiben (nur in Verbindung mit /R gültig).

 

/PNach jeder Bildschirmseite auf das Drücken einer Taste warten, bevor die Anzeige fortgesetzt wird.

 

/RDiese Option lädt eine Liste von Funktionen aus einer Datei. Wenn kein Dateiname angegeben ist und die Eingabe umgeleitet wird, liest /R aus stdin. Das Format der Datei ist das gleiche wie das der FUNCTION-Anzeige:

 

name=definition

 

wobei name der Name der Funktion ist und definition angibt, wie der Wert zu ermitteln ist. Sie können das Gleichheitszeichen = oder Leerzeichen  verwenden , um Name und Definition zu trennen . Hintere Anführungszeichen sind nicht erforderlich.

 

Sie können der Datei Kommentare hinzufügen, indem Sie jede Kommentarzeile mit einem Doppelpunkt :beginnen .

 

Sie können mehrere Dateien mit einem FUNCTION /R-Befehl laden, indem Sie die Namen durch Leerzeichen getrennt in die Befehlszeile stellen:

 

function /r func1.lst func2.lst

 

FUNCTION /R-Definitionen können sich über mehrere Zeilen in der Datei erstrecken, wenn jede Zeile, außer der letzten, mit einem Escape-Zeichen abgeschlossen wird .

 

Wenn kein Dateinamensparameter vorhanden ist und die Eingabe umgeleitet wird, liest FUNCTION /R von stdin.

 

/ZÜberschreibt die bestehende Funktionsliste mit dem Inhalt der angegebenen Datei (muss mit /R verwendet werden). FUNCTION /R /Z ist 20x schneller als FUNCTION /R, weil es nicht nach vorhandenen Funktionen suchen und neue Funktionen an das Ende der Liste anhängen muss.