value不能为null。参数名称路径

时间:2016-06-16 17:23:15

标签: c# .net

我在属性 - >下面添加了命令行参数值"1|2|c:\temp"。调试框。

在我的代码中,我使用

读取数据
string[] args = Environment.CommandLine.Split('|').ToArray(); 

当我运行应用程序时,我得到所有参数值并且工作正常但是当我运行exe文件时我得到了

  

值不能为null。参数名称路径

我搜索了谷歌,但没有理解原因以及如何解决这个问题。

代码:

string[] args = Environment.CommandLine.Split('|').ToArray(); 

for (int i = 0; i < args.Count(); i++)
{
    switch (i)
    {
        case 0:
            break;
        case 1:
            break;
        case 2:
            this.ImageFilePath = args[i];
            break;
        case 3:
            this.ImageFileName = args[i];
            break;
        }
    }

请给我解决方案或想法以解决错误。

1 个答案:

答案 0 :(得分:0)

小心使用命令行实用程序的参数中的管道符(|)。如果不将其括在双引号中,则可执行文件将仅接收部分参数。 E.g。

test.exe this|is|a|test

...只会导致将参数“this”提供给test.exe。然后,test.exe的输出将通过管道传输到应用程序is(如果存在),并将其输出传送到应用程序a,依此类推......

另一方面,这应该符合您的期望:

test.exe "this|is|a|test"

就个人而言,我会考虑使用另一种分隔符。