Compartir a través de


call

Llama a un programa por lotes desde otro sin detener el programa por lotes primario. El comando call acepta etiquetas como destino de la llamada.

Note

La llamada no tiene ningún efecto en el símbolo del sistema cuando se usa fuera de un script o archivo por lotes.

Syntax

call [drive:][path]<filename> [<batchparameters>]] 
call [:<label> [<arguments>]]

Parameters

Parameter Description
[<drive>:][<path>]<filename> Especifica la ubicación y el nombre del programa por lotes al que desea llamar. El <filename> parámetro es necesario y debe tener una extensión .bat o .cmd.
<batchparameters> Especifica cualquier información de línea de comandos necesaria para el programa por lotes.
:<label> Especifica la etiqueta a la que desea que un control de programa por lotes salte.
<arguments> Especifica la información de la línea de comandos que se va a pasar a la nueva instancia del programa por lotes, empezando por :<label>.
/? Muestra la ayuda en el símbolo del sistema.

Batch parameters

Las referencias de argumentos de script por lotes (%0, %1, ...) se enumeran en las tablas siguientes.

El uso del %* valor en un script por lotes se refiere a todos los argumentos (por ejemplo, %1, %2, %3...).

Puede utilizar las siguientes sintaxis opcionales como sustituciones de los parámetros de lote (%n):

Batch Parameter Description
%~1 Expande %1 y quita las comillas circundantes.
%~f1 Expande %1 a una ruta de acceso completa.
%~d1 Expande %1 a una letra de unidad solamente.
%~p1 Expande %1 a un trazado solamente.
%~n1 Expande %1 a un nombre de archivo solamente.
%~x1 Expande %1 a una extensión de nombre de archivo solamente.
%~s1 Expande %1 a una ruta de acceso completa que contiene solo nombres cortos.
%~a1 Expande %1 a los atributos de archivo.
%~t1 Expande %1 a la fecha y hora del archivo.
%~z1 Expande %1 al tamaño del archivo.
%~$PATH:1 Busca en los directorios enumerados en la variable de entorno PATH y expande %1 al nombre completo del primer directorio encontrado. Si el nombre de la variable de entorno no está definido o la búsqueda no encuentra el archivo, este modificador se expande a la cadena vacía.

En la tabla siguiente se muestra cómo puede combinar modificadores con los parámetros por lotes para los resultados compuestos:

Parámetro batch con modificador Description
%~dp1 Expande %1 a una letra de unidad y una ruta de acceso solamente.
%~nx1 Expande %1 a un nombre y extensión de archivo solamente.
%~dp$PATH:1 Busca %1en los directorios enumerados en la variable de entorno PATH y, a continuación, se expande a la letra de unidad y la ruta del primer directorio encontrado.
%~ftza1 Expande %1 para mostrar una salida similar al comando dir .

En los ejemplos anteriores, %1 y PATH se pueden reemplazar por otros valores válidos. La %~ sintaxis finaliza mediante un número de argumento válido. Los %~ modificadores no se pueden usar con %*.

Remarks

  • Uso de parámetros por lotes:

    Los parámetros por lotes pueden contener cualquier información que pueda pasar a un programa por lotes, incluidas las opciones de línea de comandos, los nombres de archivo, los parámetros por lotes %0 a %9y variables (por ejemplo, %baud%).

  • Con el <label> parámetro :

    Al usar call con el <label> parámetro, crea un nuevo contexto de archivo por lotes y pasa el control a la instrucción después de la etiqueta especificada. La primera vez que se encuentra el final del archivo por lotes (es decir, después de saltar a la etiqueta), el control vuelve a la instrucción después de la instrucción call . La segunda vez que se encuentra el final del archivo por lotes, se cierra el script por lotes.

  • Uso de canalizaciones y símbolos de redireccionamiento:

    No utilice canalizaciones (|) ni símbolos de redirección (< o >) con la llamada.

  • Realización de una llamada recursiva

    Puede crear un programa por lotes que se llame a sí mismo. Sin embargo, debe proporcionar una condición de salida. De lo contrario, los programas por lotes primarios y secundarios pueden recorrer en bucle sin fin.

  • Trabajar con extensiones de comando

    Si las extensiones de comando están habilitadas, call accept <label> como destino de la llamada. La sintaxis correcta es call :<label> <arguments>.

Examples

Para ejecutar el programa checknew.bat desde otro programa por lotes, escriba el siguiente comando en el programa por lotes primario:

call checknew

Si el programa por lotes primario acepta dos parámetros de lote y desea que pase esos parámetros a checknew.bat, escriba el siguiente comando en el programa por lotes primario:

call checknew %1 %2