Cita de: IISiroII en 4 Marzo 2016, 22:35 PM
a partir del 4 parametro, tengo que tener la posibilidad de poner todas las extensiones que quiera, es decir, no solo hasta el sexto
Eso no es posible realizarlo de una manera simple ni elegante en un lenguaje tan limitado como Batch, puesto que para empezar, está limitado al uso de 10 variables de argumento de forma simultanea (%0 a %9).
El límite real es de 255 argumentos, pero solo nos permite usar 10 variables para ello, sin embargo, como te comenté en el mensaje anterior, puedes utilizar el comando Shift para deslizar la posición de los argumentos, es decir, pasar el valor de la variable de argumento "invisible" %10 a la variable de argumento %9 y etc, esa es la solución, pero aun asi deberás realizar algo como este tedioso código de aqui abajo, puesto que el comando Shift no afecta al orden de la variable que agrupa todos los argumentos (%*)
Código (dos) [Seleccionar]
@Echo OFF
:: ...
If "%~4" NEQ "" (
Set "fileExts="*%~4""
Shift
GoTo :JoinFileExtensions
)
:JoinFileExtensions
If "%~4" EQU "" (GoTo :FindFiles)
Set "fileExts=%fileExts%, "*%~4""
Shift
GoTo :JoinFileExtensions
:FindFiles
Echo Archivos a buscar: %fileExts%
REM For /R ... In (%fileExts%) Do (...)
:: ...
Pause&Exit /B 0
Saludos!