Compartir a través de


llamar

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.

Nota:

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

Sintaxis

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

Parámetros

Parámetro Descripción
[<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.

Parámetros de Batch

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

El uso del %* valor de un script por lotes hace referencia a todos los argumentos (por ejemplo, %1, %2, %3...).

Puede usar las siguientes sintaxis opcionales como sustituciones para parámetros por lotes (%n):

Parámetro batch Descripción
%~1 Expande %1 y quita las comillas circundantes.
%~f1 Expande %1 a una ruta de acceso completa.
%~d1 Expande %1 solo a una letra de unidad.
%~p1 Expande %1 solo a una ruta de acceso.
%~n1 Expande %1 solo a un nombre de archivo.
%~x1 Expande %1 solo a una extensión de nombre de archivo.
%~s1 Expande %1 a una ruta de acceso completa que solo contiene 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 Descripción
%~dp1 Expande %1 solo a una letra de unidad y ruta de acceso.
%~nx1 Expande %1 solo a un nombre de archivo y una extensión.
%~dp$RUTA:1 Busca en los directorios enumerados en la variable de entorno PATH para %1y, a continuación, se expande a la letra de unidad y la ruta de acceso 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 %*.

Observaciones

  • Uso de parámetros por lotes:

    Los parámetros de Batch 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 de lote %0 a través de %9y variables (por ejemplo, %baud%).

  • Con el <label> parámetro :

    Mediante la llamada con el <label> parámetro , se crea un nuevo contexto de archivo por lotes y se 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 use canalizaciones (|) ni símbolos de redireccionamiento (< o >) con 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 comandos están habilitadas, la llamada acepta <label> como destino de la llamada. La sintaxis correcta es call :<label> <arguments>.

Ejemplos

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