我有一个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)
但这也没有奏效.
试试这个:
p.StartInfo.Arguments = "\"" + arg[0] + " " + arg[1] + " " + arg[2] + "\"";
p.Start();
Run Code Online (Sandbox Code Playgroud)
建议在间隙之间使用多个参数时使用"".
编辑:如果您输入正确,则不必包含"\".这是逃脱的角色.见下图.
