使用c#将多个参数传递给外部exe程序时出现问题

azm*_*hak 0 c#

我有一个exe文件,我试图通过c#传递参数.代码如下

class Class1
{
    static void Main()
    {
        string[] arg;
        arg = new string[3];
        Process p = new Process();

        p.StartInfo.FileName = @"D:\xxx.exe";
        for (int i = 0; i < 3; i++)
        {
            arg[i]  = Console.ReadLine();
        }

        p.StartInfo.Arguments = arg[0] + " " + arg[1] + " " + arg[2];
        p.Start();
    }
}
Run Code Online (Sandbox Code Playgroud)

我打开一个控制台,然后在那里写出参数.只要我打完3个参数,我做一个串出的3个参数,然后调用Process.Start()与在参数p.StartInfo.Arguments字符串.exe文件加载但不生成任何输出.奇怪的是,如果我从我的电脑打开exe文件然后写

Arg1.txt Arg2.txt Arg3.txt

并按下输入exe文件生成输出.但是,相同样式的相同参数当前正在通过C#代码传递,并且它不会生成任何输出.我不明白我做错了什么.关于这一点,StackOverflow有很多问题,我知道,但是他们都提出了与我在这里所做的相同的程序.我也试过给出论点

p.StartInfo.Arguments = "\"arg[0]\"\"arg[1]\"\"arg[2]\"";
Run Code Online (Sandbox Code Playgroud)

但这也没有奏效.

Car*_*ras 6

试试这个:

p.StartInfo.Arguments = "\"" + arg[0] + " " + arg[1] + " " + arg[2] + "\"";
p.Start();
Run Code Online (Sandbox Code Playgroud)

建议在间隙之间使用多个参数时使用"".

编辑:如果您输入正确,则不必包含"\".这是逃脱的角色.见下图.

在此输入图像描述