Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: _Xerks_ en 20 Julio 2006, 23:24 pm



Título: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: _Xerks_ en 20 Julio 2006, 23:24 pm
Hola a todos me ha surgido una duda haciendo una de mis chapucillas en casa.

Os planteo un poco el escenario, tengo un directorio en el disco duro llamado "datos", concretamente es "C:\datos", dentro de este directorio existe un subdirectorio cuyo nombre desconocemos, y dentro del subdirectorio un "archivo.exe". Lo que busco es generar un Bat que sea capaz de ejecutar a "archivo.exe".

Se que muchos de vosotros pensareis menuda chorrada, pero así es  ;D, es mi chorrada y la quiero llevar a cabo, de hecho ya lo tengo, pero no me sirve :'(

Código:
@echo off
cd c:\datos
attrib /s archivo.exe>find.tmp
for /f "tokens=1* delims=datos" %%a in (find.tmp) do set location=%%b
set location=%location:~0,-12%
set location=%location:~1,99999999%
cd %location%
call archivo.exe
exit

Y esto me funciona correctamente, se me ejecuta la aplicación "c:\datos\???\archivo.exe"
pero quiero ver si alguien sabe como conseguirlo con algún otro método, ya q' en concreto lo que me fastidia es tener que usar los caracteres paréntesis "(" ")".

También se me ocurrió para no tener q' recurrir a los peréntesis esta animalada de código:

Código:
cd c:\datos
cd 0*
archivo.exe
cd 1*
archivo.exe
cd 2*
archivo.exe
cd 3*
archivo.exe
cd 4*
archivo.exe
cd 5*
archivo.exe
cd 6*
archivo.exe
cd 7*
archivo.exe
cd 8*
archivo.exe
cd 9*
archivo.exe
cd a*
archivo.exe
cd b*
archivo.exe
cd c*
archivo.exe
cd d*
archivo.exe
cd e*
archivo.exe
cd f*
archivo.exe
cd g*
archivo.exe
cd h*
archivo.exe
cd i*
archivo.exe
cd j*
archivo.exe
cd k*
archivo.exe
cd l*
archivo.exe
cd m*
archivo.exe
cd n*
archivo.exe
cd ñ*
archivo.exe
cd o*
archivo.exe
cd p*
archivo.exe
cd q*
archivo.exe
cd r*
archivo.exe
cd s*
archivo.exe
cd t*
archivo.exe
cd u*
archivo.exe
cd v*
archivo.exe
cd w*
archivo.exe
cd x*
archivo.exe
cd y*
archivo.exe
cd z*
archivo.exe
exit

Jejjee, a que es una auténtica brutalidad  ::) bueno eso lo sé, pero hasta no me importaba si hubiese funcionado, y de hecho funcionó, hasta que el sistema en cuestión de segundos se vuelve inestable, y te ves obligado a cerrar la sesión de windows y volver a entrar. No entiendo porque se vuelve tan inestable, el "archivo.exe" se ejecuta, pero todo lo demás se escoñeta.

Espero ayudita please.  :P

Un saludo amigos.


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: sch3m4 en 21 Julio 2006, 02:48 am
y si hay dos o más directorios que empiezan por la misma letra?  :-\
Si solo existe ese "archivo.exe" en toda la rama de directorios, podrías hacer un "dir /s /b archivo.exe" dentro de C:\datos y mirar si te ha devuelto alguna ruta y ejecutarla.


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: _Xerks_ en 21 Julio 2006, 03:00 am
Hola Lympex, antes de nada, gracias por contestar, verás, sabemos que sólo existe un subdirectorio dentro del directorio "datos", pero no sabemos como se llama ese subdirectorio, por otra parte, si sabemos que ese subdirectorio contiene un ejecutable llamado "archivo.exe", nosé si me he explicado bien.

Ocea esto es lo que sabemos que existe "c:\datos\???\archivo.exe"
??? = al subdirectorio de nombre desconocido.

Otra cosa, quiero crear un bat que lo haga todo automático, lo digo por lo de
Citar
podrías hacer un "dir /s /b c:\datos archivo.exe" y mirar si te ha devuelto alguna ruta y ejecutarla.
no quiero una vez ejecutado el bat tener yo que interactuar de nuevo para conseguir el resultado final.

Un saludo.


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: sch3m4 en 21 Julio 2006, 03:08 am
aja, entonces no sé, solo era por dar una idea, no programo en batch, sorry


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: _Xerks_ en 21 Julio 2006, 03:15 am
Gracias, eso es precisamente lo que estoy buscando, ideas... ideas nuevas, porque yo hace días que me quedé sin ellas...  ;D

Seguro que se puede conseguir...  :rolleyes:


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: _Xerks_ en 21 Julio 2006, 03:21 am
Verás lo de los paréntesis no es un capricho, el código al final lo voy a meter dentro de un Visual Basic Script, en concreto dentro del comando "archivoBat.WriteLine(codigo batch)" y claro, el codigo Batch no puede contener paréntesis, de lo contrario VBS interpreta que se cierra la linea que estoy escribiendo, y se me fastidia el invento...   :P

A ver si damos con alguna alternativa.   :huh:


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: _Xerks_ en 21 Julio 2006, 19:00 pm
 ;D por fín tengo la solución, gracias al amigo "iobh"

ha dado con una solución simple pero eficiente, le debo una  ;)

Código:
@echo off
cd c:\datos
cd 0*
cd 1*
cd 2*
cd 3*
cd 4*
cd 5*
cd 6*
cd 7*
cd 8*
cd 9*
cd a*
cd b*
cd c*
cd d*
cd e*
cd f*
cd g*
cd h*
cd i*
cd j*
cd k*
cd l*
cd m*
cd n*
cd ñ*
cd o*
cd p*
cd q*
cd r*
cd s*
cd t*
cd u*
cd v*
cd w*
cd x*
cd y*
cd z*
cls
call archivo.exe
pause
exit

lo expongo por si a alguien le pudiera resultar útil su uso.

Un salu2.


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: silverhack en 31 Julio 2006, 02:05 am
Si sabes el nombre del archivo (archivo.exe) puedes utilizar perfectamente el comando nativo dir para hacer la búsqueda, que la guarde en un fichero, y luego si quieres con el token vas buscando la ruta, todo ello de forma automatizada...
Ejemplo...
Si quisiésemos buscar el ejecutable iexplore.exe de la ruta archivos de programas, ejecutaremos lo siguiente:

dir c:\archiv~1\iexplore.exe /S

Me huele a algún tipo de malware lo que estás intentando hacer.... ;)


Título: Re: Programación Batch, Entrando en un directorio de nombre desconocido...
Publicado por: sch3m4 en 31 Julio 2006, 02:39 am
eso le dije yo silverhack, y dijo que no, o quizás no lo entendí