簡體   English   中英

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

[英]How to operate command prompt using c#?

我創建了一個“hello.py”文件並將其放在與我的 c#.exe 相同的目錄中
我通過 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();
        }

    }
}

但是當我運行它時,output 出來了

微軟 Windows [版本 10.0.19041.685]
(c) 2020 年微軟公司。 版權所有。

C:\... \Debug>python hello.py
你好世界

C:\...\調試>

但我特別需要“hello world”部分
那么有什么方法可以只讀取執行的部分,因為我不想每次運行其他東西時都對字符串進行排序,

還有什么方法可以通過 c# 輸入到 cmd 中?
例如,如果我制作了一個輸入 2 個數字然后打印它們的總和的 calc.py?

筆記
我的目的不是整合python和c#,我只是以.py為例
所以請提供適用於.exe或任何命令提示符可執行文件的解決方案

嘗試設置

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

而不是使用 StandardInput 傳遞您的命令。

這相當於輸入

cmd /c python hello.py

在命令提示符下,而不是鍵入:

cmd

其次是

python hello.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM