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.

In preparation
La página vinculada está actualmente en preparación. Por favor, espere un momento.

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.

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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>call sample.cmd test
El argumento recibido es test.
El segundo argumento es .
C:\users\user>

Solo se ha pasado un argumento, por lo que %2 no contiene nada.

Si se pasan varios argumentos, se mostrará la siguiente salida:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>call sample.cmd test1 test2
El argumento recibido es test1.
El segundo argumento es test2.
C:\users\user>

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.

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:

×
Ícono de la consola de comandos
sample
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>
El argumento recibido es test.
El segundo argumento es .
Presione una tecla para continuar …

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.

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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>call sample.cmd test1 test2 test3
El número de argumentos es 3.
C:\users\user>

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:

sample.cmd
@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:

×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2024 Ribbit App Development All rights reserved.
 
C:\users\user>call sample.cmd test1 test2 test3
El argumento recibido es test1.
El argumento recibido es test2.
El argumento recibido es test3.
C:\users\user>

Ejercicio

Ejercicio 1

Seleccione la forma adecuada de pasar argumentos al archivo por lotes desde la línea de comandos.

回答がサーバーに送信されることはありません
Ejercicio 2

¿Cuál es la forma correcta de pasar varios números como argumentos?

回答がサーバーに送信されることはありません
#Símbolo del sistema #Archivos por lotes #Argumentos #Línea de comandos #Comandos