- ベストアンサー
バッチファイルでのMACアドレス取得について
- Windows7 professional 32bit sp1環境でバッチファイルを使用してMACアドレスを取得する方法について教えてください。
- 現在作成しているバッチファイルでは、ipconfigコマンドを使用してPhysical Addressを取得しようとしていますが、値が取得できません。
- 複数のNICがある場合でも、全てのMACアドレスを取得する方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
いろいろ確認する方法はあると思いますが。 とりあえずfindを使わずにipconfigの出力全部にfor文を適用して、MACアドレスの行から思い通りの部分が取り出せているか確かめるとか。 そもそも、delimsにスペースを含めなければ、"tokens=2 delims=:"で単純に取り出せるんですけど。 MACアドレスの先頭にスペースが付いちゃいますが、それは後から消すほうが楽だし。 あと、前の締め切られた質問の方でも書きましたが、 set MAC=%%b だと最後に実行した行しか有効にならないので、 SETLOCAL ENABLEDELAYEDEXPANSION で環境変数の遅延展開を有効にしたうえで set MAC=!MAC! %%b として追加するようにしてみましょう。
その他の回答 (3)
- m-take0220
- ベストアンサー率61% (480/785)
まずはfor文のtokensが何を意味するのか調べてみましょう。 そのうえで、11が正しい数値か考えてみましょう。
お礼
お礼が遅れ申し訳ありません。 当方の知識不足にも関わらず、ヒントをくださり感謝しています。 今後ともよろしくお願いします。
補足
回答ありがとうございます。 申し訳ありません。 13が正解ですね。 ただ、tokens=13で処理を実行して、 Echoで内容確認しようとすると、"ECHOは<ON>です。"と表示されていしまい。 値が取れていないのか、それともそもそものロジックがまずいのか、 頭が痛いところです。
- memphis
- ベストアンサー率40% (975/2395)
日本語版なら、「Physical Address」でなく「物理アドレス」の間違いではありませんか?
お礼
お礼が遅くなり申し訳ありません。 知識が無く、要点を欠いた質問にも関わらず回答頂き、 感謝しています。 今後ともよろしくお願い致します。
補足
言葉が足りず申し訳ありません。 おっしゃるとおり、「物理アドレス」である場合を考慮し、 「Physical Address」でも「物理アドレス」でも取得出来るよう、 分岐させてあります。 ただ、「物理アドレス」を指定したロジックを通った場合でも取得出来ていない状態なんです。
- nicotinism
- ベストアンサー率70% (1019/1452)
直接的な回答ではありませんけど (^^ゞ getmac というコマンドもお試しを。
お礼
回答ありがとうございます。 getmac早速試して、MACアドレスの取得が確認出来ました。 あとはNIC・・・。今後はもっと勉強しないと駄目ですね。
お礼
回答ありがとうございます。 早速試してみます。
補足
上手くいきました!!ありがとうございます。 加えて、 もし可能であれば、 ”2.複数NICがある場合は全てのMACアドレスを取得”で取得した値で ファイル内のテキストを検索することは可能でしょうか? 端末によってNICがいくつあるか不明なので、 取得したMACアドレス分検索し、検索結果によって処理を分岐させたいのですが・・・。 お手数おかけしますが、 何卒ご教授のほど、よろしくお願い致します。