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]);
}
}