程序如何知道传递了哪些参数?

时间:2012-09-20 14:06:36

标签: c# .net mysql xml

我是编程世界的新手。

我有一个数据提取程序,它将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();
            }
        }

5 个答案:

答案 0 :(得分:2)

有很多方法:

  1. 你没有。你只是让人们猜测,直到他们做对了。
  2. 当提供无效输入或无输入时,作业可以向控制台写出指令以帮助用户正确执行
  3. 您可以提供外部文档,即readme.txt文件。
  4. 你可以让程序互动,而不是使用命令行参数(写出要求你想要的文本,然后从标准输入中获取输入。
  5. 你可以为程序制作一个真正的GUI,带有一个文本框和一个输入按钮。通常当你看到这样的程序(使用命令行args)时,这是因为它只是一个不是真正用户友好的工具;它将由只知道如何使用它的程序员使用,或者它将被其他程序使用。

答案 1 :(得分:1)

从你的代码中可以看出一些想法

如果您的应用程序名为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发送到功能可按。

答案 2 :(得分:0)

如果您从命令行执行此操作,那么它将是

myApp.exe "arg0" "arg1" "arg2"

答案 3 :(得分:0)

在ExtractButton内部点击事件:

System.Diagnostics.Process.Start("PATH to your exe file", "Command Line Arguments");

命令参数的顺序与它们在args []数组中的顺序相同。

答案 4 :(得分:0)

这些是Command-Line Arguments

您可能已经注意到解决方案中始终有Program.cs个文件。这就是您的Main()方法所在的位置。在Windows窗体项目中,它不接受string []参数,但您可以更改它,然后它运行您的应用程序。