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.
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 escall :<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