typeperfコマンドを使用したバッチについて
とあるPCについて、CPU使用率とメモリ使用量を一定期間(例えば1時間、1日間など)監視するために、
typeperfコマンドを使った以下のようなバッチファイルを作成しました。
-----
条件:
1. プロセス毎に監視したい
2 結果はcsv形式でファイルに出力したい
3. 監視開始後に起動したプロセスについても監視したい
対象OS:
Windows 7
バッチ記述内容:
@ECHO OFF
setlocal enabledelayedexpansion
for /l %%i in (1,1,360) do (
set OUTDIR=C:\temp\
set YYYY=!DATE:~0,4!
set MM=!DATE:~5,2!
set DD=!DATE:~8,2!
set HH=!TIME:~0,2!
set MI=!TIME:~3,2!
set SS=!TIME:~6,2!
set FILENAME=!OUTDIR!log_!YYYY!!MM!!DD!!HH!!MI!!SS!.csv
echo ファイル出力:!FILENAME!
typeperf -sc 1 "\Processor(*)\%% Processor Time" "\Process(*)\Working Set" > !FILENAME!
ping localhost -n 10 > nul
)
pause
補足:
上記のバッチでは、typeperfコマンドは1回のみ実行し、
for文で10秒ごとに360回(=1時間)繰り返しています。
ちなみに、ゆくゆくは1日間程度監視したいと思っているので、
可能であれば1ファイルにまとめて出力したいです。
(上記の場合は、出力ファイル名を一意にするために「log_yyyymmddhhmmss.csv」にしていますが、
まとめられるのであれば何でもいいです)
-----
実行した結果、CSVは問題なく出力されるのですが、
出力されたCSVの末尾に「終了しています。お待ちください... コマンドは、正しく完了しました。」
というメッセージが付いてしまいます。
上記メッセージ以外の部分だけをファイルに出力することはできないのでしょうか?
一旦ファイルに出力してから、文字列置換するしかないのでしょうか?
何かいい方法があれば教えてください。