xxxx当我像这样运行我的DB BAckup文件时:
@echo off
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" -hlocalhost -uroot -pxxxxx --all-databases > "D:\DB backups\AllDBs_%date%.sql"
它工作正常。我添加%time%占位符时,总线不再有效。
@echo off
"C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump" -hlocalhost -uroot -pxxxxx --all-databases > "D:\DB backups\AllDBs_%date%_%time%.sql"
文件名,目录名或卷标语法不正确。
任何人都知道为什么这不起作用?我在互联网上搜索过,但没有发现任何说不应该工作的东西。
答案 0 :(得分:2)
如果你想要一个日期和时间,你最好使用以下方法:
for /f "skip=1" %%x in ('wmic OS GET LocalDateTime') do if not defined LocalDateTime set LocalDateTime=%%x
set MyDate=%LocalDateTime:~0,8%
set MyTime=%LocalDateTime:~8,6%
这保证是已知的格式(即只有没有任何分隔符的数字)。无论您的语言环境设置如何,您绝对不会遇到无效字符的问题。
答案 1 :(得分:0)
在批处理中,%time%
变量包含有效Windows文件名的无效字符。
使用它删除它们并用-
替换无效字符。
%DATE:/=-%%TIME::=-%