elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] Buscar y ejecutar el archivo encontrado .bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] Buscar y ejecutar el archivo encontrado .bat  (Leído 4,551 veces)
rockhevy1000

Desconectado Desconectado

Mensajes: 3


Ver Perfil
[BATCH] Buscar y ejecutar el archivo encontrado .bat
« en: 19 Octubre 2015, 01:07 am »

Buenas tardes amigos del foro, anteriormente me han servido muchos tutoriales de esta pagina y realmente no soy un usuario de andar molestando preguntando sin antes buscar primero, es por eso que este es mi primer tema. Les comento mi situación.

Tengo un juego (Unreal Tournament 3) que gracias a los tutos de la red lo puedo ejecutar en modo de pantalla split para 2 o + jugadores. El problema viene que para cambiar los modos de juego (1 juagador o 2+ jugadores) hay que cambiar un archivo en la carpeta del juego. Es decir, si quiero jugar yo solo tengo que copiar el archivo "ejem1.ini" en la carpeta del juego, renombrarlo a "ejem.ini" y después ejecutar el juego.  Si quiero jugarlo con un amigo, tengo borrar el primero, después copiar el "ejem2.ini" a la carpeta y renombrarlo por "ejem.ini". Despues de todo esto, ahoar si puedo ejecutar el juego.

La primera parte ya la resolvi con el siguiente codigo.

1 jugador:
Código
  1.  
  2. copy "D:\Mis Programas\Varios\Unreal3\1player\file.ini" "D:\Mis Programas\Varios\Unreal3\destino"
  3.  
  4.  
  5. :ERROR

2+ jugadores:

Código
  1.  
  2. copy "D:\Mis Programas\Varios\Unreal3\2player\file.ini" "D:\Mis Programas\Varios\Unreal3\destino"
  3.  
  4.  
  5. :ERROR

Ahora la pregunta es si puedo automatizar el proceso para que despues de cambiar el archivo ejecute el juego (ut3.exe)

Se que con el comando start lo puedo hacer poniendolo asi:

Código
  1. start "file.ini" "D:\Mis Programas\Varios\Unreal3\destino\file.ini"

Pero la pregunta es si hay alguna forma de que el batch me busque en el equipo el programa, en este caso ut3.exe y que cuando lo encuentre, lo ejecute.

Esto es por si despues cambio la carpeta de instalación o le paso el batch a un amigo y no tenga que estar cambiando las rutas el mismo.

Resumiendo, que al ejecutar el archivo 1 player.bat copie el archivo 1player.ini en la carpeta de configuracion, y despues, busque el ejecutable (en el equipo) y lo ejecute. Y al ejecutar el archivo 2 player.bat, copie 2player.ini, busque el ejecutable y lo ejecute.

Espero haberme explicado bien. Gracias por sus respuestas.

*Los codigos que puse son ejemplos, me gusta trabajar en carpetas separadas a lo que voy a hacer para no confundirme. Una vez que logre lo que quiero, cambio los archivos por su respectivo.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] Buscar y ejecutar el archivo encontrado .bat
« Respuesta #1 en: 21 Octubre 2015, 16:17 pm »

Asumiendo que solo haya un archivo con nombre "ut3.exe" en el PC y sea en el disco principal, puedes hacer esto con seguridad:

Código
  1. @Echo OFF
  2.  
  3. PUSHD "%HomeDrive%"
  4. For /R %%# In ("*ut3.exe") Do (
  5. Start /Wait "Unreal Tournament 3" "%%~f#"
  6. )
  7.  
  8. Pause&Exit /B 0

Pero ten en cuenta que Batch es un lenguaje limitado, es lento incluso para realizar operaciones de búsqueda de archivos o iteraciones en el sistema de archivos.

PD: ¿Todavía existen servers públicos para el UT3? xD.

Saludos


« Última modificación: 21 Octubre 2015, 16:20 pm por Eleкtro » En línea



rockhevy1000

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [BATCH] Buscar y ejecutar el archivo encontrado .bat
« Respuesta #2 en: 23 Octubre 2015, 06:49 am »

Asumiendo que solo haya un archivo con nombre "ut3.exe" en el PC y sea en el disco principal, puedes hacer esto con seguridad:

Código
  1. @Echo OFF
  2.  
  3. PUSHD "%HomeDrive%"
  4. For /R %%# In ("*ut3.exe") Do (
  5. Start /Wait "Unreal Tournament 3" "%%~f#"
  6. )
  7.  
  8. Pause&Exit /B 0

