2012-05-07 1 views
1

異なる時刻に複数のスケジュールされたタスクが実行されているが、すべてが共通のWindowsバッチファイルを実行しているとします。このバッチファイルは、Javaプログラムを実行します。バッチファイルを呼び出すスケジュールされたタスクの名前を取得し、それをJavaプログラムに渡すにはどうしたらいいですか?

私のバッチファイルは、それを呼び出すスケジュールされたタスクの名前を取得し、バッチが実行しているプログラムにその名前を渡したいと思います。これどうやってするの?

答えて

2

ジョーイは、外からの助けを借りなければそれをする方法がないと言いました。

各タスクのバッチのインスタンスを個別に作成することができます。それぞれのタスクには、実行するタスクが指定されています。

CALL mybatch.bat 1st_task 

、それは%1変数としてバッチにあなたの最初のタスクの名前を渡します。 また、このような小さなバッチを作成することができます。

%time%変数を使用して実行された時間に基づいてバッチを計算することもできますが、これはいくつかの解析を必要としますが、常に同じ時間に実行されるとは限りません第二に

それは次のようになります。

if '%time:~0,5%'=='10:30' set var=1st_task 
if '%time:~0,5%'=='12:00' set var=2nd_task 

ので

に(その最後の1があなたのタスクは日中のみ指定した時刻に実行することを前提としてい...と場合を何らかの理由で彼ら別の時間に実行しても動作しません)

+0

最後に、私は最初のアプローチで、スケジュールされたタスクごとにバッチファイルを作成しました。タスクが積み重なると、それはぎこちなくなりますが、ブラックボックス内にあるので、ユーザーは起こっていることを知らないので、すべてうまくいきます。すべての答えをありがとう! – ohseekay

2

スケジュールされたタスクの名前をバッチファイルの引数として渡すことができます。外部からの助けを借りなければ、バッチ内からそれを把握することはできません。

+0

これを行うにはどうすればよいですか? – ohseekay

関連する問題