我已经创建了一个“hello.py”文件,并将其放在与我的c#.exebr>相同的目录中,我通过c#在命令提示符下运行这个文件,这就是我到目前为止的进展
using System.Diagnostics;
using System;
namespace c_hash_testing
{
class Primary
{
static void run()
{
Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.WriteLine("python hello.py");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
}
static void Main(string[] args)
{
run();
Console.ReadKey();
}
}
}
但当我运行它时,输出结果是
Microsoft Windows[Version 10.0.19041.685BR>(c)2020 Microsoft Corporation。版权所有。
C:\...debug&>Python hello.py
hello world
C:\...debug&>;
但是我特别需要“hello world”部分br>所以有没有办法只读取执行的部分,因为我不想每次运行其他东西时都对字符串进行排序,brbr>还有没有办法可以通过ct?br>输入到cmd中例如,如果我做了一个calc.py,它输入两个数字,然后打印它们的总和?brbr>notebr>我的目标不是集成python和c#,我只是把。py作为一个例子br>所以请提供一个适用于。exe或任何命令提示符可执行文件的解决方案
尝试设置
cmd.StartInfo.Arguments = "/c python hello.py"
而不是使用StandardInput传递命令。
这相当于键入
cmd /c python hello.py
在命令提示符下,不要键入:
cmd
接着是
python hello.py