Foros del Web » Soporte técnico » Windows »

problemas con un .bat muy básico

Estas en el tema de problemas con un .bat muy básico en el foro de Windows en Foros del Web. Hola a todos. No estoy muy seguro de si este es el sitio mas adecuado para exponer mi pregunta. Si no es así, disculpen y ...
  #1 (permalink)  
Antiguo 24/11/2007, 06:43
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 10 meses
Puntos: 7
Sonrisa problemas con un .bat muy básico

Hola a todos. No estoy muy seguro de si este es el sitio mas adecuado para exponer mi pregunta. Si no es así, disculpen y espero que el moderador lo mueva al sitio mas adecuado.

Mi duda es la siguiente:

Necesito hacer un fichero .bat que lo que haga es colocarse en un determinado directorio del sistema de archivos de Windows y desde alli ejecute un archivo .exe que esta alojado en otro sitio diferente. El objetivo de ejecutar el .exe en una carpeta diferente a la que está el ejecutable es porque dicho programa me generará unos resultados que quiero que estén en esa carpeta.

En linux se hacerlo pero en windows mi programación de .bat es mas bien nula. Yo había hecho:


cd %2\%1

%2\%3\ejecutable.exe


El fichero .bat se ejecuta pasandole tres parametros. La idea era colocarme inicialmente en una determinada carpeta indicada por los dos primeros parametros que le paso al .bat. Y luego una vez situado en dicha carpeta ejecutar la aplicación "ejecutable.exe" que se encuentra situado en la ruta indicada por los parametros 2 y 3 que le paso al .bat.

El problema está en que el fichero ejecutabe.exe genera un archivo. Yo pensaba que con la primera instruccion me estaba colocando en el directorio que yo quiero y desde alli lanzaba la aplicación por lo que el resultado me lo guardaría en la ruta indicada en la primera linea del .bat. Pero realmente me almacena el fichero de resultados en la carpeta desde la cuál yo estoy lanzando el .bat.

En linux esto no me pasaba.

Es que realmente con la primera instrucción no se está colocando en el directorio que le indico ???

O es que las dos instrucciones realmente no se interrelacionan??

Es decir, que aunque con la primera me coloque en un determinado directorio, luego al ejecutar la segunda linea del .bat no tiene en cuenta la instrucción anterior????

La verdad que estoy un poco verde en este aspecto. A ver si alguien me orienta.


Saludos.
  #2 (permalink)  
Antiguo 25/11/2007, 07:38
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 19 años, 1 mes
Puntos: 19
Re: problemas con un .bat muy básico

Prueba con rutas absolutas:
Código:
rem c:\dondesea\elbat.bat uno c:\dos tres
rem la jerarquia de directorios seria
rem c:\dos\uno\tres
@echo off
rem nos vamos al raiz x:\
cd\
rem nos vamos a la ruta
cd %2\%1

rem podrias probar esto:
rem start %2\%3\ejecutable.exe > %2\%1\fichero.txt

@start %2\%3\ejecutable.exe
salu2
  #3 (permalink)  
Antiguo 25/11/2007, 12:01
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 9 meses
Puntos: 25
Re: problemas con un .bat muy básico

Un problema suele ser el cambio de unidades.

Si tu script está en D: no te puedes cambiar a la carpeta de Windows con un CD, necesitas primero cambiarte a C: y entonces si hacer el CD.

D:\> cd c:\windows\system32

No funcionará y debe reemplazarse por

D:\> c:
C:\> cd \windows\system32
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 26/11/2007, 04:53
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 10 meses
Puntos: 7
Re: problemas con un .bat muy básico

Muchas gracias a los dos por responder. Os aclaro un par de cosillas:


1) No me cambio de unidad, es decir, yo lanzo mi script desde la carpeta home del usuario (ya sabeis.....c:\document and settings\pepe por decir algo) y el script .bat se encuentra en c:\ejecutables).

Por lo que veo es como si la segunda instruccion no tuviera en cuenta la ejecución de la primera linea. Alguien me ha comentado que al contrario que el linux, el comando cd no cambia el directorio de trabajo, es decir, en linux cuando haces un cd a su vez se modifica la variable pwd que es la que contiene la ruta del directorio de trabajo. Y esto no ocurre en windows. Tampoco lo entendí muy bien jeje.



2)Encontré el comando "PUSHD" que parece que mas o menos funciona. La verdad que me sorprendió porque tiene pinta de ser un comando relacionado con la pila, lo tipico de push para insertar un dato en la pila y pop para extraerlo no???

Curiosamente he escrito en el script:

PUSHD %2\%1

%2\%3\ejecutable.exe


Y aparentemente parece que funciona....

Que os parece chicos??
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 14:51.