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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Crear y Eliminar fichero txt en el mismo script
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear y Eliminar fichero txt en el mismo script  (Leído 3,685 veces)
palophp

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Crear y Eliminar fichero txt en el mismo script
« en: 17 Octubre 2016, 20:29 pm »

Hola.
He creado un script para realizar una consulta LDAP para obtener todos los equipos y me los escribe en un fichero txt.
Luego voy recorriendo equipo por equipo para ver si hace ping. Aquellos que me hace ping los escribo en otro txt.
Ahora lo que quiero es borrar el fichero txt del principio donde he guardado la consulta al Directorio Activo pero no lo consigo.

He probado a borrar ficheros y si que lo consigo, pero no cuando los creo y elimino en el mismo script.
 
Set fso = CreateObject("Scripting.FileSystemObject")
... y todo el codigo
y al finalizar pongo:
fso.DeleteFile "C:\rutaDelFichero.txt"

Y no me lo borra, me lo sigue manteniendo....


En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #1 en: 18 Octubre 2016, 20:47 pm »

Hazlo  así
Código
  1. Set delFile = fso.GetFile(FileName)
  2. delFile.Delete


ejemplo
Código
  1. Dim FilenName As String
  2. Dim fso As Object
  3. Dim MyFile As Object
  4. Dim delFile As Object
  5. FileName = "D:\testfile.txt"
  6.  
  7. Set fso = CreateObject("Scripting.FileSystemObject")
  8. Set MyFile = fso.CreateTextFile("D:\testfile.txt", True)
  9. MyFile.WriteLine "Hello world!"
  10. MyFile.Close
  11.  
  12.  
  13. Set delFile = fso.GetFile(FileName)
  14. delFile.Delete


En línea

palophp

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #2 en: 18 Octubre 2016, 21:43 pm »

Hola, muchísimas gracias por tu aportación. Lo he probado pero no hay manera.
Seguro que mi codigo tiene muchos errores, porque estoy iniciándome.
Te pongo mi código por si lo pudieras mirar:

