C:\Users\Alex>ipconfig/all … 乙太網路卡 區域連線 2: 連線特定 DNS 尾碼 . . . . . . . . : 描述 . . . . . . . . . . . . . . .: Microsoft Windows Mobile Remote Adapter 實體位址 . . . . . . . . . . . . .: 12-34-56-01-23-45 DHCP 已啟用 . . . . . . . . . . . . : 是 自動設定啟用 . . . . . . . . . . .: 是 IPv4 位址 . . . . . . . . . . . . : 169.254.2.2(偏好選項) 子網路遮罩 . . . . . . . . . . . .: 255.255.255.0 租用取得 . . . . . . . . . . . . .: 2009年7月21日 下午 10:29:29 租用到期 . . . . . . . . . . . . .: 2009年8月20日 下午 10:29:25 預設閘道 . . . . . . . . . . . . .: DHCP 伺服器 . . . . . . . . . . . : 169.254.2.1 NetBIOS over Tcpip . . . . . . . .: 啟用 乙太網路卡 區域連線: 連線特定 DNS 尾碼 . . . . . . . . : 描述 . . . . . . . . . . . . . . .: Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit Ethernet NIC (NDIS 6.20) 實體位址 . . . . . . . . . . . . .: 00-11-22-33-44-55 DHCP 已啟用 . . . . . . . . . . . . : 否 自動設定啟用 . . . . . . . . . . .: 是 IPv4 位址 . . . . . . . . . . . . : 192.168.165.107(偏好選項) 子網路遮罩 . . . . . . . . . . . .: 255.255.255.0 預設閘道 . . . . . . . . . . . . .: 192.168.165.254 DNS 伺服器 . . . . . . . . . . . .: 168.95.192.1 168.95.1.1 NetBIOS over Tcpip . . . . . . . .: 啟用 通道介面卡 isatap.{6D6E2283-45C4-90A7-0506-1087391E5A92}: 媒體狀態 . . . . . . . . . . . . .: 媒體已中斷連線 連線特定 DNS 尾碼 . . . . . . . . : 描述 . . . . . . . . . . . . . . .: Microsoft ISATAP Adapter 實體位址 . . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0 DHCP 已啟用 . . . . . . . . . . . . : 否 自動設定啟用 . . . . . . . . . . .: 是 通道介面卡 區域連線* 3: 連線特定 DNS 尾碼 . . . . . . . . : 描述 . . . . . . . . . . . . . . .: Teredo Tunneling Pseudo-Interface 實體位址 . . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0 DHCP 已啟用 . . . . . . . . . . . . : 否 自動設定啟用 . . . . . . . . . . .: 是 IPv6 位址. . . . . . . . . . . . .: 2001:0:cf2e:3096:38c5:bda2:2256:d659(偏好 選項) 連結-本機 IPv6 位址 . . . . . . . : fe80::38c5:bda2:2256:d659%13(偏好選項) 預設閘道 . . . . . . . . . . . . .: :: NetBIOS over Tcpip . . . . . . . .: 停用 通道介面卡 isatap.{04426D6D-40CD-B5A2-D88C-DF7B9FBDD227}: 媒體狀態 . . . . . . . . . . . . .: 媒體已中斷連線 連線特定 DNS 尾碼 . . . . . . . . : 描述 . . . . . . . . . . . . . . .: Microsoft ISATAP Adapter #3 實體位址 . . . . . . . . . . . . .: 00-00-00-00-00-00-00-E0 DHCP 已啟用 . . . . . . . . . . . . : 否 自動設定啟用 . . . . . . . . . . .: 是 |
在此,我使用 Windows XP 之後才提供的 GetMac.exe,先看看執行的結果:
C:\Users\Alex>getmac 實體位址 傳輸名稱 =================== ========================================================== 00-11-22-33-44-55 \Device\Tcpip_{6D6E5A92-EEEE-45C4-90A7-1087E2283344} 12-34-56-01-23-45 \Device\Tcpip_{0442D227-FFFF-5555-6666-776DDF7B88ED} |
由於 GetMac 提供以 CSV 格式輸出結果的參數,所以我們可以搭配 FOR 指令寫出 GetMacAddr01.cmd:
@echo off REM 結果前後會有「"」 for /f "tokens=1 delims=," %%i in ('"getmac /fo csv /nh"') do echo 實體位址為:%%i REM 刪除「"」:將原本的 %%i 改成 %%~i for /f "tokens=1 delims=," %%i in ('"getmac /fo csv /nh"') do set mac=%%~i echo. echo 刪除「"」的結果:%mac% echo. REM 刪除「-」:使用 for 搭配 delims=- for /f "tokens=1-6 delims=-" %%j in ('echo %mac%') do echo 最後結果:%%j%%k%%l%%m%%n%%o
執行結果:
C:\Users\Alex>GetMacAddr01.cmd 實體位址為:"00-11-22-33-44-55" 實體位址為:"12-34-56-01-23-45" 刪除「"」的結果:12-34-56-01-23-45 最後結果:123456012345 |
由執行結果來看,上面那樣的寫法會有問題,萬一有多張網卡時,因為使用環境變數 %mac% 來儲存結果,所以只會顯示最後查到的 MAC 位址,所以經過修改並精簡後的程式碼:
for /f "tokens=1 delims=," %%i in ('"getmac /fo csv /nh"') do ( for /f "tokens=1-6 delims=-" %%j in ('echo %%~i') do echo %%j%%k%%l%%m%%n%%o )
執行結果:
C:\Users\Alex>GetMacAddr.cmd 001122334455 123456012345 |
沒有留言:
張貼留言