Während TCC die Befehlszeile analysiert, sucht es nach dem Befehlstrennzeichen, bedingten Befehlen (|| und &&), Leerzeichen (Leerzeichen, Tabulatoren und Kommas), Prozentzeichen %, die Variablen oder  Batch-Dateiparameter  kennzeichnen , die erweitert werden sollen, sowie nach Umleitungs- und Piping-Zeichen >, < und |.

 

Normalerweise können diese Sonderzeichen nicht als Teil eines Parameters an einen Befehl übergeben werden. Sie können jedoch jedes der Sonderzeichen in einen Parameter aufnehmen, indem Sie den gesamten Parameter in einfache Hochkommata [`] oder doppelte Anführungszeichen ["] setzen. Obwohl Sie mit Hochkommas und doppelten Anführungszeichen Parameter erstellen können, die Sonderzeichen enthalten, funktionieren sie nicht auf dieselbe Weise.

 

Für einen in Hochkommata eingeschlossenen Parameter wird keine Alias- oder Variablenexpansion durchgeführt. Umleitungssymbole innerhalb der Anführungszeichen werden ignoriert. Die Anführungszeichen werden aus der Befehlszeile entfernt, bevor der Befehl ausgeführt wird.

 

Es wird keine Alias-Expansion durchgeführt, wenn ein Ausdruck in doppelten Anführungszeichen eingeschlossen ist. Umleitungssymbole innerhalb von doppelten Anführungszeichen werden ignoriert.  In Ausdrücken innerhalb von Anführungszeichenwirdjedoch eine Variablenexpansion  durchgeführt. Die Anführungszeichen selbst werden als Teil des Parameters an den Befehl übergeben.

 

Nehmen wir an, Sie haben eine Batch-Datei CHKNAME.BTM, die einen Namen als ersten Parameter erwartet (%1). Normalerweise besteht der Name aus einem einzigen Wort. Wenn Sie dieser Stapeldatei einen Namen mit zwei Wörtern und einem Leerzeichen übergeben müssen, können Sie den folgenden Befehl verwenden:

 

chkname `Mein Name`

 

In der Stapeldatei hat %1 dann den Wert MEIN NAME, einschließlich des Leerzeichens. Die Anführungszeichen bewirken TCC die Zeichenkette als einen einzigen Parameter an die Stapeldatei weitergibt. Die Anführungszeichen halten die Zeichen zusammen und reduzieren die Anzahl der Parameter in der Zeile.

 

Ein komplexeres Beispiel: Angenommen, die Batch-Datei QUOTES.BAT enthält folgende Befehle

 

@echo off

echo Arg1 = %1

echo Arg2 = %2

echo Arg3 = %3

 

und dass die Umgebungsvariable FORVAR mit diesem Befehl definiert worden ist:

 

set FORVAR=for

 

Wenn Sie nun den Befehl

 

quotes `Now is the time %forvar` all good

 

Die Ausgabe von QUOTES.BAT sieht dann so aus:

 

Arg1 = Now is the time %forvar

Arg2 = all

Arg3 = good

 

Wenn Sie aber den Befehl eingeben:

 

quotes "Now is the time %forvar" all good

 

Die Ausgabe von QUOTES.BAT sieht dann so aus:

 

Arg1 = "Now is the time for"

Arg2 = all

Arg3 = good

 

Beachten Sie, dass in beiden Fällen die Anführungszeichen die Zeichen zusammenhalten und die Anzahl der Parameter in der Zeile reduzieren.

 

Das folgende Beispiel hat 7 Befehlszeilenparameter, während die obigen Beispiele nur 3 haben:

 

quotes Now is the time %%forvar all good

 

(Die doppelten Prozentzeichen sind in jedem Fall erforderlich, weil der Parameter zweimal analysiert wird, einmal bei der Übergabe an die Batch-Datei und ein zweites Mal im ECHO-Befehl).

 

Wenn ein Alias in einer Stapeldatei oder über die Befehlszeile definiert wird, kann sein Parameter in Anführungszeichen eingeschlossen werden, um die Expansion von ersetzbaren Parametern, Variablen und mehreren Befehlen zu verhindern, bis der Alias aufgerufen wird. Siehe ALIAS für weitere Informationen.

 

Sie können Anführungszeichen und doppelte Anführungszeichen mit dem  Befehl SETDOS /X deaktivieren und wieder aktivieren .