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