質問: バッチファイルでのmacアドレス取得について 【環境】 windows7 professional 32bit sp1 お世話になります。 上記環境でバッチファイルを起動し、 1.macアドレスを取得 2.複数nicがある場合は全てのmacアドレスを取得 という処理を行いたいのですが、 echoで取得結果を確認すると値が入っていません。 バッチに関して理解不足で申し訳ありませんが、是非ご教授お願い致します。 以下、現在作成しているコマンドです。 for /f "tokens=11 delims=: " %%b in ('ipconfig /all ^| find "physical address"') do set mac=%%b 以上です。
回答: いろいろ確認する方法はあると思いますが。 とりあえずfindを使わずにipconfigの出力全部にfor文を適用して、macアドレスの行から思い通りの部分が取り出せているか確かめるとか。 そもそも、delimsにスペースを含めなければ、"tokens=2 delims=:"で単純に取り出せるんですけど。 macアドレスの先頭にスペースが付いちゃいますが、それは後から消すほうが楽だし。 あと、前の締め切られた質問の方でも書きましたが、 set mac=%%b だと最後に実行した行しか有効にならないので、 setlocal enabledelayedexpansion で環境変数の遅延展開を有効にしたうえで set mac=!mac! %%b として追加するようにしてみましょう。