c# Environment.GetCommandLineArgs() 有什么用

boziaa 2010-11-03 10:34:17
请问 Environment.GetCommandLineArgs().GetValue( 1 ) 这个函数是什么意思,获得的值有什么用?
还有getValue()里只能填1,填0和2都出错 为什么呢
...全文
1265 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
boziaa 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 lorenliu 的回复:]
想起来了,你看看你原来那个程序的工程设置里面,Debug选项中的Start Options组下有个Command line arguments,里面是不是写了什么东西的。
[/Quote]
忘记回来结贴啦 是在这里,谢谢各位
LorenLiu 2010-11-05
  • 打赏
  • 举报
回复
从你给出的代码来看,GetValue(1)得不到值是很正常的,因为你没有在Main方法里给它设置入参,应该只有GetValue(0)是有值的。令我觉得奇怪的倒是你说这个代码在原来的程序里可以执行,那在那个程序里得到的GetValue(1)是个什么值呢?
boziaa 2010-11-05
  • 打赏
  • 举报
回复
environment.GetCommandLineArgs().getValue(1)取不到值 为空
boziaa 2010-11-05
  • 打赏
  • 举报
回复
using System;
using System.Windows.Forms;

class SubMain {

static void Main() {

HelloWorld oHelloWorld = null;

oHelloWorld = new HelloWorld();

}

}


using System;
using System.Windows.Forms;
using System.Diagnostics;
class HelloWorld {
private SAPbouiCOM.Application SBO_Application;

private void SetApplication() {

SAPbouiCOM.SboGuiApi SboGuiApi = null;
string sConnectionString = null;

SboGuiApi = new SAPbouiCOM.SboGuiApi();


sConnectionString = System.Convert.ToString( Environment.GetCommandLineArgs().GetValue( 1 ) );
Debug.WriteLine(sConnectionString);


SBO_Application = SboGuiApi.GetApplication( -1 );

}


public HelloWorld() {


SetApplication();

SBO_Application.MessageBox( "Hello World",1, "", "", "" );

}
}

这是本身就写好的代码,可以正确运行,然后全部代码复制到另一个console项目,按F6没有出差,但是运行的时候就出错了,environment.GetCommandLineArgs()为空
tsmoon2009 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 boziaa 的回复:]
请问 Environment.GetCommandLineArgs().GetValue( 1 ) 这个函数是什么意思,获得的值有什么用?
还有getValue()里只能填1,填0和2都出错 为什么呢
[/Quote]
可以填0和2吧
0 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\WebDev.WebServer.EXE
1 /port:1410
2 /path:E:\demosite\testYuYing
3 /vpath:/testYuYing
LorenLiu 2010-11-05
  • 打赏
  • 举报
回复
你要不把代码贴出来看看好了
boziaa 2010-11-05
  • 打赏
  • 举报
回复
想结贴啦 但是没有好的答案阿,还有人知道吗,谢谢啦
boziaa 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lorenliu 的回复:]
引用 7 楼 boziaa 的回复:
引用 4 楼 boziaa 的回复:
自己顶下
这个方法的使用条件是什么阿?有人知道吗
刚在一个项目里可以用这个方式,然后把代码全部复制带另一个项目里就不行了
新建的项目类型是console application

楼上的,MSDN我看过啦,但是还是不是很懂,可以告诉我4楼说的问题吗


你得看看Main方法在这两个程序中分别是怎么写的。……
[/Quote]
main方法一样的,全部代码都一样阿,不知道怎么解决
  • 打赏
  • 举报
回复
比如你打算在一个类库方法中写相关代码(好共享给多个工程),而不是在Main方法中写......

LorenLiu 2010-11-05
  • 打赏
  • 举报
回复
想起来了,你看看你原来那个程序的工程设置里面,Debug选项中的Start Options组下有个Command line arguments,里面是不是写了什么东西的。
boziaa 2010-11-05
  • 打赏
  • 举报
回复
真的是一样的,代码直接复制过去的,F6调试也没出错,纠结了
boziaa 2010-11-05
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 lorenliu 的回复:]
从你给出的代码来看,GetValue(1)得不到值是很正常的,因为你没有在Main方法里给它设置入参,应该只有GetValue(0)是有值的。令我觉得奇怪的倒是你说这个代码在原来的程序里可以执行,那在那个程序里得到的GetValue(1)是个什么值呢?
[/Quote]

这个确实很奇怪阿...得到的是一串很长很长的数字
LorenLiu 2010-11-03
  • 打赏
  • 举报
回复
参考MSDN吧http://msdn.microsoft.com/zh-cn/library/system.environment.getcommandlineargs(v=VS.80).aspx

返回包含当前进程的命令行参数的字符串数组

返回值
字符串数组,其中的每个元素都包含一个命令行参数。第一个元素是可执行文件名,后面的零个或多个元素包含其余的命令行参数。

备注
--------------------------------------------------------------------------------

数组中的第一个元素包含执行程序的文件名。如果该文件名不可用,则第一个元素等于 String.Empty。其他元素包含在命令行输入的任何附加标记。

程序文件名可以(但不是必须)包含路径信息。

除非在引号 (QUOTATION MARK, U+0022) 中出现空白,否则用空白(SPACE (U+0020) 或 CHARACTER TABULATION (U+0009))分隔命令行参数。引号中的空白被视为引用文本的一部分。分隔��不包括在命令行参数之中。

引号后跟的反斜杠字符 (REVERSE SOLIDUS (U+005C)) 需要分情况解释。如果 2n 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠。而且,如果其前面的文本为非引用文本,则开始引用其后的文本;如果其前面的文本为引用文本,则结束文本引用。如果 2n+1 个反斜杠后跟引号,命令行参数则包含 n 个反斜杠和一个原意引号。如果 n 个反斜杠后未跟引号,命令行参数则包含 n 个反斜杠。

若要获取作为单个字符串的命令行,请使用 CommandLine 属性。

  • 打赏
  • 举报
回复
获取命令行的传入参数
boziaa 2010-11-03
  • 打赏
  • 举报
回复
自己顶下
这个方法的使用条件是什么阿?有人知道吗
刚在一个项目里可以用这个方式,然后把代码全部复制带另一个项目里就不行了
新建的项目类型是console application
boziaa 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 juge001 的回复:]
http://blog.csdn.net/zjfei/archive/2009/09/27/4601943.aspx
[/Quote]
可以概括下吗,获得的值能有什么用
边城的刀声 2010-11-03
  • 打赏
  • 举报
回复
关注~,等楼下
LorenLiu 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 boziaa 的回复:]
引用 4 楼 boziaa 的回复:
自己顶下
这个方法的使用条件是什么阿?有人知道吗
刚在一个项目里可以用这个方式,然后把代码全部复制带另一个项目里就不行了
新建的项目类型是console application

楼上的,MSDN我看过啦,但是还是不是很懂,可以告诉我4楼说的问题吗
[/Quote]

你得看看Main方法在这两个程序中分别是怎么写的。。
boziaa 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 boziaa 的回复:]
自己顶下
这个方法的使用条件是什么阿?有人知道吗
刚在一个项目里可以用这个方式,然后把代码全部复制带另一个项目里就不行了
新建的项目类型是console application
[/Quote]
楼上的,MSDN我看过啦,但是还是不是很懂,可以告诉我4楼说的问题吗

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