スポンサードリンク

2013年04月25日

バッチファイルのログを取る

あるサーバー管理者から質問を受けました。

「ファイルサーバーのバックアップをxcopyコマンドで取ってます。
タスクスケジューラで自動実行してますが、これのログを取る方法
ってないですか?」

一瞬、xcopyでバックアップ? ログ?と、少々、びっくりしてしまいましたが・・・気を取り直して、次のようにアドバイスししました。

まず、別なサーバーにバックアップを取るなら、xcopyよりも
robocopyの方が良いという話をして、次にコマンドプロンプトのリダイレクトを説明しました。
robocopyの詳しい使い方は、ここにあります。
http://www.atmarkit.co.jp/fwin2k/win2ktips/877robomir/robomir.html

abc.bat を実行するとき、abc.bat > c:\log\aaa.log

と、すれば、aaa.log の中に画面表示される内容が記録されます。

この他にちょっと工夫すれば、ファイル名を日付にする事なんかもできます。

ファイル名を日付にする方法は、こちらに記載があますね。
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html

私は、DOS時代どころか、CP/Mの時代からPC使ってるので、コマンドラインで色々と工夫したものですが、最近は、こういう事を解説してる本も少ないみたいですね。

追記

この記事へのアクセスが意外に多いので、ちょっと追記しておきます。

abc.bat > c:\log\aaa.log

を実行すると、abc.batの画面への出力が、c:\log\aaa.logに書き込まれますが、次に実行された時に上書きされてしまいます。
追記したい場合は、

abc.bat >> c:\log\aaa.log

のように >> をつければ、追記されます。
また >> で指定されたファイルが無い場合は、新規に生成されます。

時刻や日付を入れたい場合は、バッチファイルの中に

time /t
date /t

を入れておけばOKです。

下のような感じでバッチを作っておけば、開始日時、時間、
終了時間が入ります。

echo コピー開始
date /t
echo 開始時間
time /t
処理内容を記述
echo 終了時間
time /t
echo コピー終了

どなたかのお役に立てれば幸いです。


posted by まさ at 17:17| Comment(0) | その他
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

システム管理者日記」の先頭へ