Código
  1. '------------------------SCRIPT APAGADO EQUIPOS
  2. Dim FicheroOriginal
  3. Dim objFSO_Lista_Equipos_LDAP
  4. Dim objLista_Equipos
  5. Dim delFile
  6. FicheroOriginal = "C:\Users\toshiba\Desktop\apagadoEquipos.txt"
  7.  
  8. Set objFSO_Lista_Equipos_LDAP=CreateObject("Scripting.FileSystemObject")
  9.  
  10. '-----------------------CONSULTA LDAP PARA OBTENER LOS NOMBRES DE LOS EQUIPOS
  11.  
  12. 'Comprobación de la existencia del Fichero
  13. If  objFSO_Lista_Equipos_LDAP.FileExists (FicheroOriginal) Then
  14. Set objLista_Equipos = objFSO_Lista_Equipos_LDAP.CreateTextFile (FicheroOriginal) ' Se machaca automaticamente cada vez
  15. Else
  16. Set objLista_Equipos = objFSO_Lista_Equipos_LDAP.CreateTextFile (FicheroOriginal) ' Creación del Fichero
  17. End If
  18.  
  19. On Error Resume Next
  20. 'Conectar con LDAP como administrador
  21. Set objComp = GetObject("LDAP:")
  22.  
  23. 'Validación en el Directorio Activo
  24. Set ou = objComp.OpenDSObject("LDAP://palo.age/OU=Domain Controllers, DC=palo,DC=age", "toshiba", "I2016", 1)
  25.  
  26. 'Bucle para obtener todos los Equipos de Sanidad e irlos escribiendo en el fichero
  27. For Each obj In ou
  28. objLista_Equipos.WriteLine (obj.cn)
  29. Next
  30.  
  31. '-------------------------COMPROBACION DEL PING A LOS EQUIPOS
  32.  
  33. Function responde_al_ping (StrEquipo)
  34.  
  35. strComputer = "."
  36.  
  37. 'Variable para obtener los permisos remotamente = admin
  38. Set objWMIService = GetObject("winmgmts:" _
  39.    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  40.  
  41. 'Variable Ping Equipos
  42. Set pingEquipos = objWMIService.ExecQuery _
  43.    ("Select * from Win32_PingStatus Where Address = '" & StrEquipo &".palo.age" & "'")
  44.  
  45. For Each objComputer in pingEquipos
  46.    If objComputer.StatusCode = 0 Then
  47.  
  48.    responde_al_ping = True
  49.    Else
  50.  
  51.    responde_al_ping = false
  52.   End If
  53. Next
  54.  
  55. End Function
  56.  
  57. Const ForReading = 1, ForWriting = 2
  58. Dim TabStop, NewLine
  59. TabStop = Chr(9)
  60. NewLine = Chr(10)
  61.  
  62. 'Variable Fecha
  63. MyDate = Replace(Date, "/", "-")
  64.  
  65. Set objFichero_Log = CreateObject("Scripting.FileSystemObject")
  66. Set objConsulta_PING = objFSO_Lista_Equipos_LDAP.OpenTextFile("C:\Users\toshiba\Desktop\apagadoEquipos.txt", ForReading)
  67. Set objConsulta_PING2 = objFichero_Log.OpenTextFile("C:\Users\toshiba\Desktop\" & mydate & "_Log.txt", ForWriting, True)
  68. Do Until objConsulta_PING.AtEndOfStream
  69. StrEquipo = objConsulta_PING.ReadLine
  70.  
  71. If responde_al_ping(StrEquipo) then
  72. 'Fichero Log que almacena los Equipos que se van apagando
  73. For Each obj In ou
  74. objConsulta_PING2.WriteLine (StrEquipo & TabStop & obj.managedby & " " & "Hace PING")
  75. Next
  76.  
  77. 'Establecemos control de errores
  78. On Error Resume Next
  79.  
  80. 'Variable para obtener los permisos remotamente = admin
  81.    Set objWMIService = GetObject("winmgmts:" _
  82. & "{impersonationLevel=impersonate,(Shutdown)}!\\" & StrEquipo &".palo.age" & "\root\cimv2")
  83.  
  84. Set colOperatingSystems = objWMIService.ExecQuery _
  85. ("Select * from Win32_OperatingSystem")
  86.    For Each objOperatingSystem in colOperatingSystems
  87.        ObjOperatingSystem.Win32Shutdown(1)
  88. Next
  89.  
  90. else
  91.    objConsulta_PING2.WriteLine StrEquipo & TabStop & " No se ha podido apagar"
  92. end if
  93. Loop
  94.  
  95. 'Borrar Fichero con todos los EQUIPOS
  96. Set delFile = objFSO_Lista_Equipos_LDAP.GetFile(FicheroOriginal)
  97. delFile.Delete
  98.  
  99.  
« Última modificación: 18 Octubre 2016, 21:45 pm por palophp » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #3 en: 18 Octubre 2016, 21:53 pm »

Te has fijado que he puesto:
Código:
MyFile.Close

Sin no cierras el archivo no lo podrás borrar

Código
  1. objLista_Equipos.Close
  2. Set delFile = objFSO_Lista_Equipos_LDAP.GetFile(FicheroOriginal)
  3. delFile.Delete
  4.  
En línea

palophp

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #4 en: 18 Octubre 2016, 22:02 pm »

Lo acabo de añadir y sigue igual...
He probado tu codigo aparte y si que me funciona, pero modificando el mio y añadiendo lo
tuyo nada de nada  :(
En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #5 en: 18 Octubre 2016, 22:06 pm »

quizás sea por el bucle Do/Loop,  quítalo momentáneamente y dale al código a ver si te lo borra




Yo te he puesto
Citar
objLista_Equipos.Close

Porque no me había fijado que tienes mezclado tres partes de código.  objLista_Equipos lo tienes declarado en otra parte. Que lio.

sería

Código:
objConsulta_PING.Close
Set delFile = objFSO_Lista_Equipos_LDAP.GetFile(FicheroOriginal)
delFile.Delete
« Última modificación: 18 Octubre 2016, 22:26 pm por okik » En línea

palophp

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #6 en: 18 Octubre 2016, 22:23 pm »

Que va, he quitado el bucle y sigue igual.
Voy a mirarlo de nuevo, pero me lo he mirado mil veces y no hay manera.
Muchas gracias por tu ayuda.
En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #7 en: 18 Octubre 2016, 22:29 pm »

Que va, he quitado el bucle y sigue igual.
Voy a mirarlo de nuevo, pero me lo he mirado mil veces y no hay manera.
Muchas gracias por tu ayuda.

Estaba editando mientras respondias mira

el archivo lo abres con el objeto objConsulta_PING ..>  "Set objConsulta_PING = objFSO_Lista_Equipos_LDAP.OpenTextFile..· y para cerrarlo pus debes usar Close con ese objeto.


objConsulta_PING.Close
Set delFile = objFSO_Lista_Equipos_LDAP.GetFile(FicheroOriginal)
delFile.Delete
En línea

palophp

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Crear y Eliminar fichero txt en el mismo script
« Respuesta #8 en: 18 Octubre 2016, 22:32 pm »

Diooooooooos!! Muchisimas gracias! :D :D :D
Ahora sí, se me había olvidado cerrar ese fichero.
Ahora solo me falta lo del CN jaajajjaja
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
comparar y eliminar datos de un fichero
PHP
Roc668 1 3,303 Último mensaje 13 Diciembre 2009, 17:43 pm
por Maox
Eliminar una BD existente y volverla a crear con script sql server
Bases de Datos
Aikanáro Anário 4 5,206 Último mensaje 10 Febrero 2012, 00:55 am
por Aikanáro Anário
Crear un script partiendo de fichero cvs windows server 2008
Windows
betto92 1 3,924 Último mensaje 23 Octubre 2013, 01:29 am
por ccrunch
Eliminar una linea concreta de un fichero
Programación C/C++
mester 2 2,025 Último mensaje 10 Noviembre 2015, 00:13 am
por mester
Bat o fichero que ejecute a un día y a una hora un exe u el mismo bat
Dudas Generales
Rnovatis 1 1,913 Último mensaje 27 Marzo 2017, 13:51 pm
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines