Archivo vbs que borre carpeta escritorio.

Iniciado por cybercristina30, 4 Agosto 2016, 09:34 AM

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

cybercristina30

he implementado este código pero me da error alguien sabe donde esta el fallo?
Quiero borrar todas las carpetas y archivos contenidos en una carpeta en el escritorio que se llama pepo.

On Error Resume Next

strDir = "C:\Desktop\pepo"

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.GetFolder(strDir)

Set fc = f.Files

For Each f1 in fc

fso.DeleteFile f1, True

Next

tincopasan

pues,que dirección de escritotio más rara! ¿y el user? revisa la dirección que estás pasando. Cuando pongas errores poné que error te da así no hay que interpretar todo el código. Que nic más k

cybercristina30

tienes razón el fallo esta en la ruta entonces asi estaría bien?
Suponiendo que no sabes el nombre de usuario:
"c:\user\%usuario%\Desktop\pepo"
sería correcto? Me puedes escribir si no lo es como sería. Gracias. Cris.

MCKSys Argentina

La variable de entorno USERPROFILE apunta a la carpeta del usuario.

Si le agregas Desktop ya tendras en path completo.

En tu codigo vas a tener que usar ExpandEnvironmentStrings

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


cybercristina30

Así estaría bien? Gracias por tu tiempo. Cris.

On Error Resume Next
set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "WinDir is " & WshShell.ExpandEnvironmentStrings("%WinDir%")
strDir = "C:\%userprofile%\pepo"
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(strDir)
Set fc = f.Files
For Each f1 in fc
fso.DeleteFile f1, True
Next












tincopasan

2 cosas:
1) también podrías usar  SpecialFolders para obtener las rutas de las carpetas especiales
en este caso:
Código (vb) [Seleccionar]
variable= WshShell.SpecialFolders("Desktop")

2)si tenés duda del resultado visualizalo!
con el que ya usas:
Código (vb) [Seleccionar]
WScript.Echo  WshShell.SpecialFolders("Desktop")

o con :
Código (vb) [Seleccionar]
msgbox (variable)

Dicho sea de paso esto tendría que estar en scripting

cybercristina30

Ok gracias por la respuesta pero quería saber si el programa que he escrito funcionaria o tengo que cambiar algo, quiero hacerlo lo mas sencillo posible ya que mi nivel actual de programación es bajo.

tincopasan

código cambiado:
Código (vb) [Seleccionar]

On Error Resume Next
set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "WinDir is " & WshShell.ExpandEnvironmentStrings("%WinDir%")
strDir =  WshShell.SpecialFolders("Desktop")+"\pepo"      '1)
msgbox strDir                                                               '2)   
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(strDir)
Set fc = f.Files
For Each f1 in fc
msgbox f1                                                            '2)
fso.DeleteFile f1, True
Next


ahora bien...
CitarOk gracias por la respuesta pero quería saber si el programa que he escrito funcionaria o tengo que cambiar algo
No funciona ni a palos!!! ¿por qué no lo probás?

Citarquiero hacerlo lo mas sencillo posible

con solo el cambio 1) con respecto a tú código  ya debería funcionar, ¡¡ guarda con lo complicado del cambio!! y además ya te lo había dicho.

Citarya que mi nivel actual de programación es bajo.
pues si es bajo, lo cual en realidad no es un problema porque estudiando un poco se supera, lo preocupante por lo inexistente es tu nivel de lectura y compresión(ya no tiene solución).

lo que puse como "2)" en el código muestra el valor de las variables aunque es innecesario, no era tan díficil de entender para ver donde está mal lo que hiciste.

CitarQuiero borrar todas las carpetas y archivos contenidos en una carpeta en el escritorio que se llama pepo.

éste código no borra carpetas pero ni loco lo pongo, si total mi nivel de castellano es muy malo.