min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Windows10 実行中のプログラムを1秒ごとに255回表示するバッチファイル(tasklist_forever.bat)

Windowsで、実行中のプログラム(例:cmd.exe)が起動しているかを毎秒確認したい。コマンドtasklistの結果を「cmd.exe」でフィルタして毎秒表示してやれば良さそう。

ーーー

できた。思ったより便利。赤枠のところは時刻と回数のカウント。exeの表記は毎秒更新される。

f:id:min117:20160701063953p:plain

ソース

takslist_forever.bat

f:id:min117:20160701063254p:plain

@echo off

setlocal enabledelayedexpansion

SET DATE_STR=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%

SET usrOpeHome=%~d0%~p0

if not exist C:\TEST\nul (mkdir C:\Windows\TEST)

cd C:\TEST

for /l %%i in (0,1,255) do cls && echo %DATE_STR% && echo !TIME! && echo %%i && tasklist | find "cmd" && ping -n 1 -w 1000 192.168.255.255 >nul  2>&1

ーーー

!TIME! %TIME% にしちゃうと、バッチ開始時の時間のまま、ずっと時間が変わらない。

毎秒更新するためには、コマンド実行時に変数の中身を評価する仕組み(遅延環境変数)が必要らしい。青文字setlocalの行宣言をして、変数はビックリマークで囲む。

ーーー

Windows10でも動いた。必要なプログラムが起動しているか、ちょっとモニタリングするのに使えそう。

f:id:min117:20160701070842p:plain