mysql-使用参数执行批处理文件

提问

我正在一个需要我使用窗口任务计划程序执行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)

最佳答案

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

在重定向的情况下,< input>是Stdin重定向的简写形式,并且Stdin的数目是零,因此实际的重定向是0< input.对于> output也发生相同的情况,即作为1> output回显. cmd.exe还会从原始代码中删除多个空格,并插入所需的空格,以便清楚地显示已执行的命令.

如果您不希望看到这些命令,只需在批处理文件的开头插入@echo off命令.

评论