双击时批处理文件不起作用

Batch file don't work when double clicked

我得到了一个批处理文件来执行 mysqldump。代码是这样的:

@echo off
echo Starting Backup of Mysql Database on server 
for /F "tokens=2,3,4 delims=/ " %i in ('date /t') do set myDate=%k%i%j
set bkupfilename=%myDate%.sql
echo Backing up to file: %bkupfilename%
C:\xampp\mysql\bin\mysqldump  --routines -u <user> -p<pwd>  <database> > D:\MYSQL_DAILY_BACKUPS\"<database>%bkupfilename%"

当我在 Win7 的 cmd 控制台上输入批处理文件 运行 时,它无法运行并抱怨:

C:\xampp\mysql\bin>mysqldumpbatch
Starting Backup of Mysql Database on server
kj was unexpected at this time.

但是当我 运行 通过将代码直接复制粘贴到命令提示符时 运行 就好了并生成文件 20152401.sql。有人知道为什么吗?

单个 % 变体只能在命令行中使用。尝试用 %% 替换:

@echo off
echo Starting Backup of Mysql Database on server 
for /F "tokens=2,3,4 delims=/ " %%i in ('date /t') do set myDate=%%k%%i%%j
set bkupfilename=%myDate%.sql
echo Backing up to file: %bkupfilename%
C:\xampp\mysql\bin\mysqldump  --routines -u <user> -p<pwd>  <database> > D:\MYSQL_DAILY_BACKUPS\"<database>%bkupfilename%"

让我知道这是否有效?