Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c向外部exe程序传递多个参数时出现问题#_C# - Fatal编程技术网

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

C# 使用c向外部exe程序传递多个参数时出现问题#,c#,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++)

我有一个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();
    }
}
但这也不起作用。

试试这个:

p.StartInfo.Arguments = "\"" + arg[0] + " " + arg[1] + " " + arg[2] + "\"";
p.Start();
在间隙之间使用多个参数时,建议使用“”

编辑:如果键入“确定”,则必须包含“否”。这是逃避角色。见下图

试试这个:

p.StartInfo.Arguments = "\"" + arg[0] + " " + arg[1] + " " + arg[2] + "\"";
p.Start();
在间隙之间使用多个参数时,建议使用“”

编辑:如果键入“确定”,则必须包含“否”。这是逃避角色。见下图



这将不起作用,因为arg[0]、arg[1]和arg[2]是文件名,在它们前面加一个\将引发异常。这些文件与exe文件位于同一目录中file@azmuhak,你不是在写“\”!,\是转义“”的字符,因此可以将其值插入字符串。请阅读这篇关于转义序列的文章:如果我使用“\”+arg[0]+“+arg[1]+”+arg[2]+“\”,那么p.startinfo.argument字符串将返回“\”A01.inp A01.wav A01.sum\”。这是不对的。我更新了我的答案。请写对!如上图所示,这将不起作用,因为arg[0]、arg[1]和arg[2]是文件名,在它们前面加一个\将引发异常。这些文件与exe文件位于同一目录中file@azmuhak,你不是在写“\”!,\是转义“”的字符,因此可以将其值插入字符串。请阅读这篇关于转义序列的文章:如果我使用“\”+arg[0]+“+arg[1]+”+arg[2]+“\”,那么p.startinfo.argument字符串将返回“\”A01.inp A01.wav A01.sum\”。这是不对的。我更新了我的答案。请写对!请参见上面的图片。对不起,谢谢。我已删除该图像。您是否在实际测试中使用了
Arg1.txt Arg2.txt Arg3.txt
?@CarlosLanderas感谢您的时间,但您提出的解决方案不起作用。我将“arg1 arg2 arg3”作为startinfo.arguments提供,但exe文件实际上不会生成输出,因为arg1是文件名,因此它会抛出无效文件名的预期值,这是可以理解的。在shell命令中,将“在文件名前面”作为块用于收集所有参数…如果使用arg1 arg2 arg3,大多数程序将只检测到第一个参数。如果使用“arg1 arg2 arg3”“被认为是一个街区……非常感谢您的帮助。我已经接受了你的回答。可能是我的外部exe有问题。对不起,谢谢。我已删除该图像。您是否在实际测试中使用了
Arg1.txt Arg2.txt Arg3.txt
?@CarlosLanderas感谢您的时间,但您提出的解决方案不起作用。我将“arg1 arg2 arg3”作为startinfo.arguments提供,但exe文件实际上不会生成输出,因为arg1是文件名,因此它会抛出无效文件名的预期值,这是可以理解的。在shell命令中,将“在文件名前面”作为块用于收集所有参数…如果使用arg1 arg2 arg3,大多数程序将只检测到第一个参数。如果使用“arg1 arg2 arg3”“被认为是一个街区……非常感谢您的帮助。我已经接受了你的回答。可能是我的外部exe有问题。