Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Instalador

#1
Scripting / Copiar desde USB a PC con vbscript
29 Agosto 2015, 02:13 AM
Buenas noches primero saludarles desde Cancún, México.

Y para solicitarles su amable orientación, estoy tratando de copiar desde USB un archivo llamado prueba.docx, este archivo esta dentro de una carpeta llamada Oscar y quiero copiarlo a C:\Archivos de programa\Ejemplo.

Pero me marca error "Archivo no encontrado"

El comando movefile para renombrar Prueba 3.rar por Prueba 3.bak si me la acepta, porque la path es desde Archivos de programa.

Pero cuando uso .\ como path para USB no, podría alguien decirme que estoy haciendo mal, gracias.

Lo intente con este script:

Código (vb) [Seleccionar]
dim path, objFSO
path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%PROGRAMFILES%")
set objFSO=CreateObject("Scripting.FileSystemObject")
objFSO.MoveFile(path & ("\Ejemplo\Prueba 3.rar")),  (path & ("\Ejemplo\Prueba 3.bak"))
objFSO.CopyFile(".\Oscar\prueba.docx"), "C:\Program Files\Ejemplo\"


Solucionado:

Opte por eliminar todos los archivos y crearlos de nuevo, modifique el script, quedando de esta forma:

Código (vb) [Seleccionar]
On Error Resume Next
dim path, variable 'Probado OK
path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%PROGRAMFILES%") 'Probado OK
Set variable = CreateObject("Scripting.FileSystemObject") 'Probado OK
variable.MoveFile(path & ("\Ejemplo\Prueba 3.rar")),  (path & ("\Ejemplo\Prueba 3.bak")) 'Probado OK
'variable.CopyFile "Test.docx", "C:\Program Files\Ejemplo\", true 'Probado OK
variable.CopyFile "Test.docx",  (path & ("\Ejemplo\")) 'Probado OK


En la linea 6 elimine .\
La linea 7 es lo mismo que la 6, pero en la 7 uso variable de entorno %PROGRAMFILES%

Ojala le sirva a alguien, saludos.

Perdon, cambie los nombres de los archivos, pero se entiende.
#2
Eleкtro:

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

Gracias por el código.
#3
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 (vb) [Seleccionar]
'On Error Resume Next
dim path
path=CreateObject("WScript.Shell").ExpandEnvironmentStrings("%UserProfile%")
dim objFSO
set objFSO=CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(path & ("\archivo.txt")) = False Then
objFSO.CopyFile "C:\archivo.txt", path & "\"
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run(""""&path & "\archivo.txt""")
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.
#4
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 (vb) [Seleccionar]
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
Set objfso = createobject("scripting.filesystemobject")
Objfso.copyfile "C:\archivo.txt", "strHomeFolder", true

Set objShell = CreateObject("WScript.Shell")
userProfilePath = objShell.ExpandEnvironmentStrings("%UserProfile%")
Set objfso = createobject("scripting.filesystemobject")
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.
#5
Mil gracias
#6
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.
#7
 :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.
#8
Cita de: Eleкtro en 17 Enero 2014, 20:07 PM
¿así sin más, no se abre, sin mostrar siquiera un error?, que extraño.

¿Usas WinXP?, ¿Tienes el Framework 4.0 instalado?

Pruébalo en un Win7/8 con Framework 4.0 instalado, así debería funcionarte sin problemas.

EDITO:
Si quieres postea el script y yo te lo convierto con el programa.

EDITO 2:Si estás usando algún installbuilder (InnoSetup, InstallShield, etc...) lo correcto sería que añadieras los valores del registro desde el lenguaje que utilice el propio installbuilder, así no te pediría confirmación.
Si estás usando algo tipo WinRAR-SFX ...olvídalo xD

Saludos!

Elektro:

En relación a tu programa, ya lo descargue 2 veces y me hace lo mismo, uso Win Xp SP3 y si tengo instalado el Framework 4.0

Ya solucione la creación de las entradas del registro, quedaron así:

Código (vb) [Seleccionar]
Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegWrite "HKLM\SOFTWARE\FSPro Labs\Hide Folders 2009\RegCode", "123456789012345678901234567", "REG_SZ"

Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegWrite "HKLM\SOFTWARE\FSPro Labs\Hide Folders 2009\RegistrationURL", "http://www.fspro.net/hide-folders/purchase.html", "REG_SZ"

Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegWrite "HKLM\SOFTWARE\FSPro Labs\Hide Folders 2009\RegName", "Nemo", "REG_SZ"


Agradezco el ofrecimiento de que me conviertas el script, no me lo tomes a mal, pero me gusta intentarlo y si en algo me atoro pues ya te molestare, te repito ya logre hacerlo con vbs.

Gracias por tu ayuda y probare en otra maquina tu programa.

Lo mismo pero eliminando lo innecesario.

Código (vb) [Seleccionar]
Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegWrite "HKLM\SOFTWARE\FSPro Labs\Hide Folders 2009\RegCode", "123456789012345678901234567", "REG_SZ"
obj_Shell.RegWrite "HKLM\SOFTWARE\FSPro Labs\Hide Folders 2009\RegistrationURL", "http://www.fspro.net/hide-folders/purchase.html", "REG_SZ"
obj_Shell.RegWrite "HKLM\SOFTWARE\FSPro Labs\Hide Folders 2009\RegName", "Nemo", "REG_SZ"





[MOD]: Utiliza las etiquetas para insertar código, mira la imagen de mi firma (Elektro).
#9
engelx:

El motivo por el cual quiero que no pida confirmación, es porque se trata de una instalación desatendida.

Elektro:

Tienes razón, intentare escribir directamente las instrucciones en vbs.
Gracias por el programa Reg a Bat, lo probare.

En cuanto lo tenga listo lo subiré, gracias a los 2 por su atención.

Elektro:

Descargue tu programa pero no me funciona, lo descomprimo y cuando doy doble click en el ejecutable no abre, dentro de la carpeta están 3 archivos CButtonLib.dll Ookii.Dialogs.dll y Reg2Bat.exe

Gracias.
#10
Buenos dias:

Estoy tratando de agregar un registro a windows para "hacer funcinal" un programa, sin que me pida confirmacion.

Mediante un bat seria de la siguiente forma:
Código (dos) [Seleccionar]

REGEDIT /S "regme.reg"


Como puedo hacerlo mediante vbs?

Intente de esta forma pero no funciona:

Código (vb) [Seleccionar]
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "regme.reg"


Gracias por su orientacion.




[MOD]: Usa las etiquetas para insertar código.