Variablenfunktionen sind den internen Variablen sehr ähnlich, aber sie nehmen einen oder mehrere Parameter an (die Umgebungsvariablen oder sogar andere variable Funktionen sein können).

 

Variablenfunktionen sind sowohl an der Eingabeaufforderung als auch in Aliasen und Batchdateiennützlich, um die verfügbaren Systemressourcen zu prüfen, Zeichenketten und Zahlen zu manipulieren und mit Dateien und Dateinamen zu arbeiten.

 

Die Variablenfunktionen, die in den TCC integrierten variablen Funktionen werden in den folgenden Themen in alphabetischer Reihenfolge aufgeführt. Sie können auch von der Eingabeaufforderung aus Hilfe zu jeder Funktion erhalten, indem Sie den Befehl HELP @Funktionsname eingeben oder Strg-F1 drücken, wenn der Cursor auf dem Funktionsnamen steht. Weitere Informationen finden Sie unter dem BefehlHELP.

 

Hinweis: Mit dem Befehl FUNCTION können Sie benutzerdefinierte variable Funktionen erstellen, bearbeiten oder anzeigen, und mit UNFUNCTION können Sie sie löschen.

 

Eine Liste der Variablenfunktionen, geordnet nach allgemeinen Verwendungskategorien, finden Sie unter Variablenfunktionen nach Kategorie.

 

Syntax

 

Damit eine benutzerdefinierte oder eingebaute Variablenfunktion ausgewertet werden kann, muss ihrem Namen ein Prozentzeichen %vorangestellt werden (%@EVAL, %@LEN usw.). Alle variablen Funktionen müssen mit eckigen Klammern [ ] versehen sein ,die ihre Parameter einschließen, sofern vorhanden. Zwischen dem Funktionsnamen und der Klammer [ist kein Leerzeichen erlaubt .

 

Speichergröße / Festplattenplatz / Dateigrößeneinheiten und Berichtsformat

 

Einige variable Funktionen, wie z . B.@DISKFREE, akzeptieren einen optionalen Parameter Skalencode. Diese Funktionen geben die Größe eines Datenträgers oder einer Entität auf dem Datenträger als Vielfaches des angegebenen Skalierungsfaktors aus der folgenden Tabelle zurück. Kleinbuchstaben bezeichnen eine Potenz von 1,000, Großbuchstaben eine Potenz von 1,024.

 

 

Code

Skalierungsfaktor

Code

Skalenfaktor

Einheit Name

b

1

 

B

1

 

Byte

k

1,000

10**3

K

1,024

2**10

Kilobyte

m

1,000,000

10**6

M

1,048,576

2**20

Megabyte

g

1,000,000,000

10**9

G

1,073,741,824

2**30

Gigabyte

t

1,000,000,000,000

10**12

T

1,099,511,627,776

2**40

Terabyte

p

1,000,000,000,000,000

10**15

P

1,125,899,906,842,624

2**50

Petabyte

e

1,000,000,000,000,000,000

10**18

E

1,152,921,504,606,846,976

2**60

Exabyte

 

 

Sie können Kommas (oder das Tausendertrennzeichen) in den von einer Funktion zurückgegebenen Wert einfügen , indem Sie den Buchstaben c an den Skalencode anhängen. Um beispielsweise einem  Ergebnis b (Anzahl der Bytes)  Kommas hinzuzufügen , geben Siebc als Parameter ein , d.h.:

 

echo %@DISKFREE[C,bc]

 

Hinweise

 

1)Festplattenhersteller verwenden die aus dem metrischen System übernommenen Präfixe (kilo, mega, giga, tera) in ihrer ursprünglichen Bedeutung (Potenzen von 1.000), während Speicherhersteller und Microsoft die etwas größeren Potenzen von 1.024 (2**10) verwenden.

 

2)Der Skalencode ist einer der wenigen Fälle, in denen TCCzwischen Groß- und Kleinschreibung unterscheidet.

 

Format der Datumsparameter

 

Siehe das  Thema Datumsformate.

 

Dateinamen-Parameter

 

Dateinamen, die als variable Funktionsparameter übergeben werden, müssen in doppelte Anführungszeichen gesetzt werden, wenn sie Leerzeichen oder Sonderzeichen enthalten. Mehrere Funktionen geben auch Dateinamen oder Teile von Dateinamen zurück. Auf LFN-Laufwerken können die von diesen Funktionen zurückgegebenen Zeichenfolgen Leerzeichen oder andere Sonderzeichen enthalten. Um Probleme zu vermeiden, die durch diese Zeichen verursacht werden könnten, sollten Sie den zurückgegebenen Namen in Anführungszeichen setzen, bevor Sie ihn an andere Befehle weitergeben. Zum Beispiel (jede dieser Methoden würde funktionieren):

 

set fname="%@findfirst[pro*]"

echo First PRO file contains:

type %fname

.....

set fname=%@findfirst[pro*]

echo First PRO file contains:

type "%fname"

.....

 

Wenn Sie die Anführungszeichen im SET- oder TYPE-Befehl in diesem Beispiel nicht verwenden, interpretiert TYPE Leer- oder Sonderzeichen im Namen nicht richtig.

 

Parameter für Laufwerksbuchstaben

 

In variablen Funktionen, die einen Laufwerksbuchstaben als Parameter verwenden, wie @DISKFREE oder @READY, muss der Laufwerksbuchstabe  von einem Doppelpunkt gefolgt werden. Die Funktion funktioniert nicht richtig, wenn Sie den Laufwerksbuchstaben ohne den Doppelpunkt verwenden.

 

Funktionen für den Zugriff auf File Handles

 

Die Funktionen @FILEREAD, @FILEWRITE, @FILEWRITEB, @FILESEEK, @FILESEEKL und @FILECLOSE ermöglichen den Zugriff auf Dateien anhand ihres Dateihandles. Diese Funktionen dürfen nur mit Dateihandles verwendet werden, die von @FILEOPEN zurückgegeben werden, sofern bei den einzelnen Funktionen nicht anders angegeben. Wenn Sie sie mit einem anderen Dateihandle verwenden, können Sie Dateien beschädigen.

 

Datei-Attribute

 

Mehrere Funktionen akzeptieren eine Dateiattribut-Zeichenkette, um zu bestimmen, welche Dateien verarbeitet werden sollen. Die Regeln für den Aufbau der Attributzeichenkette sind dieselben wie die für die Attributwechsel in Befehlen.

 

Beispiele

 

Sie können die variablen Funktionen je nach Ihren Bedürfnissen auf unterschiedlichste Weise verwenden. Hier sind ein paar Beispiele, um Ihnen eine Vorstellung davon zu geben, was möglich ist:

 

Mit dem folgenden Befehl wird die Eingabeaufforderung so eingestellt, dass die Menge des freien Speichers angezeigt wird (siehe PROMPT für Einzelheiten zur Einbeziehung variabler Funktionen in Ihre Eingabeaufforderung):

 

prompt (%%@dosmem[K]K) $p$g

 

Einrichten eines einfachen Befehlszeilenrechners. Der Taschenrechner wird mit einem Befehl wie CALC 3 * (4 + 5) verwendet:

 

alias calc `echo The answer is: %@eval[%$]`