As TCC analysiert In der Befehlszeile wird nach dem gesucht Befehlstrennzeichen, bedingte Befehle (|| und &&), Leerzeichen (Leerzeichen, Tabulatoren und Kommas), Prozentzeichen % die angeben Variablen or Stapeldatei zu erweiternde Parameter und Umleitung und Verrohrung Zeichen >, < und |.

 

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

 

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

 

Wenn ein Ausdruck in doppelte Anführungszeichen gesetzt wird, wird keine Alias-Erweiterung durchgeführt. Umleitungssymbole in doppelten Anführungszeichen werden ignoriert. Allerdings variabler Ausbau is wird in Ausdrücken in doppelten Anführungszeichen ausgeführt. Die doppelten Anführungszeichen selbst werden als Teil des Parameters an den Befehl übergeben.

 

Angenommen, Sie haben eine Batchdatei CHKNAME.BTM das als ersten Parameter einen Namen erwartet (%1). Normalerweise besteht der Name aus einem einzelnen Wort. Wenn Sie einen aus zwei Wörtern bestehenden Namen mit einem Leerzeichen darin an diese Batchdatei übergeben müssen, können Sie den folgenden Befehl verwenden:

 

chkname „MEIN NAME“.

 

In der Batchdatei hat %1 den Wert MEIN NAME, einschließlich des Raumes. Die Backquotes verursachten TCC um die Zeichenfolge als einzelnen Parameter an die Batchdatei zu übergeben. Die Anführungszeichen halten die Zeichen zusammen und reduzieren die Anzahl der Parameter in der Zeile.

 

Nehmen wir für ein komplexeres Beispiel die Batchdatei an ZITATE.BAT enthält die folgenden Befehle:

 

@ Echo off

echo Arg1 = %1

echo Arg2 = %2

echo Arg3 = %3

 

und dass die Umgebungsvariable FORVAR mit diesem Befehl definiert wurde:

 

kompensieren FORVAR=for

 

Geben Sie nun den Befehl ein

 

Zitate „Jetzt ist die Zeit %forvar“, alles ist gut

 

Die Ausgabe von ZITATE.BAT wird so aussehen:

 

Arg1 = Jetzt ist die Zeit %forvar

Arg2 = alle

Arg3 = gut

 

Aber wenn Sie den Befehl eingeben:

 

Zitate „Jetzt ist die Zeit %forvar“ alles gut

 

Die Ausgabe von ZITATE.BAT wird so aussehen:

 

Arg1 = „Jetzt ist die Zeit dafür“

Arg2 = alle

Arg3 = gut

 

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:

 

Zitate Jetzt ist die Zeit %%forvar, alles ist gut

 

(Die doppelten Prozentzeichen werden in jedem Fall benötigt, da der Parameter zweimal geparst wird, einmal bei der Übergabe an die Batchdatei und noch einmal im ECHO-Befehl.)

 

Wenn ein Alias ​​in einer Batchdatei oder über die Befehlszeile definiert wird, kann sein Parameter in Anführungszeichen gesetzt werden, um die Erweiterung ersetzbarer Parameter, Variablen und mehrerer Befehle zu verhindern, bis der Alias ​​aufgerufen wird. Sehen ALIAS für weitere Einzelheiten.

 

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