Foros del Web » Soporte técnico » Windows »

Problema con argumento %* en scripts

Estas en el tema de Problema con argumento %* en scripts en el foro de Windows en Foros del Web. Saludos, necesito ejecutar una aplicación en un sistema remoto. Cuando este sistema se trata de un entorno unix no tengo problema ya que tengo un ...
  #1 (permalink)  
Antiguo 10/05/2005, 02:38
 
Fecha de Ingreso: abril-2005
Mensajes: 35
Antigüedad: 19 años
Puntos: 0
Busqueda Problema con argumento %* en scripts

Saludos, necesito ejecutar una aplicación en un sistema remoto.

Cuando este sistema se trata de un entorno unix no tengo problema ya que tengo un script que me permite cambiar el directorio de trabajo:

Ejecuta:

cd $1
shift
$*

El problema se presenta cuando creo el .bat equivalente en windows:

Ejecuta.bat:

@echo off
cd %1
shift
%*

No me borra de su contenido %1 por lo que me escribe la dirección de trabajo de nuevo

¿Alguien me podría decir como puedo eliminar del contenido %* el de la variable eliminada?, si no a alguien se le ocurre una opción alternativa?
  #2 (permalink)  
Antiguo 10/05/2005, 04:44
Avatar de Marto
Colaborador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Atapuerca, cuna de la Evo
Mensajes: 3.499
Antigüedad: 22 años, 5 meses
Puntos: 17
Pues puedes usar una forma muy cutre pero efectiva al fin y al cabo. La solución es crear una nueva variable dentro del script que coja solo los valores posteriores al %1. El script quedaria como:

@echo off
cd %1
set resto= %2 %3 %4 %5 %6 %7 (depende de cuantos parametros adicionales uses)
%resto%

Ya me contarás.
__________________
Me encantaría poder cambiar el mundo, pero es que no me dan el código fuente

** SIGO OFFLINE, PERO PRONTO REGRESO DE NUEVO, COSAS DEL TRABAJO ;D **
  #3 (permalink)  
Antiguo 10/05/2005, 06:39
 
Fecha de Ingreso: abril-2005
Mensajes: 35
Antigüedad: 19 años
Puntos: 0
Muchas gracias por tu propuesta. Ciertamente funciona, pero mi problema es que posiblemente necesite mas de 9 argumentos, por lo que debería utilizar la instrucción shift y un bucle que me incorporara el nuevo contenido de %1. Yo he escrito el siguiente script pero no me funciona y no se por qué:

@echo off
cd %1
:InicioBucle
shift
IF "%1"=="" goto FinScript
set ComandoFinal= %ComandoFinal% %1
goto InicioBucle
:FinScript
%ComandoFinal%
echo Fin

He de confesarlo, hasta que no he visto la línea donde escribes set resto= no me he dado cuenta de que si existe un espacio entre la variable y el igual la instrucción no funciona. El problema que veo es que los parámetros no son tan consistentes como los de unix (además de que existen mas) por lo de %*

Te agradecería un resultado mas elegante (no me gusta demasiado lo de goto)
  #4 (permalink)  
Antiguo 10/05/2005, 06:43
 
Fecha de Ingreso: abril-2005
Mensajes: 35
Antigüedad: 19 años
Puntos: 0
Se me ha olvidado preguntarte si conoces algun comando o variable equivalente a $? en unix para windows (lo necesito para monitorizar cuando acaba un proceso en una maquina remota)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:36.