0

我是编程世界的新手。

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

6 回答 6

2

有很多方法:

  1. 你没有。你只是让人们猜测,直到他们猜对了。
  2. 当提供无效输入或没有输入时,作业可以向控制台写出指令以帮助用户正确执行
  3. 您可以提供外部文档,即 readme.txt 文件。
  4. 您可以使程序具有交互性,而不是使用命令行参数(写出询问您想要什么的文本,然后从标准输入中获取输入。
  5. 您可以为程序制作一个真正的 GUI,带有一个文本框和一个用于输入的按钮。通常当你看到这样的程序(使用命令行参数)时,这是因为它只是一个工具,并不是设计成真正用户友好的;它会被只知道如何使用它的程序员使用,或者它会被其他程序使用。
于 2012-09-20T14:10:49.690 回答
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 以他们编写的任何方式发送到函数。

于 2012-09-20T14:13:28.730 回答
0

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

myApp.exe "arg0" "arg1" "arg2"
于 2012-09-20T14:10:57.817 回答
0

static void Main(string[] args) 是应用程序的入口。

args 是传入 Main 的参数

args.Length 是你传入的参数数量

在主函数中设置断点

在解决方案资源管理器中右键单击您的项目 -> 单击属性 -> 单击调试 -> 将 abcd 放入命令行参数,以调试模式运行应用程序,并检查 args 的值

于 2012-09-20T14:12:41.677 回答
0

在 ExtractButton 点击​​事件内部:

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

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

于 2012-09-20T14:20:12.130 回答
0

这些是命令行参数

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

于 2012-09-20T14:21:14.410 回答