Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何根据计划执行或手动执行来改变控制台应用程序的行为?_C#_Scheduled Tasks_Console Application - Fatal编程技术网

C# 如何根据计划执行或手动执行来改变控制台应用程序的行为?

C# 如何根据计划执行或手动执行来改变控制台应用程序的行为?,c#,scheduled-tasks,console-application,C#,Scheduled Tasks,Console Application,我有一个简单的控制台应用程序,每天通过任务调度器执行两次。当它这样运行时,Main()方法的默认输入将是当前月份和当前年份 但是,有时此任务需要在计划之外手动执行;在这种情况下,它应该分别提示用户年份和月份 我知道如何在执行应用程序时发送参数,如下所示: myapplication.exe 2013 1 我可以检查参数的数量,并相应地编写代码。但是我想提示用户输入月份和年份。我们怎样才能做到这一点?谢谢你的帮助 请为这篇文章推荐一个更好的标题。您可以引入一个特殊的命令行参数,该参数仅在通过调度程

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

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

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

myapplication.exe 2013 1

我可以检查参数的数量,并相应地编写代码。但是我想提示用户输入月份和年份。我们怎样才能做到这一点?谢谢你的帮助


请为这篇文章推荐一个更好的标题。

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

例如


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

例如


您只是在寻找Console.ReadLine()@Haxx是的,但只有在手动执行时。在nikola的回答中添加了一个示例。希望它能帮助您简单地查找Console.ReadLine()@Haxx是的,但只有在手动执行时。在nikola的回答中添加了一个示例。希望它能帮上忙你比我快,我有同样的建议:-)你比我快,我有同样的建议:-)
    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]);
        }
    }