*.bat ファイルに次のスクリプトがあります。
@ECHO OFF
ECHO Backup database
ECHO %date%%time%
"C:\Program Files\Microsoft SQL Server\90\Tools\binn\OSQL.EXE" -S 127.0.0.1 -U accellos -P accellos -Q "BACKUP DATABASE [BCS_DC] TO DISK = N'E:\backups\BCS_DC.bak' WITH NOFORMAT, NOINIT, NAME = N'BCS_DC full backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10" -o "E:\backups\report_BCS_DC.out"
ECHO Compressing...
"C:\Program Files\WinRAR\Rar.exe" a "E:\backups\BCS_DC.rar" -o+ "E:\backups\BCS_DC.bak"
IF NOT EXIST E:\backups\BCS_DC.rar GOTO END
ECHO Deleting obsolete file
del E:\backups\BCS_DC.bak
for /f "tokens=1-9 delims=.: " %d in ("%date%%time%") do ren E:\backups\BCS_DC.rar BCS_DC_%e_%f_%g_%i_%j.rar
ECHO Done.
:END
sleep 20
スクリプトはスケジュールされたタスクによって毎日実行され、特定の DB のバックアップを作成し、それを WinRAR で圧縮し、その後、現在の日付に一致するようにファイルの名前を変更する必要があります。
残念ながら、Windows Server 2008 ではうまく動作しません。Server 2003 では魅力的に動作しますが、2008 ではコマンド行がないため、ファイルの名前変更をスキップします。
このマシンには別の *.bat ファイルがありますが、これは動作しませんが、2003 では問題なく動作します。どこで間違いを犯していますか?