パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

自動で一定時間ごとにファイルコピー

とあるプログラムのログファイルを一定時間ごとにコピーしたいと考えて、簡単に実現する方法を探してみた。Windows 標準の機能を使うことを前提とすると、タスクスケジューラとコマンドプロンプトが簡単そう(WSH でもいいが)。

タスクスケジューラにタスクを追加する。トリガーは、指定日時にして、詳細設定の繰り返し間隔を所望の間隔に設定する。毎日なら毎日指定か。そして、操作としてはプログラムの開始。コマンドプロンプトの COPY コマンド をそのまま書いてみたがダメだった。bat ファイルを作って、その中に COPY コマンドを書けば OK だった。

今回、時系列で複数のファイルを残していきたかったので、ここで一工夫。コピー先のファイル名に日時を入れて、上書きを避けるようにしたい。コマンドプロンプト小技を探してみると、環境変数で日時を取れるもの(date, time)があり、さらにその文字列から一部を切り出す方法が見つかって、それらで上手くいった(@IT さんの記事)。

%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

ただ、毎回 コマンドプロンプトの黒いウィンドウが出るのが鬱陶しい。以前調査した、ウィンドウを出さずにコマンドプロンプトでコマンド実行する奴を仕込むべきか。

まぁ、アクティブなウィンドウが変わったり、マウスカーソルの位置が変わったりしないので気にしないのが一番かも。