0

Winタスクスケジューラで毎週perlスクリプトを実行するタスクをスケジュールしたい。perl スクリプトは、次を使用してコマンド ラインから手動で実行されます。

perl update_blastdb.pl --passive --decompress refseq_rna

上記の3つの引数を渡すにはどうすればよいですか:

--passive --decompress refseq_rna

Edit1:以下 を含むbatファイルを作成しました:

@echo off
cd "C:\inetpub\wwwroot\webclient\db\nucleotide"
call "C:\Strawberry\perl\bin\perl.exe" "C:\inetpub\wwwroot\webclient\db\nucleotide\update_blastdb.pl" --passive --decompress gss_annot> C:\perl_out.log 2>&1

Winタスクスケジューラでタスクをスケジュールして、batファイルを実行します。まず、実行する時間を指定すると、時間が行ったり来たりして、タスクが実行されません (ステータス: 準備完了)。第二に、タスクを右クリックして実行をクリックして手動でタスクを実行すると、ステータスが(実行中)に変わりますが、作成したエラーログ、perl_out.log、および見つかったエラーログを確認すると、実行されていないようですそれは作成されません。

説明をお願いします。

Edit3: タスクを「基本タスク」として作成すると、正常に実行されました。ありがとう

4

1 に答える 1

2

スケジュールされたタスクの実行可能ファイルを単純に "perl" にする必要があり、残りのすべて (Perl スクリプトを含む) は Arguments に入ります。Args は、Windows のバージョンによって指定が異なるため、その部分を調べる必要がありますが、Task GUI では問題ありません。

その他のいくつかの提案:

  1. コマンドの周りに DOS バッチ スクリプトの「ラッパー」を作成します。BAT スクリプトはタスク GUI で指定するのが簡単で、管理者が手動で起動するのも簡単です。
  2. また、何が起こっているかを監視できるように、標準出力と標準エラーをログ ファイルにリダイレクトすることも検討してください。これは、タスクの起動に関する問題 (Perl や Perl スクリプトの問題など) をデバッグするためだけに必要になることがあります。
  3. ボーナス ポイントについては、別のプログラムでログ ファイルを監視して、何か問題が発生した場合にすぐに通知できるようにします。

編集: op の編集に従って、タスクのセットアップに関する詳細を追加します。

BAT スクリプト内ではなく、タスク セットアップですべてのリダイレクトを実行します。mt BAT ラッパーに含める必要はないと思いますしcall、perl.exe を明示的に含める必要さえありません。

タスク設定の例を次に示します。 ここに画像の説明を入力

BAT ラッパーの例を次に示します。

@echo off

date/t
time/t

echo.
disk_space.pl C:
disk_space.pl D:

echo.
echo Done.
exit/b
于 2016-03-28T18:26:49.277 に答える