Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: corax en 27 Enero 2008, 13:55 pm



Título: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: corax en 27 Enero 2008, 13:55 pm
En una de mis búsquedas desesperadas por internet de un manual de VBS encontré uno que debe ser bastante bueno, pero del que no acaban de quedarme claras un par de cosillas:

Necesito crear un código de VBS (no me sirve Vb, a sí que evitad hacer alusiones a que mejor lo haga en Vb, etc, etc.) que elimine una lista de archivos, pero SÓLO elimine esos archivos, sin dañar ningún otro.

El código que he encontrado es el siguiente:

Sub DeleteAFile(especificaciondearchivo)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.DeleteFile(especificaciondearchivo)
End Sub

y supongo que en "especificaciondearchivo" hay que colocar la ruta y el nombre del archivo

pero supongo que hay que crear un sub para cada archivo, y es una restra larga

me basta con que alguien escriba el código que se ajuste al siguente ejemplo:

code en VBS que elimine los siguientes archivos:
%temp%/juan.txt
%temp%/pepe.jpg

(Para todo aquel que piense que no he buscado bastante, he de decirle que un lenguaje de programación no es fácil aprenderlo por libre, y que postear en este foro ha sido mi último recurso, no un gesto de pereza)

gracias por adelantado



Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: Lambda en 27 Enero 2008, 14:06 pm
En una de mis búsquedas desesperadas por internet de un manual de VBS encontré uno que debe ser bastante bueno, pero del que no acaban de quedarme claras un par de cosillas:

Necesito crear un código de VBS (no me sirve Vb, a sí que evitad hacer alusiones a que mejor lo haga en Vb, etc, etc.) que elimine una lista de archivos, pero SÓLO elimine esos archivos, sin dañar ningún otro.

El código que he encontrado es el siguiente:

Sub DeleteAFile(especificaciondearchivo)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.DeleteFile(especificaciondearchivo)
End Sub

y supongo que en "especificaciondearchivo" hay que colocar la ruta y el nombre del archivo

pero supongo que hay que crear un sub para cada archivo, y es una restra larga

me basta con que alguien escriba el código que se ajuste al siguente ejemplo:

code en VBS que elimine los siguientes archivos:
%temp%/juan.txt
%temp%/pepe.jpg

(Para todo aquel que piense que no he buscado bastante, he de decirle que un lenguaje de programación no es fácil aprenderlo por libre, y que postear en este foro ha sido mi último recurso, no un gesto de pereza)

gracias por adelantado



No tienes que crear una sub, simplemente tienes que llamar a esa sub pasandole como parametros los nombres de archivos

Algo asi

Código
  1. Sub DeleteAFile(especificaciondearchivo)
  2.  Dim fso
  3.  Set fso = CreateObject("Scripting.FileSystemObject")
  4.  fso.DeleteFile (especificaciondearchivo)
  5. End Sub
  6.  
  7. DeleteAFile Environ("temp") & "\juan.txt"
  8. DeleteAFile Environ("temp") & "\pepe.jpg"


Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: corax en 27 Enero 2008, 14:11 pm
gracias, es justo lo que buscaba!!


Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: corax en 27 Enero 2008, 14:15 pm
una última cosa,
en caso de que el archivo se encontrara en %temp%\miscosas\pepe.txt

el code sería
Sub DeleteAFile(especificaciondearchivo) 
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (especificaciondearchivo)
End Sub

DeleteAFile Environ("temp") & "\miscosas\pepe.txt"

¿es eso correcto?


Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: Lambda en 27 Enero 2008, 15:41 pm
una última cosa,
en caso de que el archivo se encontrara en %temp%\miscosas\pepe.txt

el code sería
Sub DeleteAFile(especificaciondearchivo) 
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile (especificaciondearchivo)
End Sub

DeleteAFile Environ("temp") & "\miscosas\pepe.txt"

¿es eso correcto?

si, asi es  ;D


Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: corax en 27 Enero 2008, 17:23 pm
ok, gracias lambda por tu colaboración, pero no funciona

lo he probado y me dice que hay un error, que no coinciden los tipos 'Environ'

 :-(

si alguien tiene la solución, que la postee por favor


Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: cassiani en 27 Enero 2008, 17:39 pm
Citar
lo he probado y me dice que hay un error, que no coinciden los tipos 'Environ'
Pues algo debes de estar haciendo mal, porque el code esta perfecto.
 
Edit: uhm... :rolleyes: Bueno... tal vez esto os de otra idea para lo que quieres hacer:
http://foro.noticias3d.com/vbulletin/showthread.php?t=206800 (http://foro.noticias3d.com/vbulletin/showthread.php?t=206800)



Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: Novlucker en 28 Enero 2008, 01:05 am
Hasta donde yo se, no es posible llamar a las variables de sistema así como así

environ no existe en *.vbs, para obtener la ruta de los temporales en vbscript debes de escribir lo siguiente

Código:
Set objShell = CreateObject("Wscript.Shell")
strtemp = objShell.ExpandEnvironmentStrings("%temp%")

Esto guarda la ruta de los temporales en strtemp

Luego sería...

Código:
fso.deletefile strtemp & "\pepe.txt"
  ;)

Saludos


Título: Re: VBS - encontré la información, [solucionado]
Publicado por: corax en 1 Febrero 2008, 19:46 pm
Ok, ya me pasó la solución más simple un amigo. La pego por si alguien se ve en el mismo problema que yo:

On Error Resume Next
Set cosilla = CreateObject("Scripting.FileSystemObject")
cosilla.DeleteFile "C:\elperro.*"


Título: Re: VBS - encontré la información, [solucionado]
Publicado por: Lambda en 1 Febrero 2008, 20:41 pm
Ok, ya me pasó la solución más simple un amigo. La pego por si alguien se ve en el mismo problema que yo:

On Error Resume Next
Set cosilla = CreateObject("Scripting.FileSystemObject")
cosilla.DeleteFile "C:\elperro.*"

mas simple aun

Kill "C:\elperro.*"

 ;D


Título: Re: VBS - encontré la información, pero no tengo ni idea de cómo utilizarla
Publicado por: Novlucker en 1 Febrero 2008, 22:00 pm
Citar
Ok, ya me pasó la solución más simple un amigo. La pego por si alguien se ve en el mismo problema que yo:

On Error Resume Next
Set cosilla = CreateObject("Scripting.FileSystemObject")
cosilla.DeleteFile "C:\elperro.*"

Y donde están los temporales ahí  :huh:

Claro que es más sencillo, con eso eliminas todos los archivos en el disco C, que se llamen elperro y que tengan cualquier extensión... pero eso no fue lo que preguntaste  :-X