使用参数执行批处理文件

时间:2014-06-03 07:21:54

标签: mysql windows batch-file

我正在开发一个项目,要求我使用窗口任务调度程序来执行mysql查询,这是批处理文件的内容:

mysql -ufoo -pbar -D %1 < %2

当我通过cmd测试批处理文件时:

task_sheduler.bat dbName pathToSqlFile

我明白了:

mysql -ufoo -pbar -D dbName  0<pathToSqlFile

我只是想说正在工作,我的问题是额外空间和0,它们来自哪里?

  • 额外空间介于dbName和0
  • 之间
  • 我使用的是Windows 7 Ultimate Service Pack 1(x64)

2 个答案:

答案 0 :(得分:3)

我假设您的批处理文件没有@echo off命令,因此您可以参考执行批处理文件时显示在屏幕上的命令的回显。这些命令的显示通常包括cmd.exe插入的其他字符,以准确显示已执行的命令。

在重定向的情况下,<input Stdin重定向的简短形式,并且Stdin的数量为零,因此实际重定向为0<input>output也是如此,它被回复为1>output。 cmd.exe还会从原始代码中删除多个空格并插入所需的空格,以便清楚地显示已执行的命令。

如果您不想看到这些命令扩展,只需在批处理文件的开头插入@echo off命令。

答案 1 :(得分:1)

如果没有提供,

cmd将默认句柄的所有重定向命令作为前缀。句柄定义为here0<file因此意味着我们希望将文件重定向到标准输入。额外的空间可以防止hi.exe<myfile之类的命令被错误地解释为hi.exe0 < myfile