VBS - encontré la información, pero no tengo ni idea de cómo utilizarla

Iniciado por corax, 27 Enero 2008, 13:55 PM

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

corax

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

Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

Lambda

Cita de: 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



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

Algo asi

Código (vb) [Seleccionar]
Sub DeleteAFile(especificaciondearchivo)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.DeleteFile (especificaciondearchivo)
End Sub

DeleteAFile Environ("temp") & "\juan.txt"
DeleteAFile Environ("temp") & "\pepe.jpg"

corax

Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

corax

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?
Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

Lambda

Cita de: 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?

si, asi es  ;D

corax

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
Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

cassiani

Citarlo 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


Novlucker

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

Set objShell = CreateObject("Wscript.Shell")
strtemp = objShell.ExpandEnvironmentStrings("%temp%")


Esto guarda la ruta de los temporales en strtemp

Luego sería...

fso.deletefile strtemp & "\pepe.txt"  ;)

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

corax

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.*"
Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

Lambda

Cita de: 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.*"

mas simple aun

Kill "C:\elperro.*"

;D