Puede encontrar útil la instrucción SHIFT en algunos de sus archivos por lotes.

Lo que hace SHIFT es cambiar los parámetros de la línea de comandos de derecha a izquierda.

(Los parámetros de la línea de comandos son aquellos parámetros incluidos en la línea de comandos que se usa para ejecutar su archivo por lotes). Esto le brinda una forma, por ejemplo, de que su archivo por lotes acepte un número variable de parámetros.

Internamente, el intérprete de comandos numera los elementos de la línea de comandos. Por ejemplo, considere el siguiente comando que ejecuta un archivo por lotes llamado DOIT.BAT:

doit first second third fourth fifth

En este caso, el comando es «doit», seguido de cinco parámetros: primero, segundo, tercero, cuarto y quinto. El intérprete de comandos, internamente, numera estos parámetros del% 1 al% 5. En realidad, sin embargo, hay un «parámetro» numerado% 0: el comando (el nombre del archivo por lotes) en sí.

Para ver cómo funciona esto, cree su propio archivo DOIT.BAT que contenga los siguientes comandos:

@ECHO OFF CLS :TOP IF [%0]==[] GOTO :EOF ECHO %0 %1 %2 %3 %4 %5 SHIFT GOTO TOP

El archivo por lotes primero desactiva el eco de los comandos en la pantalla y luego borra la pantalla. Luego configura un ciclo de comandos (desde: ARRIBA hasta el final del archivo) que hace eco a la pantalla, los elementos de la línea de comando y luego desplaza (mediante el uso del comando SHIFT) todos los elementos hacia la izquierda. Después del cambio, el elemento% 0 se descarta, el elemento% 1 se convierte en% 0, el elemento% 2 se convierte en% 1, y así sucesivamente. Cuando ejecute el archivo por lotes, debería ver el siguiente resultado:

doit first second third fourth fifth first second third fourth fifth second third fourth fifth third fourth fifth fourth fifth fifth

Cuando usa SHIFT en sus propios archivos por lotes, puede invocar el archivo con un número variable de parámetros y luego desplazarse por esos parámetros para realizar su procesamiento.

Este consejo (13198) se aplica a Windows 7, 8 y 10.