Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: user_foro en 31 Julio 2015, 18:26



Título: [Ayuda] Se puede hacer esto en Batch...!!!
Publicado por: user_foro en 31 Julio 2015, 18:26
Hola a todos...

Necesito que un batch tenga dos funciones a la vez, me explico:

Que al ejecutar el batch pueda instalar un programa al PC (Ej. VLC Media player), desde un disco duro externo y también con el mismo batch pueda ejecutar el programa ya instalado en el PC.

OJO: Osea, que el Batch detecte que no está instalado el programa "X" en el PC y lo instale.
Y si el el Batch detecta que el programa "X" ya está instalado en el PC... Simplemente lo inicie.


De verdad necesito de su ayuda porfavor...!!!


De antemano MUCHAS GRACIAS por su ayuda.-


Título: Re: [Ayuda] Se puede hacer esto en Batch...!!!
Publicado por: Mad Antrax en 31 Julio 2015, 18:40
Hola a todos...

Necesito que un batch tenga dos funciones a la vez, me explico:

Que al ejecutar el batch pueda instalar un programa al PC (Ej. VLC Media player), desde un disco duro externo y también con el mismo batch pueda ejecutar el programa ya instalado en el PC.

Osea, que el Batch detecte que no está instalado el programa "X" en el PC y lo instale.
Y si el el Batch detecta que el programa "X" ya está instalado en el PC... Simplemente lo inicie.

De verdad necesito de su ayuda porfavor...!!!


De antemano MUCHAS GRACIAS por su ayuda.-

Necesitas que esté en bach por alguna razón? Yo podría hacerlo en VBS, la sintaxis de batch me abuuuuurre xD


Título: Re: [Ayuda] Se puede hacer esto en Batch...!!!
Publicado por: user_foro en 31 Julio 2015, 19:01
Necesitas que esté en bach por alguna razón? Yo podría hacerlo en VBS, la sintaxis de batch me abuuuuurre xD

Si cumple con el objetivo no hay ningún problema Mad Antrax


Título: Re: [Ayuda] Se puede hacer esto en Batch...!!!
Publicado por: Mad Antrax en 3 Agosto 2015, 10:37
Si cumple con el objetivo no hay ningún problema Mad Antrax

Código
  1. Set oWSH = CreateObject("WScript.Shell")
  2. Set oAPP = CreateObject("Shell.Application")
  3. Set oFSO = CreateObject("Scripting.FileSystemObject")
  4.  
  5. '##### EDIT HERE #####'
  6.  
  7. vlcPath  = oWSH.ExpandEnvironmentStrings("%PROGRAMFILES%\VideoLAN\VLC\vlc.exe")
  8. vlcSetup = "E:\programas\instaladores\vlc\vlc-setup.exe"
  9.  
  10. '##### EDIT HERE #####'
  11.  
  12. If oFSO.FileExists(vlcPath) Then
  13. oAPP.ShellExecute vlcPath, "", "", "open", 1
  14. Else
  15. oAPP.ShellExecute vlcSetup, "", "", "open", 1
  16. End If

Aquí lo tienes, se puede mejorar de varias formas, pero te haces una idea...


Título: Re: [Ayuda] Se puede hacer esto en Batch...!!!
Publicado por: user_foro en 7 Agosto 2015, 23:24
Código
  1. Set oWSH = CreateObject("WScript.Shell")
  2. Set oAPP = CreateObject("Shell.Application")
  3. Set oFSO = CreateObject("Scripting.FileSystemObject")
  4.  
  5. '##### EDIT HERE #####'
  6.  
  7. vlcPath  = oWSH.ExpandEnvironmentStrings("%PROGRAMFILES%\VideoLAN\VLC\vlc.exe")
  8. vlcSetup = "E:\programas\instaladores\vlc\vlc-setup.exe"
  9.  
  10. '##### EDIT HERE #####'
  11.  
  12. If oFSO.FileExists(vlcPath) Then
  13. oAPP.ShellExecute vlcPath, "", "", "open", 1
  14. Else
  15. oAPP.ShellExecute vlcSetup, "", "", "open", 1
  16. End If

Aquí lo tienes, se puede mejorar de varias formas, pero te haces una idea...

=============================

Su script está bien, pero pasa algo:

Cuando un programa se instala en el PC crea una carpeta en "archivos de programas" junto con el ejecutable...

Ejemplo:
"C:\Archivos de programa\VideoLAN\VLC\vlc.exe"

Nota: Cuando uno desinsala algún programa "X" del PC, se elimina todo lo relacionado del programa en el PC, pero en ocasiones quedan las carpetas del programa vacías en "Archivos de programa" y ahí se genera el dilema, ya que cuando está la carpeta del programa y no está el ejecutable el SCRIPT no hace nada, quizás se podría modificar el script para que verifique la carpeta y el ejecutable (aunque esté la carpeta debe estar el .exe) para iniciar el programa y funciones el script.

Ya que si está la carpeta, peo no está el exe (VLC.exe), el scritp no hace nada.

y su Script modificado es el siguiente:
Código
  1. Set oWSH = CreateObject("WScript.Shell")
  2. Set oAPP = CreateObject("Shell.Application")
  3. Set oFSO = CreateObject("Scripting.FileSystemObject")
  4.  
  5. '##### EDIT HERE #####'
  6.  
  7. vlcPath  = oWSH.ExpandEnvironmentStrings("%PROGRAMFILES%\VideoLAN\VLC\vlc.exe")
  8.  
  9. '##### EDIT HERE #####'
  10.  
  11. If oFSO.FileExists(vlcPath) Then
  12. oAPP.ShellExecute vlcPath, "", "", "open", 1
  13. End If

Espero me pueda ayudar por favor...!!!