Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: danny920825 en 7 Febrero 2013, 22:51 pm



Título: [AYUDA][VBS] Duda sobre la copia y renombrado automatico de archivos
Publicado por: danny920825 en 7 Febrero 2013, 22:51 pm
Hola gente, me disculpan si este tema se trato en otro post, pero es que el tema de scripting tiene demasiadas paginas y ponerme a buscar en cada una de ellas me demoraria mas de lo que seria si alguien me ayudara y despues cerraran el tema.

Weno, a lo que iba, resulta que estoy aprendiendo vbs gracias a los post que han ido dejando en este foro, gracias por adelantado, y ahora se me ocurrio la idea de hacer un script que cuando lo ejecute, copie la informacion de una tarjeta Compact Flash para la carpeta de mi turno de trabajo, pero que no la copie asi mismo, sino que la renombre al terminar con un nombre que yo le de al terminar la copia
Ej:
Copiar de G:\kijo.log a d:\danny\07-02\nombre-especificoa

yo estaba pensando en algo asi como

Código:
set objfso = createobject("scripting.filesystemobject")
   if exist ("d:\danny\07-02") then
     objfso.copyfile ("F:\kijo.log", "d:\danny\07-02\", false)
     chapa = inputbox("Escriba la chapa del Vehiculo")
     objfso.renamefile ("d:\danny\07-02\kijo.log", chapa)
     msgbox ("Se ha copiado el archivo.")
   else
     set carpeta = objfso.createfolder ("d:\danny\07-02")
     objfso.copyfile ("F:\kijo.log", "d:\danny\07-02\")
     chapa = inputbox("Escriba la chapa del Vehiculo")
     objfso.renamefile ("d:\danny\07-02\kijo.log", chapa)
     msgbox ("Se ha copiado el archivo despues de crear la carpeta.")
exit

pero por supuesto, si lo pongo aki es xq no me funciona verdad?? por tanto si alguien pudiera ayudarme lo agradeceria.


Título: Re: [AYUDA][VBS] Duda sobre la copia y renombrado automatico de archivos
Publicado por: Eleкtro en 7 Febrero 2013, 23:15 pm
1. ¿Es totálmente necesario que séa en VBS?

2. Como sugerencia, si lo que siempre vas a querer copiar es el directorio raíz del dispositivo USB, entonces yo me ahorraría la parte de abrir un user-prompt para preguntar por el directorio,
en lugar de eso, le pondría una etiqueta (label) al dispositivo y usaria el script para que reconociese el dispositivo que quieres copiar automáticamente leyendo el label de dicha unidad, obviamente el label que le deberías dar al USB debería de ser el mismo que va a usar tu script.

Pseudocode rápido:

Código:
(dim) declarar "variable label" = "test"
(dim) declarar "variable directorio" = "C:\carpeta\"

(for) por cada "unidad" en "unidades conectadas"
    (if) si "unidad" es "usb" (and) y el label de "unidad" es igual a "variable label":
         copiar el directorio raíz de "unidad" a "variable directorio"
    (else) de lo contrario:
         (next) siguiente "unidad"

Saludos.


Título: Re: [AYUDA][VBS] Duda sobre la copia y renombrado automatico de archivos
Publicado por: danny920825 en 19 Septiembre 2013, 22:34 pm
gracias por el intento de ayuda, comprendi la idea, pero mis conocimientos de vbs lamentablemente no me dan para tanto, aunke espero ir mejorando, es que soy algo inconstante en esto de ser autodiacta y no me mantengo mucho tiempo estudiando. La cuestion y a la vez el pollo del arroz con pollo es como renombrar un archivo en vbs? porque yo puedo buscar por la red, pero me demoro mucho porque estoy en cuba y mi conexion es pesima, imaginate que la descarga es de 9kb/s, por eso prefiero preguntar a buscar eternamente. Si me pueden ayudar, lo agradezco desde ahora, lo que necesito saber es como renombrar un archivo y como saber cuando tengo un dispositivo usb nuevo conectado, asi puedo completar el trabajo que trato de hacer. gracias


Título: Re: [AYUDA][VBS] Duda sobre la copia y renombrado automatico de archivos
Publicado por: Eleкtro en 20 Septiembre 2013, 05:52 am
· Como renombrar un archivo:

Código
  1. File   = "C:\Archivo.txt"
  2. Rename = "C:\Archivo Renombrado.txt"
  3.  
  4. Set FSO = CreateObject("Scripting.FileSystemObject") ' Creo el objeto
  5.  
  6. If FSO.FileExists(File) Then ' Si el archivo existe...
  7.    FSO.MoveFile File, Rename ' Renombro el archivo
  8.    wscript.Quit(0) ' Y termino la ejecución con código de error negativo.
  9. Else ' De lo contrario...
  10. Wscript.Echo "Archivo no encontrado" ' Muestro error
  11. wscript.Quit(1) ' Y termino la ejecución con código de error positivo.
  12. End If
  13.  
  14. ' NOTA: Para renombrar un archivo, hay que moverlo a la misma localización de directorio pero especificando un nombre distinto para el archivo.
  15. '       Aunque quizás no lo aprezca, esto es lo mismo que hace Windows de forma interna.
  16.  


· Como monitorizar la inserción de dispositivos USB (No lo he testeado en profundidad)

Código
  1. Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
  2.  
  3. Set wmiEvent = objWMIService.ExecNotificationQuery( _
  4.    "Select * From __InstanceCreationEvent Within 1" & _
  5.        " Where TargetInstance ISA 'Win32_PnPEntity'")
  6.  
  7. While True
  8.    Set objEvent = wmiEvent.NextEvent()
  9.    Set objUSB = objEvent.TargetInstance
  10.    strName = objUSB.Name
  11.    strDeviceID = objUSB.DeviceID
  12.    Set objUSB = Nothing
  13.  
  14.    Set colDrives = objWMIService.ExecQuery( _
  15.        "Select * From Win32_LogicalDisk Where DriveType = 2")
  16.  
  17.    For Each objDrive in colDrives
  18.        strDriveLetter = objDrive.DeviceID
  19.    Next
  20.  
  21.    Set colDrives = Nothing
  22.  
  23.    WScript.Echo strName & " was mounted as " & strDriveLetter
  24. Wend
  25.  
  26. Set wmiEvent = Nothing
  27. Set objWMIService = Nothing


Título: Re: [AYUDA][VBS] Duda sobre la copia y renombrado automatico de archivos
Publicado por: danny920825 en 13 Octubre 2013, 22:10 pm
un millon de gracias por ambos codigos, ahora mismo me propongo a estudiarlos para aprender que es lo que hace y que no sea solo algo mecanico. Cualkier otra duda se que aki encontrare la respuesta