首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows批处理文件中将日期附加到文件名

在Windows批处理文件中将日期附加到文件名
EN

Stack Overflow用户
提问于 2014-10-28 01:03:06
回答 2查看 2K关注 0票数 2

我有一个批处理文件,它备份我的SQL数据库,并希望将日期附加到创建的文件的末尾。

sqlcmd -U sa -P pwd -S SERVER\sa 2012 -Q“将数据库MYDB备份到磁盘=N‘e:\-Q\MYDB.bak’具有NOFORMAT、NOINIT、NAME =N‘MYDB-全数据库备份’、SKIP、NOREWIND、NOUNLOAD、STATS = 10”-d "MYDB“

目前,我的所有备份都被添加到MYDB.bak文件中,但是我希望每个备份都有新的文件名,比如MYDB20141028.bak。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-28 01:36:16

如果要执行SQL中附加的日期,可以选择传递以下多个命令:

sqlcmd -U sa -P pwd -S -Q \sa 2012-Q“宣布@DECLARE(Max);SET @dest =N‘e:\dest\ MYDB’+dest(varchar(8),GETDATE(),112) +‘..bak’;用NOFORMAT、NOINIT、NAME =N‘MYDB-全数据库备份’将数据库MYDB备份到磁盘= @dest‘,跳过、NOREWIND、NOUNLOAD、STATS = 10”-d "MYDB“

票数 3
EN

Stack Overflow用户

发布于 2014-10-28 01:31:38

您可以通过解析date命令的输出获得当前日期。

如果你的语言环境是美国英语的话,下面的内容就可以了。

代码语言:javascript
复制
for /f "tokens=2,3,4 delims=/ " %%i in ('date /t') do set DATE=%%k%%i%%j

它将接受date /t的输出并重新安排它。分隔符设置为正斜杠和空格。然后取记号2,3,4并按4,2,3顺序输出。

因此,它将接受Mon 10/27/2014并将其拆分为令牌:

  1. 监视器
  2. 10
  3. 27
  4. 2014年

并将DATE变量设置为20141027

这样,您可以将我们的备份命令更改为:

代码语言:javascript
复制
sqlcmd -U sa -P pwd -S SERVER\SQL2012 -Q "BACKUP DATABASE [MYDB] TO DISK = 
N'E:\Databases\MYDB%DATE%.bak' WITH NOFORMAT, NOINIT, NAME = N'MYDB-Full Database Backup', SKIP,
NOREWIND, NOUNLOAD, STATS = 10" -d "MYDB"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26599310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档