2016-06-21 4 views
0

私は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"); 
} 
+0

どのような開発プラットフォームを使用していますか? WPF?フォーム? – Kinani

+0

私はコンソールアプリケーションを使用しています。 – user3447653

+0

[このスレッド](http://stackoverflow.com/questions/11791969/c-sharp-check-if-you-have-passed-arguments-or-not)にチェックを入れましたか?あなたの質問は、コンソールアプリケーションへの引数に関連していますが、コンテンツとタイトルはすべてタスクスケジューリングに関連していますが、まったく関係ありません。これを読んでください:[良い質問をするにはどうすればいいですか?](http://stackoverflow.com/help/how-to-ask) – Spidey

答えて

0

C#コンソールアプリケーションのエントリポイントを参照してください主な方法です。

static int Main(string[] args) 

このメソッドには、アプリケーションに渡される引数であるパラメータがあります。

通常の配列としてアクセスできます。

if(args[0] == "X") 
    MethodOne(); 
else 
    MethodTwo(); 
+0

これはコマンドラインでプログラムを実行するときに機能します。しかし、.exeファイルがトリガされると、タスクスケジューラの引数の追加(オプション)によって引数名を提供しています。しかし、それはargs [0]で捕らえられません。それが捕捉される場所は不明です。 – user3447653

+0

タスクスケジューラを使用する場合、args.Length == 0?それを確認するために出力を記録してください。 – Kinani

+0

私はC#を初めて使用しています。質問のコードを編集しました。しかし、私は手動でタスクスケジューラからジョブを実行するときに何も印刷されません。 – user3447653

0

static void Main(string[] args)方法でのProgram.csがあるはずです。

コマンドラインで指定された引数は、argsパラメータに渡されます。引数が渡されていない場合、args.Lengthは0

だろうCommand-Line Arguments (C# Programming Guide)

関連する問題