我正在用c#创建一个作业上传程序。我在配置文件中维护了所有作业信息。
当我创建一份工作时,我确实为该工作传递了一个独特的论点。
using (TaskService ts = new TaskService())
{
TaskDefinition td = ts.NewTask();
TimeTrigger trigger = new TimeTrigger();
var startTime = TimeSpan.Parse(section1["ScheduledTime"]);
trigger.StartBoundary = DateTime.Today + startTime;
trigger.Repetition.Interval = TimeSpan.FromDays(1);
trigger.StartBoundary = DateTime.Now;
trigger.Id = "XXX";
trigger.Repetition.Interval = TimeSpan.FromDays(1);
td.Triggers.Add(trigger);
td.Actions.Add(new ExecAction(@"C:/JobUpload.exe", argument, ""));
var foldername = ts.GetFolder(@"\Data");
foldername.RegisterTaskDefinition(section1["JobName"], td);
}
在程序中,我必须检查作业是否有任何参数。如果没有参数(当手动触发exe文件时会发生这种情况),那么我必须触发方法A.
另一方面,如果exe文件是通过任务调度程序中的作业触发的,那么它具有与之关联的参数,因此我必须触发方法B.
我不确定如何检查作业是否在C#中有任何参数。
任何帮助都将不胜感激。
编辑:
if (args.Length > 0)
{
Console.WriteLine("more than 1");
Logger.Info("More than 1");
Debug.WriteLine("More than 1");
}
答案 0 :(得分:0)
在您的控制台应用程序中,应该有一个带有static void Main(string[] args)
方法的Program.cs。
通过命令行给出的任何参数都将传递给args参数。如果没有传入参数,则args.Length将为0。
答案 1 :(得分:0)
C#控制台应用程序入口点是主要方法。
static int Main(string[] args)
你可以看到该方法有一个参数,它是传递给你的应用程序的参数。
您可以像任何普通数组一样访问它们。
if(args[0] == "X")
MethodOne();
else
MethodTwo();