File 批处理文件日期时间

File 批处理文件日期时间,file,batch-file,File,Batch File,我已经写了一个批处理文件。这是我的第一次,所以我还是很烂。它所做的是从unc文件夹路径复制数据库备份文件,并将其粘贴到我的本地计算机上。文件名每晚都会更改,并附加日期时间。 i、 e文件\u备份\u 201306112210.bak 下面是我在下面的批处理文件中写的内容 set datetimef=%date:~-4%%date:~3,2%%date:~0,2% cmd /c echo F | xcopy "\\FileName\S$\DBs\file_backup_%datetimef%*.b

我已经写了一个批处理文件。这是我的第一次,所以我还是很烂。它所做的是从unc文件夹路径复制数据库备份文件,并将其粘贴到我的本地计算机上。文件名每晚都会更改,并附加日期时间。 i、 e文件\u备份\u 201306112210.bak

下面是我在下面的批处理文件中写的内容

set datetimef=%date:~-4%%date:~3,2%%date:~0,2%
cmd /c echo F | xcopy "\\FileName\S$\DBs\file_backup_%datetimef%*.bak" "E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\file_backup.bak"
奇怪的是,它确实时不时地工作,但其他日子却失败了。我尝试手动运行它,但仍然失败


您能告诉我出了什么问题吗?

有点让人困惑,到底什么不起作用,但对于备份文件名中的日期和日期时间,您可以做几件事:

@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%
如果启动批处理时遇到问题,可以检查启动批处理时是否登录。是否从管理服务器启动批处理文件?如果是,您可以检查其配置(编辑:检查运行它的帐户,运行用户是否登录选项,以及运行任务,使用以下用户帐户:Administrator)。如果你有权利的问题,我会推荐你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密码,但我不建议这样做,如果有人获取您的批处理文件,这将是一个安全漏洞。我可以推荐的是WinSCP,它使用脚本运行相同的功能,并从一个目录复制到另一个目录。

试试这个,然后查看日志文件以查看:
A) 如果服务器可访问且
B) 如果存在与filespec匹配的文件

@echo off
set datetimef=%date:~-4%%date:~3,2%%date:~0,2%
echo copying "file_backup_%datetimef%*.bak" on %date% at %time% >>"%userprofile%\desktop\log.txt"
dir "\\FileName\S$\DBs\file_backup_%datetimef%*.bak" >>"%userprofile%\desktop\log.txt" 2>&1

echo f|xcopy "\\FileName\S$\DBs\file_backup_%datetimef%*.bak" "E:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Data\file_backup.bak"

“失败”是什么意思?它是否给出错误消息?如果是,什么?您是否希望每次执行的日期格式都相同?您是否使用相同的帐户执行批处理文件?为什么要执行
cmd/c
-为什么不只执行
echo F|xcopy whatevr
,因为它不会给出错误。任务计划程序表示任务已完成,但未复制。这就是为什么我认为datetimef是不正确的。因为我不认为批处理文件找不到文件,
echo%datetimef%
。好了,伙计们。我真的很蠢。日期格式会发生什么情况昨晚创建了备份,批处理文件正在搜索具有当前日期的文件。因此,有时它会起作用,因为备份有时会在午夜后完成。我只想对你们所有帮助我的人说声谢谢。我真的很感谢大家。谢谢