Visual Basic - Error RUTA en VBSCRIPT

Life is soft - evento anual de software empresarial
   
Vista:

Error RUTA en VBSCRIPT

Publicado por ISIDRO (1 intervención) el 07/09/2010 10:57:03
buenas a todos!!!

he hecho un programilla muy sencillo en vbscript para realizar las copias de seguridad en disco extraible de los diferentes servidores de mi empresa.

La cuestion es que para automatizarlo he puesto que cuando quede poco espacio en disco extraible, busque y borre la carpeta mas antigua antes de iniciar la nueva copia.

La cuestion es que en unos servidores si funciona pero en otros me da error diciendo que no encuentra la ruta.

archivo en cuestion:

**************************
Set fso = CreateObject("Scripting.FileSystemObject")
Set tarea_copiar = WScript.CreateObject("Wscript.Shell")
Set unidad = fso.GetDrive("F:") ' Unidad donde calcula el espacio
Set carpeta_destino = fso.GetFolder("F:\") ' Carpeta destino

Function Espacio_libre(drvpath) ' funcion para mirar el espacio libre
Dim fs, d, espacio

Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(drvpath)

Espacio_libre = FormatNumber((d.FreeSpace/1024)/1024, 0)
End Function

Function CarpetaMasAntigua(drvpath) ' funcion para buscar la carpeta mas antigua
Dim carpeta_leida, listado, carpetas, fecha_mas_antigua, nombre_carpeta
Dim c
c = 0

Set carpetas = drvpath.subfolders

For each carpeta_leida in carpetas
if carpeta_leida.attributes = 16 Then
If c < 1 Then
fecha_mas_antigua = carpeta_leida.DateCreated
nombre_carpeta = carpeta_leida.Name
c = c + 1
Else
If fecha_mas_antigua > carpeta_leida.DateCreated Then
fecha_mas_antigua = carpeta_leida.DateCreated
nombre_carpeta = carpeta_leida.Name
End If
c = c + 1
End If
End If
Next
CarpetaMasAntigua = nombre_carpeta
End Function

' Ruta de la carpeta mas antigua que tendra que eliminar si es necesario
Set carpeta_borrar = fso.GetFolder(carpeta_destino & "\" & CarpetaMasAntigua(carpeta_destino))

' Si hay mas de 50Gb solo copiara, sino elimina la carpeta mas antigua e inicia la copia
If Espacio_libre(unidad) > 50000 Then
tarea_copiar.Run "C:\copiaDATOS.bat"
Else
carpeta_borrar.Delete
tarea_copiar.Run "C:\copiaDATOS.bat"
End If
***************************************************

La cuestion es que la linea carpeta_borrar.Delete me da un error:
Error: Ruta no encontrada
Codigo: 800A004C
Error en tiempo de ejecucion......

Ya he mirado el tema de permisos, incluso si hago un msgbox antes de carpeta_borrar me muestra la ruta correctamente y si la pego en explorer me habre la carpeta en cuestion.

He probado tambien con fso.DeleteFolder carpeta_borrar, True, pero hace lo mismo.

Agradeceria una respuesta de ayuda. MUCHAS GRACIAS.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder