[英]How does a program know which arguments are passed?
我是编程世界的新手。
我有一个数据提取程序,可以将MySQL中的数据提取到Word模板文件中。 我不明白主程序如何知道将哪个参数传递给参数。 在运行exe时,程序如何知道"Haha, I need to pass a string in there, And it is precisely this string right here"
。
编辑:该程序应该在按下“提取按钮”时运行,但是exe程序如何知道字符串arg参数在哪里? exe是从哪里得到的?
主要代码
private static void Main(string[] args)
{
try
{
if (args[0] == "ALL" || args[0] == "*" || args[0] == "all")
{
PrintARs();
Console.Read();
}
else
{
CreateARDocument(args[0]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
Console.Read();
}
}
有多种方法:
从您的代码中继承一些想法
如果您的应用名为app.exe
如果你跑了
app.exe 1 2 3 4 5
您将拥有args[] = { 1,2,3,4,5}
并可以浏览它们
如果你跑了
app.exe /all c:\my stuff\a.txt
您会得到args[] = { /all, c:\\my, stuff\\a.txt }
您的代码将查看第一个arg,并说它是“ ALL,*或all” ..因此,笨拙的人在写“ All”时会失败..然后将以任何编写方式将arg发送给函子。
如果您从命令行执行此操作,则它将
myApp.exe "arg0" "arg1" "arg2"
static void Main(string [] args)是应用程序的入口。
args是传递给Main的参数
args.Length是您传入的参数数量
在主函数中设置一个断点
在解决方案资源管理器中右键单击您的项目->单击属性->单击调试->将abcd放入命令行参数,以调试模式运行该应用程序,并检查args的值
内部ExtractButton单击事件:
System.Diagnostics.Process.Start("PATH to your exe file", "Command Line Arguments");
命令参数的顺序与args []数组中的命令顺序相同。
这些是命令行参数 。
您可能已经注意到,解决方案中始终有一个Program.cs
文件。 那就是您的Main()
方法所在的位置。 在Windows窗体项目中,虽然可以更改它,但它不需要string []参数,然后它运行您的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.