Muchas veces nos hemos preguntado cómo automatizar las tareas de grabación en CD o cómo hacer que la herramienta de copia de seguridad nativa de WinXP, NTBACKUP, vuelque nuestras copias a un CD. Pues bien, con este tip vamos a poder automatizar esta tarea pudiendo copiar nuestros archivos en cualquier carpeta de nuestra elección para posteriormente grabarlo a un CD sin necesidad de interactuar para nada con el Asistente de Grabación de CD nativo de Windows XP.

El script que expongo a continuación únicamente requiere modificar tres variables

  • MyCDRW que corresponde a la letra de la unidad de nuestra grabadora
  • MySource que corresponde al directorio o ruta completa de la carpeta a grabar. Debemos especificar la ruta exacta y esta debe existir en nuestro PC. El script está preparado para incluir las subcarpetas o subdirectorios que se encuentren en esa ruta
  • MyCDNAME, el nombre que le queramos poner a nuestra grabación, el script agrega la fecha de nuestra copia automáticamente al CD

Para ejecutar el script únicamente se requiere que copiéis todo el texto en color rojo que va  entre líneas y pegarlo en el bloc de notas, a continuación lo guardáis con un nombre de vuestra elección y extensión VBS. Para ejecutarlo sólo tenéis que hacer doble click sobre el mismo.

 


 

Option Explicit

Dim MyCDRW, MySource, MyCDNAME, MyDateCode, MyTarget

Dim oShell, oApp, oFolder, vbShort

' Cambia estas tres variables acorde a las especificaciones de tu sistema

MyCDRW = "G:\"</span></p> <p class="MsoNormal" style="font-family: courier new,courier,monospace; color: #ff0000;">MySource = "E:\Documents and Settings\fermu.MAQUINA.000\Mis documentos\2005"

MyCDName = "MyDocs"

' A partir de aqui mejor no tocar nada

Set oShell = WScript.CreateObject("WScript.Shell")

Set oApp = CreateObject("Shell.Application")

 
MyTarget = oShell.regread _
("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\CD Burning")

Set oFolder = oApp.Namespace(MySource)

oApp.Namespace(MyTarget).CopyHere oFolder.Items

oApp.NameSpace(&H11).ParseName(MyCDRW).InvokeVerbEx _
"Grabar estos arc&hivos en un CD"

Do until oShell.appactivate("Asistente para grabación de CD")

wscript.sleep 500

Loop

MyDateCode = mid(formatDateTime(Date, vbshort),9,2) & _
mid(formatDateTime(Date, vbshort),4,2) & _
left(formatDateTime(Date,vbshort),2)

oShell.appactivate("Asistente para grabación de CD")  

oShell.SendKeys MyCDName & " " & MyDateCode

oShell.appactivate("Asistente para grabación de CD")

oShell.SendKeys "{Enter}"

Do until Not oShell.appactivate("Asistente para grabación de CD")

wscript.sleep 500

Loop

Set oApp = Nothing

Set oFolder = Nothing

Set oShell = Nothing



Obviamente podemos agregar la ejecución del script a las tareas programadas para llevar a cabo el proceso en el momento en el que nosotros deseemos. Eso es todo, ya sabeis que estaremos encantados de responder cualquier duda que tengáis sobre el presente artículo en nuestro foro.

--
Fernando Muñoz
MS MVP Windows Shell / User