【发布时间】:2013-06-10 20:55:32
【问题描述】:
我在 *.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
脚本每天由计划任务运行,必须备份给定数据库,然后使用 WinRAR 压缩它,然后 - 重命名文件以匹配当前日期。
不幸的是,它在 Windows Server 2008 上不能正常工作。它在 Server 2003 上作为一个魅力,但在 2008 年它跳过文件重命名,因为缺少命令行。
我在这台机器上有另一个 *.bat 文件,它在 2003 年无法运行,但运行良好。我在哪里犯了错误?
【问题讨论】:
-
如果您在这里没有得到答案,请尝试 stackoverflow 的姊妹站点 serverfault。
-
如果您在 Windows 资源管理器中右键单击批处理文件,创建一个快捷方式,然后右键单击该快捷方式并单击属性 => 高级,然后单击兼容性选项卡并告诉它运行作为Windows 2003,它可以工作吗?如果是这样,那可能是一个不错的解决方法。