提问者:小点点

如何使用C#操作命令提示符?


我已经创建了一个“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或任何命令提示符可执行文件的解决方案


共1个答案

匿名用户

尝试设置

cmd.StartInfo.Arguments = "/c python hello.py"

而不是使用StandardInput传递命令。

这相当于键入

cmd /c python hello.py

在命令提示符下,不要键入:

cmd

接着是

python hello.py