windows用リソース情報取得バッチ

  • 投稿日:
  • by
このエントリーをはてなブックマークに追加

windows端末で走らせるとリソース情報を出力するバッチです。

XP は Pcinfo というソフトを使用していたのですが、VISTA以降では動かなかったのでバッチを作りました。
もっといい方法があるかと思いますが、とりあえずこれで対応しています。

@echo off

pushd %~dp0

FOR /F "usebackq" %%t IN (`HOSTNAME`) DO SET HNAME=%%t
SET TODAY=%date:~-10,4%%date:~-5,2%%date:~-2,2%
SET FILE_O=log\%HNAME%__%TODAY%.txt
SET FILE_T=log\%HNAME%_tmp.txt

"%ProgramFiles%\Common Files\Microsoft Shared\MSInfo\msinfo32" /report %FILE_O%

cmd /u /c echo; >> %FILE_O%
cmd /u /c echo --------"wmic csproduct get"-------- >> %FILE_O%
cmd /u /c echo; >> %FILE_O%
wmic csproduct get /value >> %FILE_O%

cmd /u /c echo; >> %FILE_O%
cmd /u /c echo --------"wmic memorychip get"-------- >> %FILE_O%
cmd /u /c echo; >> %FILE_O%
wmic memorychip get /value >> %FILE_O%

cmd /u /c echo; >> %FILE_O%
cmd /u /c echo --------"wmic memlogical get"-------- >> %FILE_O%
cmd /u /c echo; >> %FILE_O%
wmic memlogical get /value >> %FILE_O%

cmd /u /c echo; >> %FILE_O%
cmd /u /c echo --------"wmic product get"-------- >> %FILE_O%
cmd /u /c echo; >> %FILE_O%
wmic product get name /value >> %FILE_O%

cmd /u /c echo; >> %FILE_O%
cmd /u /c echo --------"systeminfo"-------- >> %FILE_O%
cmd /u /c echo; >> %FILE_O%
systeminfo /fo list > %FILE_T%
cmd /u /c type %FILE_T% >> %FILE_O%
del %FILE_T%

net use /delete %~dp0

echo WScript.Echo "complete" > %TEMP%\msgboxtest.vbs & %TEMP%\msgboxtest.vbs
del %TEMP%\msgboxtest.vbs

バッチファイルと同じフォルダに「log」というフォルダを作っておきます。
USBメモリ、NASなどに入れてバッチを実行すると、「log」フォルダの中にテキストファイル「<HOSTNAME>_<日付>.txt」が出力されます。
出力されるファイルの文字コードは UTF-16 です。

最後の処理にメッセージボックスを出すためだけにWSHを使用しております。

XPの場合、1回目は何故かsysteminfoのところが文字化けしてしまいます。もう一度実行すると正常に出力されました。

GitHub:https://github.com/lofttecs/get-systeminfo