LISTING 1: BackXP.vbs Option Explicit On Error Resume Next Const BACKUP_FILE_PATH = "@C:\windows\weekly.bks" Const WAIT_ON_RETURN = TRUE Const SHOW_WINDOW = 1 Dim wshShell, strWeekday, strCmd, QUOTE, strParam1 Dim strParam2, strParam3, strParam4, strParam5, strRSMCmd Dim intResult 'BEGIN CALLOUT A Select Case DatePart ("w", Date) Case 1 strWeekday = "Day One" Case 2 strWeekday = "Day Two" Case 3 strWeekday = "Day Three" Case 4 strWeekday = "Day Four" Case 5 strWeekday = "Day Five" Case 6 strWeekday = "Day Six" Case 7 strWeekday = "Day Seven" End Select 'END CALLOUT A QUOTE = CHR(34) strParam1 = " /j " & QUOTE & strWeekday & "--" & NOW & QUOTE strParam2 = " /t " & QUOTE & strWeekday & QUOTE strParam3 = " /n " & QUOTE & strWeekday & QUOTE strParam4 = " /d " & QUOTE & strWeekday & QUOTE strParam5 = " /v:yes /r:no /l:s /m copy /rs:no /hc:on" strCmd = "NTBackup.exe BACKUP " & QUOTE & _ BACKUP_FILE_PATH & QUOTE strCmd = strCmd & strParam1 & strParam2 strCmd = strCmd & strParam3 & strParam4 strCmd = strCmd & strParam5 strRSMCmd = "RSM.EXE eject /pf" & QUOTE & strWeekday & _ QUOTE & " /astart" 'BEGIN CALLOUT B Set wshShell = WScript.CreateObject("WScript.Shell") intResult = wshShell.Run ("cmd.exe /c " & strCmd , _ SHOW_WINDOW , WAIT_ON_RETURN) If intResult = 0 Then intResult = wshShell.Run ("cmd.exe /c " & _ strRSMCmd , SHOW_WINDOW , WAIT_ON_RETURN) End If 'END CALLOUT B