バッチでメモリサイズを取得する

Windowsのdosコマンドでメモリのサイズを出力する方法はいくつかあるのですが、

たとえば、systeminfoコマンドからfindstrで抜き出したり、

wmicで合計物理メモリを表示したり

です。

 

ただ、どちらも個人的には好きではありません。、

まず、systeminfoコマンドは時間がかかる(hotfixの一覧取得が長い)のと、findstrした後にも文字列を整形しないと数値として取れないためです。

また、wmicは、MS Dosの扱える数値(符号付き32bit整数)を超えてしまうため文字列としてしか取れないためです。

そんなときに、サックリとMB単位でメモリを取得できるのがpowershellを利用した以下のコマンド。

poweshellのGet-WmiObjectコマンドレットで、物理メモリを取得。Measure-Objectに入力し、Capacityの合計を算出、Measure-Objectのsumプロパティを取得し、MB単位に計算。

なお、Measure-Objectを経由するのは、メモリモジュールが複数ある場合、win32_phycisalmemoryでは1枚ずつの容量を取得してしまうからです。

また、wmicを呼べばもっと短くなりますが、厳密なサイズではなくなります。

でもまあ、ワンライナーっていいよね。

この値に300MB加算すれば、完全ダンプを取得する際の仮想メモリサイズを算出でき、SGをバッチ処理家できますね!やった!!

 

ホント、もうPowerShellでやろうよ。。。

あと、PowerShell DSCも勉強しなきゃ(使命感)

Pocket

,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)