Pero ten en cuenta que Batch es un lenguaje limitado, es lento incluso para realizar operaciones de búsqueda de archivos o iteraciones en el sistema de archivos.

PD: ¿Todavía existen servers públicos para el UT3? xD.

Saludos

Saludos! y gracias por responder...

Voy a probar tu batch para ver como se me da, igual en el remoto caso de que tenga dos o mas archivos llamados "ut3.exe" es posible especificar en que carpeta (no se, por ejemplo %ProgramFiles(x86)%? en vez de "%HomeDrive%"?

Realmente no se si existan servers publicos, como lo utilizo para jugar por Hamachi o por plantalla split, no me he dado a la tarea de buscarlos. En todo caso, jugarlo con los amigos es por nostalgia, la crisis de los 30...  :P

EDITO: Ya hice el bat pero no me funciono, te dejo la captura de pantalla...



No pasa de ahi...  :silbar:
« Última modificación: 23 Octubre 2015, 07:11 am por rockhevy1000 » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] Buscar y ejecutar el archivo encontrado .bat
« Respuesta #3 en: 23 Octubre 2015, 09:55 am »

EDITO: Ya hice el bat pero no me funciono, te dejo la captura de pantalla...

El código lo escribí al vuelo sin testearlo, lo siento, me faltó añadir el backslash a la ruta:
Código:
PUSHD "%HomeDrive%\"

Con esa modificación ya funciona.



en el remoto caso de que tenga dos o mas archivos llamados "ut3.exe" es posible especificar en que carpeta (no se, por ejemplo %ProgramFiles(x86)%? en vez de "%HomeDrive%"?

Si, simplemente modifica esa ruta. El comando PUSHD lo que hace es modificar el directorio de trabajo, y entonces el For se procesa en el directorio de trabajo actual (que hemos modificado previamente) para buscar el archivo de forma recursiva dentro de ese directorio.

Código
  1. @Echo OFF
  2.  
  3. If Exist "%ProgramFiles(x86)%" (
  4. PUSHD "%ProgramFiles(x86)%"
  5. ) Else (
  6. PUSHD "%ProgramFiles%"
  7. )
  8.  
  9. For /R %%# In ("*ut3.exe") Do (
  10. Start /Wait "Unreal Tournament 3" "%%~f#"
  11. )
  12.  
  13.  
  14. Pause&Exit /B 0

Saludos
« Última modificación: 23 Octubre 2015, 09:57 am por Eleкtro » En línea



rockhevy1000

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: [BATCH] Buscar y ejecutar el archivo encontrado .bat
« Respuesta #4 en: 24 Octubre 2015, 21:46 pm »


Gracias man! Ya quedo el código, justo como lo buscaba. Solo una pregunta, el hecho de que pongas If Exist "%ProgramFiles(x86)%" Else "%ProgramFiles%" es para que busque en Archivos de Programa (x86) si está en el equipo, si no, en Archivos de Programa, verdad?

Al fin quedo así:

Código
  1. Echo Off
  2. color cf
  3. title Launcher UT3
  4.  
  5. copy "D:\Mis Programas\Juegos\Unreal Tournament 3\Pantalla Split\1 o 2 jugadores\1player\UTGame.ini" "%USERPROFILE%\Documents\My Games\Unreal Tournament 3\UTGame\Config"
  6.  
  7. cls
  8.  
  9. If Exist "%ProgramFiles(x86)%" (
  10. PUSHD "%ProgramFiles(x86)%"
  11. ) Else (
  12. PUSHD "%ProgramFiles%"
  13. )
  14.  
  15. cls
  16.  
  17. mode con cols=47 lines=19
  18. Echo.          z       z zzzzzzzzz   zzz
  19. Echo.          z       z     z      z   z
  20. Echo.          z       z     z     z    z
  21. Echo.          z       z     z          z
  22. Echo.          z       z     z         zz
  23. Echo.          z       z     z       zzz
  24. Echo.          z       z     z          z
  25. Echo.          z       z     z           z
  26. Echo.          z       z     z           z
  27. Echo.          z       z     z     z     z
  28. Echo.           z     z      z     zz   z
  29. Echo.            zzzzz       z       zzz
  30. Echo.                                          
  31. Echo.                                          
  32. Echo.    .: Iniciando Partida Para 1 Jugador :.
  33.  
  34. For /R %%# In ("*ut3.exe") Do (
  35. Start /Wait "Unreal Tournament 3" "%%~f#"
  36. )
  37.  
  38. cls
  39.  
  40.  
  41. Echo.          z       z zzzzzzzzz   zzz
  42. Echo.          z       z     z      z   z
  43. Echo.          z       z     z     z    z
  44. Echo.          z       z     z          z
  45. Echo.          z       z     z         zz
  46. Echo.          z       z     z       zzz
  47. Echo.          z       z     z          z
  48. Echo.          z       z     z           z
  49. Echo.          z       z     z           z
  50. Echo.          z       z     z     z     z
  51. Echo.           z     z      z     zz   z
  52. Echo.            zzzzz       z       zzz
  53. Echo.                                          
  54. Echo.                                          
  55. Echo.    .: Terminando Partida Para 1 Jugador :.
  56.  
  57. ping localhost -n 3 >nul
  58.  

