elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  VBScript No puedo borrar 2 ficheros intermedios SOLUCIONADO
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: VBScript No puedo borrar 2 ficheros intermedios SOLUCIONADO  (Leído 5,922 veces)
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
VBScript No puedo borrar 2 ficheros intermedios SOLUCIONADO
« en: 24 Octubre 2009, 17:33 pm »

Pues este script me funciona correctamente, hasta que al final quiero borrar ficheros txt creados por el scrip y que al final no me sirven.
Pero me da un error y me dice que:
permission denied
800A0046
Porque no tengo permiso para borrarlo cuando los he creado los he cerrado.

Despues con el mismo codigo pero en un script diferente me los borra sin problemas.


Código
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set ws = CreateObject("WScript.Shell")
  3. Set objShell = CreateObject("Shell.Application")
  4. Set objFolder = objShell.BrowseForFolder(0, "SELECCIONEU EL DIRECTORI ORTOFOTO:", 0, 0)
  5. If objFolder Is Nothing Then
  6. MsgBox("L'aplicacio s'ha cancelat")
  7. Wscript.Quit
  8. End If
  9. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10. 'CREAR UN ARCHIVO txt en donde se encuentran las ortofotos
  11. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  12. Set var = fso.CreateTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", True)
  13. var.writeline(objFolder.self.path)
  14. var.close
  15. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  16. 'crear un txt para despues editarlo
  17. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  18. Set ar = fso.CreateTextFile(objFolder.self.path & "\ortofotos-que-faltan.txt", True)
  19. ar.writeline(objFolder.self.path)
  20. ar.close
  21. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  22. 'leer la ruta donde se encuentran las ortofotos
  23. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  24. Set ar = fso.OpenTextFile(objFolder.self.path & "\variableobjFolder.self.path.txt", 1)
  25. linea=ar.Readline
  26. pos=instrrev(linea,"\")
  27. nlinea=left(linea,pos-1)
  28. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  29. 'crear u txt con todas las ortos del bloque a partir de los ficheros *ferfull
  30. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  31. Set car = fso.GetFolder(nlinea)
  32. Set listadoORTOFOTOS= fso.CreateTextFile(objFolder.self.path & "\llistat-ortofotos.txt", True)
  33. For Each archivo in car.Files
  34. If right(archivo.name,12)="_FerFull.bat" then
  35. listadoORTOFOTOS.writeline (archivo.name)
  36. End If
  37. Next
  38. listadoORTOFOTOS.close
  39. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  40. 'comparar el fichero llistat-ortofotos con las ortos que hay en el directorio ortofoto
  41. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  42. Set var = fso.OpenTextFile(objFolder.self.path & "\llistat-ortofotos.txt", 1)
  43. Do
  44. linea=var.Readline
  45. nombreArchivo=mid(linea,1,7)
  46. FileExists=fso.FileExists (objFolder.self.path& "\" &nombreArchivo& "_S.rf")
  47. if FileExists=FALSE Then
  48. Set arc = fso.GetFile (objFolder.self.path & "\ortofotos-que-faltan.txt")
  49. Set arc = arc.OpenAsTextStream(8)
  50. arc.Writeline nombreArchivo & "_S.rf"
  51. End if
  52. loop until var.AtEndOfStream=True
  53. arc.close
  54. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  55. 'abrir el fichero ortofotos-que-faltan.txt
  56. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  57. msgbox ("Aquestes son les ortofotos que no es tronben al directori indicat")
  58. ws.Run (objFolder.self.path & "\ortofotos-que-faltan.txt")
  59. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  60. 'borara los ficheros intermedios
  61. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  62. fso.DeleteFile objFolder.self.path & "\llistat-ortofotos.txt", True
  63. fso.DeleteFile objFolder.self.path & "\variableobjFolder.self.path.txt", True


Nota del mod: recuerda las etiquetas


« Última modificación: 27 Octubre 2009, 00:35 am por tonilogar » En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: No puedo borrar 2 ficheros intermedios
« Respuesta #1 en: 24 Octubre 2009, 21:30 pm »

Citar
Despues con el mismo codigo pero en un script diferente me los borra sin problemas.
Con este script te funciona o no? quizás es porque el archivo no se cierra a su debido tiempo, y cuando intentas borrarlo da problemas.
Igualmente con el true que le has puesto al delete (para forzarlo) debería de ser suficiente.

Que es lo que intentas hacer exactamente?

Como digo, este es el script que funciona o el otro?

Saludos



« Última modificación: 24 Octubre 2009, 21:32 pm por Novlucker » En línea

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
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: VBScript No puedo borrar 2 ficheros intermedios
« Respuesta #2 en: 24 Octubre 2009, 21:53 pm »

El script lo he modificado con tu ayuda (objfolder.parentfolder.self.path)
Y perdona... parece una cosa muy trivial pero no he logrado encontrar la razón por internet.


Código
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set ws = CreateObject("WScript.Shell")
  3. Set objShell = CreateObject("Shell.Application")
  4. Set objFolder = objShell.BrowseForFolder(0, "SELECCIONEU EL DIRECTORI ORTOFOTO:", 0, 0)
  5. If objFolder Is Nothing Then
  6. MsgBox("L'aplicacio s'ha cancelat")
  7. Wscript.Quit
  8. End If
  9. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10. 'CREAR UN ARCHIU TXT PER DESPRES EDITARLO Y APUNTAR LES ORTOS QUE FALTEN PER GENERAR.
  11. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  12. Set ar = fso.CreateTextFile(objFolder.self.path & "\ortofotos-que-faltan.txt", True)
  13. ar.writeline(objFolder.self.path)
  14. ar.close
  15. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  16. 'CREAR UN ARCHIU TXT AMB TOTES LES ORTOFOTOS DEL BLOC A PARTIR DELS FITXERS FERFULL
  17. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  18. Set car = fso.GetFolder(objfolder.parentfolder.self.path)
  19. Set listadoORTOFOTOS= fso.CreateTextFile(objFolder.self.path & "\llistat-ortofotos.txt", True)
  20. For Each archivo in car.Files
  21. If right(archivo.name,12)="_FerFull.bat" then
  22. listadoORTOFOTOS.writeline (archivo.name)
  23. End If
  24. Next
  25. listadoORTOFOTOS.close
  26. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  27. 'COMPARAR EL FITXER llistat-ortofotos.txt AMB LES ORTOS QUE ES TROBEN AL DIRECTORI ORTOFOTO
  28. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  29. Set var = fso.OpenTextFile(objFolder.self.path & "\llistat-ortofotos.txt", 1)
  30. Do
  31. linea=var.Readline
  32. nombreArchivo=mid(linea,1,7)
  33. FileExists=fso.FileExists (objFolder.self.path& "\" &nombreArchivo& "_S.rf")
  34. if FileExists=FALSE Then
  35. Set arc = fso.GetFile (objFolder.self.path & "\ortofotos-que-faltan.txt")
  36. Set arc = arc.OpenAsTextStream(8)
  37. arc.Writeline nombreArchivo & "_S.rf"
  38. End if
  39. loop until var.AtEndOfStream=True
  40. arc.close
  41. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  42. 'OBRE EL FITXER ortofotos-que-faltan.txt
  43. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  44. msgbox ("Aquestes son les ortofotos que no es tronben al directori indicat")
  45. ws.Run (objFolder.self.path & "\ortofotos-que-faltan.txt")
  46. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  47. 'BORRA ELS FITXERS INTERMITJOS
  48. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  49. fso.DeleteFile objFolder.self.path & "\llistat-ortofotos.txt", True


El script me funciona correctamente.
Pero cuando llega al final y tiene que borrar un ficheros txt peta:
 
permission denied
800A0046

cuando me refería a esto:
Después con el mismo código pero en un script diferente me los borra sin problemas.
Quería decir que con este script me lo borra.


Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFile objFolder.self.path & "\llistat-ortofotos.txt", True

Nota del mod: recuerda las etiquetas
« Última modificación: 24 Octubre 2009, 21:57 pm por Novlucker » En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: VBScript No puedo borrar 2 ficheros intermedios
« Respuesta #3 en: 24 Octubre 2009, 22:04 pm »

Se debe a que en el propio script tienes abierto el archivo ...

En esta línea ...
Código
  1. Set var = fso.OpenTextFile(objFolder.self.path & "\llistat-ortofotos.txt", 1)
... la línea 29, cuando lo cierras?  :rolleyes:

Saludos
En línea

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
tonilogar

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: VBScript No puedo borrar 2 ficheros intermedios
« Respuesta #4 en: 24 Octubre 2009, 22:10 pm »

Gracias Novlucker.
Perdona que moleste con estos pequeños errores.
Es que soy novatillo y voy a trompicones.

Y lo dicho si no fuera por ti no acabaría ni un script.

Un saludo
En línea

No porque discrepe de tu opinión intento ofenderte.

Un saludo a todos y gracias por vuestro tiempo.
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: VBScript No puedo borrar 2 ficheros intermedios
« Respuesta #5 en: 24 Octubre 2009, 22:12 pm »

A todos nos tocó comenzar alguna vez no?  ;)

Saludos
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
wifiway intermedios..
Wireless en Linux
Alexson 1 1,445 Último mensaje 2 Abril 2011, 12:58 pm
por ChimoC
La informática destruirá numerosos puestos de trabajo intermedios
Noticias
wolfbcn 0 1,887 Último mensaje 18 Octubre 2011, 17:51 pm
por wolfbcn
[SOLUCIONADO] Ficheros binarios
Programación C/C++
KikoSalinas 1 1,997 Último mensaje 1 Junio 2013, 18:16 pm
por KikoSalinas
Problema borrar ficheros con batch
Scripting
maiksix 1 1,848 Último mensaje 6 Septiembre 2015, 22:51 pm
por Eleкtro
[Solucionado]Error con VBscript que habla « 1 2 »
Scripting
Flamer 19 9,082 Último mensaje 2 Noviembre 2015, 04:47 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines