Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 escall :<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