Mas que nada paja, pero el resultado me gusto. Saludos!

En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] Buscar y ejecutar el archivo encontrado .bat
« Respuesta #5 en: 25 Octubre 2015, 07:11 am »

Solo una pregunta, el hecho de que pongas If Exist "%ProgramFiles(x86)%" Else "%ProgramFiles%" es para que busque en Archivos de Programa (x86) si está en el equipo, si no, en Archivos de Programa, verdad?

Exacto. Por lo que dijiste de que le podías pasar el script a otras personas, en el caso de que alguna persona no tenga un S.O. de 64 Bits.



Al fin quedo así:

Genial, pero deberías intentar no repetir código:

Código
  1. Echo Off & Color cf & Title Launcher UT3
  2.  
  3. Copy "D:\Mis Programas\Juegos\Unreal Tournament 3\Pantalla Split\1 o 2 jugadores\1player\UTGame.ini" "%USERPROFILE%\Documents\My Games\Unreal Tournament 3\UTGame\Config"
  4. Cls
  5.  
  6. If Exist "%ProgramFiles(x86)%" (
  7. PUSHD "%ProgramFiles(x86)%"
  8. ) Else (
  9. PUSHD "%ProgramFiles%"
  10. )
  11.  
  12. mode con cols=47 lines=19
  13. Call :ASCII_ART                                
  14. Echo.    .: Iniciando Partida Para 1 Jugador :.
  15.  
  16. For /R %%# In ("*ut3.exe") Do (
  17. Start /Wait "Unreal Tournament 3" "%%~f#"
  18. )
  19.  
  20. Call :ASCII_ART                                  
  21. Echo.    .: Terminando Partida Para 1 Jugador :.
  22. (ping localhost -n 3)1>Nul
  23. Exit /B 0
  24.  
  25. :ASCII_ART
  26. Echo.          z       z zzzzzzzzz   zzz
  27. Echo.          z       z     z      z   z
  28. Echo.          z       z     z     z    z
  29. Echo.          z       z     z          z
  30. Echo.          z       z     z         zz
  31. Echo.          z       z     z       zzz
  32. Echo.          z       z     z          z
  33. Echo.          z       z     z           z
  34. Echo.          z       z     z           z
  35. Echo.          z       z     z     z     z
  36. Echo.           z     z      z     zz   z
  37. Echo.            zzzzz       z       zzz
  38. Echo.                                          
  39. Echo.          
  40. Goto :EOF

Saludos
En línea



Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Batch para buscar y borrar un archivo « 1 2 »
Scripting
analca3 18 22,265 Último mensaje 3 Noviembre 2009, 16:49 pm
por leogtz
Buscar archivo. batch [Solucionado]
Scripting
Dany3j 9 7,279 Último mensaje 29 Julio 2011, 07:44 am
por leogtz
[BATCH] Ejecutar archivo
Scripting
Beito 3 3,815 Último mensaje 20 Octubre 2012, 18:44 pm
por Eleкtro
[Solucionado] [BATCH] Buscar archivo en disco duro y eliminarlo.
Scripting
dimoca 1 2,527 Último mensaje 13 Abril 2014, 05:42 am
por dimoca
.batch para buscar archivo y copiarlo a otra ruta
Scripting
mqmf 1 2,566 Último mensaje 8 Abril 2019, 15:14 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines