As TCC analiza la línea de comando, busca el separador de comando, comandos condicionales (|| y &&), espacios en blanco (espacios, tabulaciones y comas), signos de porcentaje % que indican las variables or archivo por lotes parámetros a ampliar, y redirección y tubería personajes >, < y |.

 

Normalmente, estos caracteres especiales no se pueden pasar a un comando como parte de un parámetro. Sin embargo, puede incluir cualquiera de los caracteres especiales en un parámetro encerrando todo el parámetro entre comillas simples [`] o comillas dobles ["]. Aunque tanto las comillas invertidas como las comillas dobles le permitirán crear parámetros que incluyan caracteres especiales, no funcionan de la misma manera.

 

No se realiza ninguna expansión de alias o variable en un parámetro entre comillas invertidas. Se ignoran los símbolos de redirección dentro de las comillas posteriores. Las comillas invertidas se eliminan de la línea de comando antes de ejecutar el comando.

 

No se realiza ninguna expansión de alias cuando una expresión está entre comillas dobles. Se ignoran los símbolos de redirección entre comillas dobles. Sin embargo, la expansión variable is realizado en expresiones entre comillas dobles. Las comillas dobles se pasarán al comando como parte del parámetro.

 

Por ejemplo, supongamos que tiene un archivo por lotes CHKNAME.BTM que espera un nombre como primer parámetro (%1). Normalmente el nombre es una sola palabra. Si necesita pasar un nombre de dos palabras con un espacio a este archivo por lotes, puede usar el comando:

 

chkname `MI NOMBRE`

 

Dentro del archivo por lotes, %1 tendrá el valor MI NOMBRE, incluido el espacio. Las comillas posteriores provocaron TCC para pasar la cadena al archivo por lotes como un único parámetro. Las comillas mantienen los caracteres juntos y reducen la cantidad de parámetros en la línea.

 

Para un ejemplo más complejo, supongamos que el archivo por lotes COTIZACIONES.BAT contiene los siguientes comandos:

 

@ Echo off

eco Arg1 = %1

eco Arg2 = %2

eco Arg3 = %3

 

y que la variable de entorno FORVAR ha sido definida con este comando:

 

set FORVAR=para

 

Ahora, si ingresas el comando

 

citas `Ahora es el momento %forvar` todo bien

 

La salida de COTIZACIONES.BAT se verá así:

 

Arg1 = Ahora es el momento %forvar

Arg2 = todos

Arg3 = bueno

 

Pero si ingresas el comando:

 

citas "Ahora es el momento %forvar" todo bien

 

La salida de COTIZACIONES.BAT se verá así:

 

Arg1 = "Ahora es el momento de"

Arg2 = todos

Arg3 = bueno

 

Observe que en ambos casos, las comillas mantienen los caracteres juntos y reducen la cantidad de parámetros en la línea.

 

El siguiente ejemplo tiene 7 parámetros de línea de comando, mientras que los ejemplos anteriores solo tienen 3:

 

citas Ahora es el momento %%forvar todo bien

 

(Los signos de porcentaje doble son necesarios en cada caso porque el parámetro se analiza dos veces, una vez cuando se pasa al archivo por lotes y otra vez en el comando ECHO).

 

Cuando se define un alias en un archivo por lotes o desde la línea de comando, su parámetro se puede incluir entre comillas para evitar la expansión de parámetros reemplazables, variables y múltiples comandos hasta que se invoque el alias. Ver ALIAS para más detalles.

 

Puede desactivar y volver a activar las comillas invertidas y las comillas dobles con el SETDOS Comando /X.