我需要从C#代码调用以下命令:mysql.exe --user = useranme --password = password --database = base <C:\ backups\data.sql
我用:
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = false;
process.StartInfo.FileName = "mysql.exe";
process.StartInfo.Arguments = "--user=useranme --password=password --database=base < C:\backups\data.sql";
process.OutputDataReceived += new DataReceivedEventHandler(delegate(object sender, DataReceivedEventArgs args)
{
Console.WriteLine(args.Data);
});
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
但它不能直接进入命令行.我看到没有执行正确的部分"<C:\ backups\data.sql".
请帮忙.
这是因为在命令提示符下写入<filename会强制shell在程序的标准输入中提交文件c:\ backups\data.sql的内容.在参数中的'<'之后传递部分是不正确的,因为您必须使用文件内容提供可执行文件的stdin.为了执行stdin/stdout重定向,您可以引用此问题:
然后你将data.sql文件的内容推送到stdin流.
| 归档时间: |
|
| 查看次数: |
3733 次 |
| 最近记录: |