如何根据计划或手动执行更改控制台应用程序的行为

本文关键字:控制台 应用程序 执行 何根 计划 | 更新日期: 2023-09-27 17:56:57

我有一个简单的控制台应用程序,每天通过任务计划程序执行两次。当它像这样运行时,Main()方法的默认输入将是当前月份和当前年份。

但是,有时需要在计划之外手动执行此任务;在这种情况下,它应分别提示用户输入"年"和"月"。

我知道如何在执行应用程序时发送参数,如下所示:

myapplication.exe 2013 1

我可以相应地检查参数和代码的数量。 但我想提示用户输入月份和年份。我们该怎么做呢? 谢谢你的帮助。

请为这篇文章建议一个更好的标题。

如何根据计划或手动执行更改控制台应用程序的行为

您可以引入一个特殊的命令行参数,该参数仅在通过计划程序执行应用程序时使用。如果存在此参数,则应使用当前日期,否则,将提示用户为您输入日期。

例如

    private static void Main(string[] args)
    {
        var yourFirstMagicNumber = -1;
        var yourSecondMagicNumber = -1;
        // Let's use the third argument as indicator that you need user input
        if (args.Length > 2 && "true".Equals(args[2]))
        {
            Console.WriteLine("enter magic nr 1: ");
            var firstArgument = Console.ReadLine();
            yourFirstMagicNumber = Int32.Parse(firstArgument);
            Console.WriteLine("enter magic nr 2: ");
            var secondArgument = Console.ReadLine();
            yourSecondMagicNumber = Int32.Parse(secondArgument);
        }
        else
        {
            yourFirstMagicNumber = Int32.Parse(args[0]);
            yourSecondMagicNumber = Int32.Parse(args[1]);
        }
    }