Pasar argumentos a archivos por lotes
Cuando el procesamiento con archivos por lotes se vuelve lo suficientemente grande, puede haber casos en los que se repita el mismo procesamiento en varios lugares.
En tales casos, para compartir el procesamiento, la utilización de funciones o la llamada a otros archivos por lotes puede mejorar la visibilidad del archivo por lotes y aumentar su mantenibilidad.
Para ello, es necesario pasar argumentos al archivo por lotes.
En este artículo, se explicará cómo pasar argumentos al archivo por lotes y se presentarán ejemplos de código concretos.
Cómo pasar argumentos al archivo por lotes
Pasar argumentos al archivo por lotes es muy simple, solo necesita escribir los argumentos después de ejecutar el comando call
o start
.
El siguiente código es un ejemplo de uso del comando call
.
call sample.cmd test
En el caso del comando start
, es necesario especificar un título, por lo que se debe escribir el título, la ruta del archivo a ejecutar y los argumentos en ese orden.
start "sample" sample.cmd test
Para obtener más información sobre los comandos call
y start
, consulte el siguiente artículo.
Utilizando los argumentos recibidos
Una vez que se han pasado los argumentos al archivo por lotes, el siguiente paso es aprender a utilizarlos.
Cuando se pasan argumentos a un archivo por lotes, se almacenan en variables en orden, como %1
, %2
, %3
, etc.
Ejemplo con el comando call
A continuación, se muestra un ejemplo de un archivo por lotes llamado sample.cmd
.
@echo off
setlocal
echo El argumento recibido es %1.
echo El segundo argumento es %2.
endlocal
Al ejecutar este archivo por lotes con argumentos, se mostrará la siguiente salida:
Solo se ha pasado un argumento, por lo que %2
no contiene nada.
Si se pasan varios argumentos, se mostrará la siguiente salida:
Ejemplo con el comando start
Como se mencionó anteriormente, en el caso del comando start
, es necesario especificar un título, por lo que se debe escribir el título, la ruta del archivo a ejecutar y los argumentos en ese orden.
A continuación, se muestra un ejemplo de un archivo por lotes llamado sample.cmd
.
@echo off
setlocal
echo El argumento recibido es %1.
echo El segundo argumento es %2.
pause
endlocal
Al ejecutar este archivo por lotes con argumentos, se abrirá una nueva ventana de la línea de comandos y se mostrará la siguiente salida:
Verificar la cantidad de argumentos
Una vez que se han pasado los argumentos al archivo por lotes, el siguiente paso es aprender a verificar la cantidad de argumentos recibidos.
Cuando se pasan argumentos a un archivo por lotes, se almacenan en la variable %*
, que contiene todos los argumentos.
Por lo tanto, se puede verificar la cantidad de argumentos dividiendo el valor de %*
con el comando for
.
A continuación, se muestra un ejemplo de un archivo por lotes llamado sample.cmd
.
@echo off
setlocal
set count=0
for %%i in (%*) do (
set /a count+=1
)
echo El número de argumentos es %count%.
endlocal
Al ejecutar este archivo por lotes con argumentos, se mostrará la siguiente salida:
Procesar cada argumento recibido
Aplicando el método para contar la cantidad de argumentos mencionado anteriormente, se puede procesar cada argumento recibido.
A modo de ejemplo, se creará un archivo por lotes llamado sample.cmd
con el siguiente contenido:
@echo off
setlocal
for %%i in (%*) do (
echo El argumento recibido es %%i.
)
endlocal
Al ejecutar este archivo por lotes con argumentos, se mostrará la siguiente salida: