Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中通过CMD传递python文件读取命令_C#_Python_Visual Studio - Fatal编程技术网

C# 在C中通过CMD传递python文件读取命令

C# 在C中通过CMD传递python文件读取命令,c#,python,visual-studio,C#,Python,Visual Studio,我在通过C发送CMD读取python命令时遇到了问题。实际上,我必须在CMD中打开文件,然后从C开发的GUI向python文件传递几个命令,比如读取db和传递其他约束。下面是我的代码 我试过使用cmd.exe,也试过使用到PYTHON/PYTHON.exe的完整路径,但我无法打开文件,然后发送命令,比如读取db。 在cmd中,我通过打开文件ike python-i saddle.py来实现这一点,但在这里,这个命令不像我尝试的proc.StandardInput.WriteLinepython-

我在通过C发送CMD读取python命令时遇到了问题。实际上,我必须在CMD中打开文件,然后从C开发的GUI向python文件传递几个命令,比如读取db和传递其他约束。下面是我的代码

我试过使用cmd.exe,也试过使用到PYTHON/PYTHON.exe的完整路径,但我无法打开文件,然后发送命令,比如读取db。 在cmd中,我通过打开文件ike python-i saddle.py来实现这一点,但在这里,这个命令不像我尝试的proc.StandardInput.WriteLinepython-i saddle.py那样工作;但系统崩溃了。 我甚至为这个解决方案找到了IronPython,但我不知道这会解决我的问题,因为我不知道如何在文本框中读取它的输出

 private void button5_Click(object sender, EventArgs e)
        {
            ProcessStartInfo psi = new ProcessStartInfo();
            psi.WorkingDirectory = @"E:\..\saddle";
            psi.FileName = "cmd.exe";
            psi.UseShellExecute = false;
            psi.RedirectStandardOutput = true;
            psi.CreateNoWindow = true;
            psi.RedirectStandardInput = true;
            psi.RedirectStandardError = false;
            var proc = Process.Start(psi);

            proc.StandardInput.WriteLine("saddle.py");
           // proc.StandardInput.WriteLine("open_db(['db/generic.xml', 'db/generic-server.xml','db/intel-xeon-2600.xml', 'db/intel-xeon-phi.xml','db/memory.xml', 'db/network.xml', 'db/hdd.xml','db/ssd.xml'])");
            proc.StandardInput.WriteLine("exit");
            string s = proc.StandardOutput.ReadToEnd();
            Output1.Text = s;
        }

您需要这样做才能从C字符串中对cmd运行命令

string command = "python -i saddle.py";
然后

System.Diagnostics.Process.Start("CMD.exe",command);