@Echo Off Setlocal EnableExtensions EnableDelayedExpansion НАЧАЛО КОММЕНТАРИЯ :: Установка переменных окружения. КОНЕЦ КОММЕНТАРИЯ Call SetupVars :: НАЧАЛО МЕТКИ A НАЧАЛО КОММЕНТАРИЯ :: Установка переменных для данного сценария. КОНЕЦ КОММЕНТАРИЯ Set BACKUP=C:NTBackup Set JOBNAME=NTBackup tools Set SETDESC=NTBackup tools [%DTSTAMP%] Set JOBINFO=NTBackup job ?%JOBNAME%? on %COMPUTERNAME% Set OPTIONS=/hc:on /l:s /m normal /r:yes /v:no Set LOGFILE=%~dpn0.log :: КОНЕЦ МЕТКИ A Set RC=0 НАЧАЛО КОММЕНТАРИЯ :: Проверка содержимого носителя. КОНЕЦ КОММЕНТАРИЯ Call Refresh > «%LOGFILE%» НАЧАЛО КОММЕНТАРИЯ :: Проверка наличия ленты. КОНЕЦ КОММЕНТАРИЯ Call PhysicalMedia > nul If %ERRORLEVEL% NEQ 0 (Set RC=%ERR_PHYSICAL_MEDIA% Call :DIE «%JOBINFO% aborted: Media not detected (!RC!)» Goto :КОНЕЦ) НАЧАЛО КОММЕНТАРИЯ :: Определение метки ленты. КОНЕЦ КОММЕНТАРИЯ Set MEDIANAME= For /f «delims=» %%n in (?MediaName /b?) Do Set MEDIANAME=%%n If Not Defined MEDIANAME (Set RC=%ERR_PARTITION% Call :DIE «%JOBINFO% aborted: Unable to determine media name (!RC!)» Goto :КОНЕЦ) Echo Media name: %MEDIANAME% >> «%LOGFILE%» НАЧАЛО КОММЕНТАРИЯ :: Определения GUID текущей ленты. КОНЕЦ КОММЕНТАРИЯ Set MEDIAGUID= For /f %%g in (?MediaGUID /b?) Do Set MEDIAGUID=%%g If Not Defined MEDIAGUID (Set RC=%ERR_LOGICAL_MEDIA% Call :DIE «%JOBINFO% aborted: Unable to determine media GUID (!RC!)» Goto :КОНЕЦ) Echo Media GUID: %MEDIAGUID% >> «%LOGFILE%» :: НАЧАЛО МЕТКИ B Set COMMAND=NTBackup backup %BACKUP% /j «%JOBNAME%» /d «%SETDESC%» /g %MEDIAGUID% /n «%MEDIANAME%» %OPTIONS% :: КОНЕЦ МЕТКИ B Echo NTBackup command line: >> «%LOGFILE%» Echo %COMMAND% >> «%LOGFILE%» %COMMAND% Set RC=%ERRORLEVEL% Echo NTBackup exit code: %RC% >> «%LOGFILE%» :: НАЧАЛО МЕТКИ C If /i «%EJECT%»==»YES» Call Eject >> «%LOGFILE%» If /i «%MAILLOG%»==»YES» Call MailLog «%JOBINFO% [%DTSTAMP%] (%RC%)» If /i «%PRINTLOG%»==»YES» Call PrintLog :: КОНЕЦ МЕТКИ C Goto :КОНЕЦ :: НАЧАЛО МЕТКИ D :DIE Setlocal Set ERRORMSG=%~1 Echo %ERRORMSG% > «%NTBACKUP_DATA%error.log» Echo %ERRORMSG% >> «%LOGFILE%» If /i «%MAILLOG%»==»YES» call MailLog «%ERRORMSG%» If /i «%PRINTLOG%»==»YES» call PrintLog Endlocal & Goto :EOF :: КОНЕЦ МЕТКИ D :КОНЕЦ Endlocal & Exit /b %RC%