Autor
|
Tema: Borrar carpeta mediante VBS (Leído 5,132 veces)
|
marko0s
Desconectado
Mensajes: 6
|
Buenas tardes, alguin seria tan amable de decirme como borrar con un script *.vbs las carpetas que se me crean en C:\Users\miUsuario\AppData\Local\Tempzxpsign6031c91fa5e36b0dse me crean bastantes y quisiera decirle al script que me borre todas que empiecen por TempzEstoy usando esto pero no funciona y no veo la forma ya que mis conocimientos son limitados de scripting Dim strFolderPath, objFso strFolderPath = "C:\Users\miUsuario\AppData\Local\Temp[b]*[/b]" Set objFso = CreateObject("Scripting.Filesystemobject")
If objFso.FolderExists(strFolderPath) then objFso.DeleteFolder strFolderPath, True End If
Set objFso = Nothing creo que el temp* (asterisco) no funciona como tal gracias y perdonad las molestias
|
|
|
En línea
|
|
|
|
EdePC
|
Saludos, objFso.FolderExists("path\to\folder") no soporta comodines, requiere la ruta exacta de la carpeta ya sea URL Absoluta o Relativa. - Lo más sencillo que veo es utilizar On Error Resume Next para luego verificar si ha habido errores, en este caso el error número 76 corresponde a que no se ha encontrado la ruta o la carpeta no existe, aunque más genérico es mostrar el error en sí. Dim strFolderPath, strUserLocalAppData, objFso Set objShell = CreateObject("Wscript.Shell") Set objFso = CreateObject("Scripting.FileSystemObject") strUserLocalAppData = objShell.ExpandEnvironmentStrings("%LocalAppData%") strFolderPath = strUserLocalAppData & "\Tempz*" On Error Resume Next Call objFso.DeleteFolder(strFolderPath, True) If Err Then WScript.Echo(Err.Description) End If Err.clear
- Si te estás iniciando en VBScript, te podría recomendar este par de libros en español: Visual Basic Script Tomo I (White Darknes): https://openlibra.com/es/book/visual-basic-script
Visual Basic Script Tomo II (White Darknes): https://openlibra.com/es/book/visual-basic-script-parte-2
|
|
|
En línea
|
|
|
|
marko0s
Desconectado
Mensajes: 6
|
Muchisimas gracias por los aportes. Mil gracias. Me ha servido de muchisima ayuda. Los libros me los voy a leer "pero ya". Nueva pregunta. Si esa carpeta no existiera, el script se detendría? o vale on poner:
Dim strFolderPath, strUserLocalAppData, objFso Set objShell = CreateObject("Wscript.Shell") Set objFso = CreateObject("Scripting.FileSystemObject")
strUserLocalAppData = objShell.ExpandEnvironmentStrings("%LocalAppData%") strFolderPath = strUserLocalAppData & "\Tempz*"
On Error Resume Next Call objFso.DeleteFolder(strFolderPath, True) If Err Then objFso.CreateFolder strFolderPath strFolderPath = strUserLocalAppData & "\Tempz01" 'por ejemplo crea una carpeta llamada asi WScript.Echo(Err.Description) End If Err.clear Gracias nota: si si sabes de algun buen curso de scripting que pueda comprar, si es gratuito mejor, encantado de leerte.
|
|
« Última modificación: 26 Marzo 2020, 09:02 am por marko0s »
|
En línea
|
|
|
|
|
marko0s
Desconectado
Mensajes: 6
|
Buenos dias de nuevo, MIL gracias.
2preguntas nuevas
> %localappdata% llama a la carpeta .appdata, ok
¿Cual es el patch para llamar a la carpeta windows o c:\windows.?
esto es porque estoy intentando borrar lo que hay dentro de la carpeta windows/temp y no me deja
> Otra cosa, para borrar la papeleraa me podrias decir tambien el codigo?
Muchisimas gracias por todo de verdad, y perdona por las molestias
|
|
|
En línea
|
|
|
|
Serapis
|
Escribe estas 3 línea de código, y obtendrás tanto el environ-string, como su valor, luego toma lo que precises (y guárdalas para sucesivas ocasiones).... Nota sin embargo que pueden editarse dim k as integer For k = 1 To 31 msgbox CStr(k), Environ$(k) Next
Olvidaba decirte que no uses los números en tu código, la lista puede variar y a cada momento y equipo tener un índice distinto. Ten en cuenta que dichas cadenas se pueden editar/añadir/eliminar desde el 'panel de control'...
|
|
« Última modificación: 2 Abril 2020, 17:59 pm por NEBIRE »
|
En línea
|
|
|
|
marko0s
Desconectado
Mensajes: 6
|
Gracias, pero no lo entiendo muy bien como usar esto.
|
|
|
En línea
|
|
|
|
marko0s
Desconectado
Mensajes: 6
|
Como se garía para borrar los arechivos que hay dentro de C:\Windows\Prefetch Dim strFolderPath, strUserLocalAppData, objFso Set objShell = CreateObject("Wscript.Shell") Set objFso = CreateObject("Scripting.FileSystemObject") strUserLocalAppData = objShell.ExpandEnvironmentStrings("C:\Windows") strFolderPath = strUserLocalAppData & "\Prefetch" 'esto tampoco "\Prefetch\*" On Error Resume Next Call objFso.DeleteFolder(strFolderPath, True) Err.clear no me funciona, perdona por las molestias
|
|
|
En línea
|
|
|
|
Serapis
|
Si quieres borrar una carpeta que no está vacía, antes tienes que borrar todos los ficheros que contenga. Más o menos esto necesitas... ..crear los objetos
con errores continuar folder = ...selecciona la carpeta de tu interés... Por cada fichero en folder.Files fso.DeleteFile(fichero, true) ' <--- forzar su borrado (OJO: con precaución). siguente
si folder.files.count = 0 fso.deleteFolder sino mensaje "oh, oh.. parece que a carpeta contiene algún fichero que no se ha podido borrar... fin si
|
|
« Última modificación: 5 Abril 2020, 20:39 pm por NEBIRE »
|
En línea
|
|
|
|
|
|