2

を使用してタスクを作成しschtasks、ユーザーが指定した構成に応じて特定の時間にこのタスクを実行することはできますか?

理想的には、私が達成したいことはこれです-ユーザーは、タスクを実行したい特定の時間を入力します(たとえば、レポートを生成して電子メールで送信するなど)。この特定の時間の文字列はカンマで区切られています (例: 08:00, 11:20, 14:00, 17:59or ) 09:15, 10:30, 11:45, 13:00

現在私が知っているのは、schtasks /createを使用して開始時間を指定できること/st <hh:mm>だけですが、それは特定のタイミングのみです。

4

1 に答える 1

1

タスクの開始時刻を設定したり、繰り返す間隔を設定したりできますが、個々のタスクについてはそれで十分です。

から 3 時間ごとに実行される単一のタスクを作成する場合は 、09:00次のようにすることができます。
Schtasks /Create /TN example /TR C:\example\report.bat /SC DAILY /ST 09:00 /DU 300 /RI 180
/DU

異なる時間に実行する複数のタスクを作成したい場合は、一度に 1 つ追加するか、バッチ ファイルを介して渡されるファイルの 1 行にそれぞれを配置します (これは事実上同じです)。区切られたリストに入ると、面倒になります。それらからデータを抽出するきれいな方法をまだ見つけていません。確かに可能ですが、人々があなたに言うようなことは「悪い習慣」のように感じます.
複数のタスクを連続して追加するには、次のようなバッチ ファイルを作成します。

set i=1

:top

set /P input=if you want to create a scheduled task, enter the time you want in HH:MM format. otherwise, type "q" : 
if (%input%) EQU (q) exit /B 0

Schtasks /Create /TN %username%\%i% /TR C:\example\report.bat /SC DAILY /ST %input% /RU %username%

set /A i+=1

goto top

作成されたタスクは、1 から始まり (ユーザーに関する限り) 無限に数えられる数字であり、スクリプトを実行したユーザーのユーザー名と同じタイトルのフォルダーの下にファイルされます。技術的には、それらにアクセスする名前は「%username%\1」、「%username%\2」になります。これは、複数のユーザーが同じスクリプトを使用して、他のタスクを上書きする危険を冒さずに複数のタスクを作成できるようにするためです。
スクリプトは、「q」だけを入力することでいつでも停止できます。
潜在的に、各行に 1 回、最後に aq を指定してこのスクリプトにファイルを入力すると、リスト全体を実行して終了する可能性があります。

于 2013-12-12T09:03:01.850 に答える