2017-12-18 14 views
0

Pythonスクリプトをトリガーするバッチ(* .bat)ファイルがあり、このスクリプトは(コマンドプロンプトmanualllyを使用して)interactivlyを完了するまでに約25分かかります。このバッチファイルは、毎日朝に実行する必要があります。Windowsタスクスケジューラを使用しないbatファイルの実行をスケジュールするにはどうすればよいですか?

私はWindowsタスクスケジューラでスケジュールされたタスクとして設定しようとしたときに、それを実行したとき、対話的に実行した時間の約2倍の時間がかかりました。私が優先度設定をxmlの既定の7から4(より高い優先度)に設定しても、それは何の差異も生じませんでした。優先度の設定を変更するのはI/O優先度でのみ有効ですが、メモリー優先度では機能しません。これは4のままです(対話型ランの5レベルは1レベル下がります)。メモリ優先度は、長いプロセスをサポートする上で重要な役割を果たします。

タスクスケジューラ、タスクスケジューラの代替プログラムまたはスクリプトを使用せずに、スケジュールされたタスクとしてbatファイルをトリガする方法があるのでしょうか?

+0

'タスクスケジューラまたはスクリプトへの代替プログラム? - [schtasks](https://ss64.com/nt/schtasks.html) – Stephan

答えて

0

「タイムアウト」は、タスクスケジューラを使用しないでタスクをスケジュールするのに適したコマンドです。

timeout /t 1500 
[command to trigger Python script] 

だから、「このバッチファイルは、午前中に実行する必要がある...」したい、あなたにも、開始時刻と終了時刻を設定することができます

set timeHrs=%time:~0,2% 
set timeMin=%time:~3,2% 
set timeSec=%time:~6,2% 

[insert timeout command] 

if "%timeHrs%" geq 6 if "%timeHrs%" leq 9 [command to trigger Python script] 
rem The above command is check if Hour is in 6-9 (in morning). 

あなたがしたい場合のことができます。下記のソースコードのコピー(あなたにもコードを編集する必要がある場合があります):

@echo off 
:loop 
set timeHrs=%time:~0,2% 
set timeMin=%time:~3,2% 
set timeSec=%time:~6,2% 

timeout /t 1500 

if "%timeHrs%" geq 6 if "%timeHrs%" leq 9 [command to trigger Python script] 
goto loop 

また、同様のコードで終了を追加したいが、私はあなただけで、コード実行の日常を聞かせて、それを必要としないと思います。

関連する問題