私はC#でジョブアップロードプログラムを作成しています。私はすべてのジョブ情報をconfigファイルで管理しています。タスクスケジューラでのジョブの作成 - 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");
}
どのような開発プラットフォームを使用していますか? WPF?フォーム? – Kinani
私はコンソールアプリケーションを使用しています。 – user3447653
[このスレッド](http://stackoverflow.com/questions/11791969/c-sharp-check-if-you-have-passed-arguments-or-not)にチェックを入れましたか?あなたの質問は、コンソールアプリケーションへの引数に関連していますが、コンテンツとタイトルはすべてタスクスケジューリングに関連していますが、まったく関係ありません。これを読んでください:[良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask) – Spidey