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

2017年12月27日
パソコンのMACアドレスをコマンドプロンプト上に表示&任意のディレクトリにテキストファイル形式で出力するバッチファイルを作成しました。

ご利用は自己責任で。




@echo off
setlocal enabledelayedexpansion
for /f "usebackq delims=" %%a in (`hostname`) do set CPNAME=%%a
set FPATH=C:\Users\○○○\Documents\MacAddress_%CPNAME%.txt
getmac /v /fo list > %FPATH%
type %FPATH%
pause
endlocal
view raw MacAddress hosted with ❤ by GitHub

使い方は、MACアドレスを知りたいパソコンでバッチファイルを実行するだけです。
(バッチファイルの置き場所はローカルでなくても構いません。ネットワーク上…サーバーとかNASとか)




for /f "usebackq delims=" %%a in (`hostname`) do set CPNAME=%%a

バッチファイルを実行したパソコンのホスト名を変数「CPNAME」に格納します。

usebackq

「`」で囲まれた文字列をコマンドとして解釈。
この場合はコマンドの「hostname」としてホスト名を表示。

delims

区切り文字をデフォルトのスペースとタブから任意のものに変更。
「delims="」で何も指定しなかった場合は区切り文字無しとして解釈(?)


set FPATH=C:\Users\Administrator\Desktop\★\MacAddress_%CPNAME%.txt

ここの変数「FPATH」でMACアドレス出力先のディレクトリを指定しているので、予め出力先をサーバー等にしておくと便利かもしれません。


getmac /v /fo list > %FPATH%

MACアドレスを変数「FPATH」で指定したディレクトリにテキストファイル形式で出力します。


type %FPATH%

MACアドレスがちゃんと取得できたか確認するため、先ほど出力した.txtを読み込んでコマンドプロンプト上に表示します。


本当はリモートで任意(遠隔地とか)のパソコンのMACアドレスを知れたらよかったんですが、知りたい側のパソコンのファイアウォールを無効にしたりとか、他にも色々しないといけないみたいなので仕方なくローカルで一台ずつ操作してもらうことにしました。


使用者にバッチを叩いてもらうだけで、MACアドレスがサーバー上にアップされるので楽っちゃ楽ですけどね。コンピューター名がそのままファイル名になるようにしていますし、それ見てアップされてなければ催促すれば良いのですから。