Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Instalador en 8 Octubre 2014, 21:50 pm



Título: Como usar variables de entorno con vbs script?
Publicado por: Instalador en 8 Octubre 2014, 21:50 pm
 :huh: Buenas tardes:

Estoy tratando de usar las variables de entorno de Windows en un vbs script, mediante Environment.

Para crear, copiar, mover, eliminar, etc, archivos y carpetas.

Ya use la opción buscar y no encontré algún manual de uso de Environment.

Podría alguien ayudarme a aprender el uso y aplicación de Environment?

Gracias.


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: ivancea96 en 8 Octubre 2014, 22:28 pm
Se te olvidó buscar bien: http://lmgtfy.com/?q=variables+entorno+vbs (http://lmgtfy.com/?q=variables+entorno+vbs)

Citar
Código
  1. Set WshShell = WScript.CreateObject("WScript.Shell")
  2. Set WshSysEnv = WshShell.Environment("SYSTEM")
  3. WshSysEnv("VariableSystem") = "valor1"
  4. Set WshUserEnv = WshShell.Environment("USER")
  5. WshUserEnv("VariableUser") = "val"


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: Instalador en 8 Octubre 2014, 22:33 pm
Por lo que veo, tienes razón.

Aunque no creo que se me HAYA OLVIDADO buscar bien, mejor dicho no busque bien.

Mil gracias por tu ayuda

Editando:

Como podrás darte cuenta todas las opciones aparecen como visitadas, leídas y es porque ya me pase 2 dias leyendo incluso buscando en ingles y no logro encontrar nada.

Nuevamente mil gracias.


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: ivancea96 en 8 Octubre 2014, 23:39 pm
Realmente no sé por qué iba a saber las 'opciones' que visitaste ·_·


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: Instalador en 8 Octubre 2014, 23:43 pm
Mil gracias


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: Instalador en 8 Octubre 2014, 23:53 pm
Leo Gutiérrez:

En otra ocasion me orientaste con una duda que tenia, nuevamente solicito tu ayuda, podrias decirme que estoy haciendo mal en estos scripts? :

Código
  1. Set oShell = CreateObject("WScript.Shell")
  2. strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
  3. Set objfso = createobject("scripting.filesystemobject")
  4. Objfso.copyfile "C:\archivo.txt", "strHomeFolder", true
  5.  
  6. Set objShell = CreateObject("WScript.Shell")
  7. userProfilePath = objShell.ExpandEnvironmentStrings("%UserProfile%")
  8. Set objfso = createobject("scripting.filesystemobject")
  9. Objfso.copyfile "C:\archivo.txt", "userProfilePath", true

Cuando los ejecuto por separado, ambos me crean los archivos strHomeFolder y userProfilePath respectivamente en la carpeta donde tengo el archivo vbs, pero no me realizan la copia de archivo.txt a %UserProfile%

Gracias.


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: engel lex en 9 Octubre 2014, 00:15 am
usa las etiquetas GeSHi cuando publiques codigo en este caso puedes usar visual basic creo yo

no se realmente nada de vbs pero veo esto
Código
  1. Set WshSysEnv = WshShell.Environment("SYSTEM")

y tu tienes
Código
  1. strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")

me huele que es sin los "%"


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: Instalador en 9 Octubre 2014, 00:44 am
engel lex:

Lo intente de las 2 formas y no lo logre, gracias por tu interes.

Sin embargo encontré otra forma de hacerlo, este es el código, espero le sea útil a alguien mas.

Aquí el código para copiar el archivo C:\archivo.txt a %UserProfile% y finalmente abrir archivo.txt, esta probado y funciona perfectamente, deshabilite el On Error Resume Next para en caso de que presentara un error, poder ubicarlo.

Código
  1. 'On Error Resume Next
  2. dim path
  3. path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%")
  4. dim objFSO
  5. set objFSO=CreateObject("Scripting.FileSystemObject")
  6. If objFSO.FileExists(path & ("\archivo.txt")) = False Then
  7. objFSO.CopyFile "C:\archivo.txt", path & "\"
  8. Set WshShell = WScript.CreateObject("WScript.Shell")
  9. WshShell.Run(""""&path & "\archivo.txt""")
  10. End If

Probare con las demás variables de entorno.

No omito mencionar que la información (orientación) la obtuve de esta pagina:

http://community.spiceworks.com/scripts/show/732-copy-and-run-a-file-if-doesn-t-exist-in-userprofile

Saludos a todos.

Edito:

Lo probé con "%UserProfile%", "%PROGRAMFILES%", "%WINDIR%" y "%ALLUSERSPROFILE%"
Funciona perfectamente.


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: Eleкtro en 9 Octubre 2014, 03:20 am
Ya te han explicado que debes utilizar las etiquetas GeShi, porfavor, respeta las normas.



Código
  1. Option Explicit
  2.  
  3. Dim objFSO, objShell, fullpath
  4.  
  5. Set objFSO   = CreateObject("Scripting.FileSystemObject")
  6. Set objShell = CreateObject("WScript.Shell")
  7. fullpath     = objShell.ExpandEnvironmentStrings("%UserProfile%\Archivo.txt")
  8.  
  9. Select Case objFSO.FileExists(fullpath)
  10.  
  11. Case False ' El archivo no existe.
  12. objFSO.CopyFile "C:\Archivo.txt", fullpath
  13. objShell.Run(fullpath)
  14.  
  15. Case else ' El archivo existe.
  16. ' Do Nothing
  17.  
  18. End Select
  19.  
  20. WScript.Quit(0)
  21.  

Saludos!


Título: Re: Como usar variables de entorno con vbs script?
Publicado por: Instalador en 9 Octubre 2014, 03:48 am
Eleкtro:

Perdón por lo de las etiquetas, prometo no repetirlo.

Gracias por el código.