我在属性 - >下面添加了命令行参数值"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;
}
}
请给我解决方案或想法以解决错误。
答案 0 :(得分:0)
小心使用命令行实用程序的参数中的管道符(|
)。如果不将其括在双引号中,则可执行文件将仅接收部分参数。 E.g。
test.exe this|is|a|test
...只会导致将参数“this”提供给test.exe。然后,test.exe的输出将通过管道传输到应用程序is
(如果存在),并将其输出传送到应用程序a
,依此类推......
另一方面,这应该符合您的期望:
test.exe "this|is|a|test"
就个人而言,我会考虑使用另一种分隔符。