2017-09-11 1 views
0

基本的に、私は、ログファイルの代わりに、ログファイルの具体的な実装抽象にログを記録するようにしたいです。ログデータをファイルではなくバッチスクリプトにエコーすることはできますか?

シナリオ:1日中に特定のプロセスを開始するジョブ・キックオフ・バッチ・スクリプトがいくつかあります。 Windowsタスクスケジューラのタスクは、バッチファイルをトリガするために使用されます。

問題:私は(>> C:\LogFolder\log.txt引数を追加することによって)タスクスケジューラからログファイルにエコーしたいかの場所場合(call :sub >> C:\LogFolder\log.txtを追加することによって)ジョブキックオフ-バッチスクリプトそのものからしません。ログフォルダが変更されます。

潜在的な解決策:それはlogging.batスクリプトの代わりに、log.txtのようなログファイルにログデータをエコーすることは可能ですか?このようにして、ログファイルの場所や場所を変更するときには、logging.batスクリプトファイルを変更するだけで、ジョブキックオフスクリプト自体のコードを変更する必要はありません。私はそれが何らかの理由で動作させることはできません

ECHO %1 >> C:\LogFolder\Log.txt 

logging.batスクリプトの

call :sub | logging.bat 
exit 

:sub 
ECHO Some text that needs to be logged 

そして、この:job-kickoff.batスクリプトのため、このような

何か。また、それがうまくいっても、それが私がしたいことをする最善の方法かどうかはわかりません。

(あなたが気づいたように、動作しません)

答えて

0

ない正確にあなたのアプローチのような、しかし、方法について:

call <be sure to give a complete absolute path>\logging.bat 
call :sub >> %logfile% 
goto :eof 

:sub 
ECHO Some text that needs to be logged 

logging.batのような:

@set "logfile=C:\LogFolder\Log.txt" 
関連する問題