MACアドレスとシリアル番号をコマンドプロンプト上に表示&.txt形式で出力するバッチファイル

2018年11月10日
以前作成した、MACアドレスをコマンドプロンプト上に表示&.txt形式で出力するバッチファイル

このMACアドレスをtxtに出力するついでに、バッチファイルを実行したパソコンのシリアル番号も一緒に出力するようにしました。




@echo off
setlocal enabledelayedexpansion
for /f "usebackq delims=" %%a in (`hostname`) do set CPNAME=%%a
set FPATH=C:\Users\○○○\Documents\serial_%CPNAME%.txt
getmac /v /fo list > %FPATH%
echo; >> %FPATH%
echo; >> %FPATH%
echo %CPNAME% の シリアルナンバー >> %FPATH%
for /f "usebackq tokens=2 delims==" %%b in (`wmic csproduct get IdentifyingNumber /value`) do echo %%b >> %FPATH%
type %FPATH%
echo;
pause
endlocal
exit



↑例によって、上記をコピペしてbatファイルを作成してくださいね。



set FPATH=C:\Users\○○○\Documents\serial_%CPNAME%.txt

出力先は適宜変更でお願いします。



以下、余談。

適当に作ったら何故かシリアルナンバーの文字の間に余計なスペースが入って鬱陶しいことになってしまいました。

S E R I A L = X X X X X X X X X X X
みたいな。

シリアルナンバーを先に出力して、MACアドレスを後に出力・・・っていう風に順番を変えてみたら、今度はMACアドレスが文字化けするんでやんの。

(「wmic bios get serialnumber」でも同じだったので何が悪いのやら・・・)

理由はわかりません。
これが片方が「dir」とかであれば正常に出力できるのですが。

ということで無理やりなんとかすることにしました。


for /f "usebackq tokens=2 delims==" %%b in (`wmic csproduct get IdentifyingNumber /value`) do echo %%b >> %FPATH%


シリアルナンバーを出力するコマンド
「wmic csproduct get IdentifyingNumber」をまずは変数に格納してから、
その変数を改めてテキストへ出力する・・・という回りくどい方法です。


コマンドプロンプト上ではシリアルの先頭にスペースが残っていますが、テキストファイルには残っておりませんのでご安心を。もしかしたら私の環境だけかもしれませんが。


おまじないのように繰り返しますが、自己責任ということで。