有点混淆究竟是什么不起作用,但是对于备份文件名中的日期和日期时间,您可以做几件事:
@ECHO OFF
:: http://blog.g-ball.com/2010/08/26/year-month-day-date-batch-script/
:: Formatting the date into a YYYYMMDD format and setting it to the variable, varTodaysDate
SET varYYYY=%DATE:~10,4%
SET varMM=%DATE:~4,2%
SET varDD=%DATE:~7,2%
SET varTodaysDate=%varYYYY%%varMM%%varDD%
如果您在启动批处理时遇到问题,您可以在启动批处理时检查您是否已登录。您是否从服务器管理启动批处理文件?如果是,您可以检查其配置(编辑:检查您使用哪个帐户运行它,运行用户是否登录选项,然后运行任务,使用以下用户帐户:管理员)。如果您有权利问题,我会向您推荐 CPAU,来自http://www.joeware.net/freetools/tools/cpau/。它将以管理员身份运行批处理,下载并包含它,如下所示:
CPAU.exe -u 1 -p 1 -ex "cmd /c echo F | xcopy "\\FileName\S$\DBs\file_backup_%varTodaysDate%*.bak" "E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\file_backup.bak"" -wait > log.txt 2> ./logerror.txt
如果您从共享驱动器执行 xcopy,则必须替换 CPAU.exe -u username -p password,但我不建议这样做,如果有人获取您的批处理文件,这是一个安全漏洞。我可以推荐的相反,将是带有脚本的 WinSCP,以运行相同的功能并从一个目录复制到另一个目录。