2011-04-12 87 views
0

我正在嘗試編寫一個腳本,用於將本地連接的MAC地址與軟件許可證中的MAC地址進行比較,以查看其中一個許可證是否與計算機匹配。現在讓我卡住的部分是拉取特定設備「本地連接」的MAC地址。如何通過Windows批處理文件找到特定設備的MAC地址?

我一直在使用搜索功能,如嘗試:

ipconfig /all | findstr^ /C:"Local Area Connection"^ /C:"Physical Address" > C:\temp\macaddress.txt 
for /f "tokens=1,2 delims=:" %%i in (C:\temp\macaddress.txt) do @echo The MAC Address of %%i is %%j 
pause 

我真的不需要在上面嘗試回聲,我卻用它進行調試。

但還是上面的語句將文本轉換爲這樣的文件:

「物理地址:。。。。。。。。00-37-10-D1-98-2C

以太網適配器本地連接:

物理地址............:5D-26-0A-11-11-15「 (引用我加入顯示文本文件的開頭和結尾)

因此,我不知道如何拉動以太網ada後的MAC地址本地連接,特別是當它們不在同一條線上時。

我需要在Windows XP Professional中使用批處理文件來做到這一點。謝謝。

回答

0

這個舊腳本應該可以工作。
它首先搜索正確的適配器,然後等待包含字符串「Physical」的行。 :Normalize函數用於在XP系統的ipconfig輸出中刪除<回車>,因爲microsoft並不完全知道一行應該以CR/LF而不是以LF/CR結束。

@echo off 
SETLOCAL EnableDelayedExpansion EnableExtensions 

rem call :GetIP ip_WLAN "Drahtlos" 
rem echo --- 
set OS_Version=XP 
call :GetIP result "Ethernet adapter" "Physical" 

echo mac=%result% 

goto :eof 

:::::::::::::::::::::::::::: 
:GetIP <resultVar> <AdapterName> 
:: resultVar return variable for the searched value 
:: AdapterName part of the adapter name 
setlocal 
set /a found=0 
if "%OS_Version%"=="Win7" set ipText=IPv4 
if "%OS_Version%"=="Vista" set ipText=IPv4 
if "%OS_Version%"=="XP" set ipText=IP- 
if "%~3"=="" (
    set searchText=!ipText! 
) ELSE (
    set "searchText=%~3" 
) 
for /F "tokens=1,* delims=:" %%a IN ('ipconfig /all') DO ( 
    call :Normalize first "%%a.dummy" 
    call :Normalize post "%%b.dummy" 

    if "!post!"=="_" (
    if "!first:%~2=!" NEQ "!first!" (
     set /a found=1 
     rem echo adapter found "!first!" 
    ) ELSE (
     if "!first!" NEQ "_" (
      set /a found=0 
      rem echo - !first! !post! 
     ) 
    ) 
) 

    if !found! EQU 1 (
    rem echo try "!first!" 
    if "!first:%searchText%=!" NEQ "!first!" (
     set ipAddr=!post:_=! 
     set ipAddr=!ipAddr: =! 
     rem echo IP found !post! for adapter 
    ) 
) 
) 

(
    endlocal 
    set %~1=%ipAddr% 
    goto :eof 
) 

:Normalize 
set %~1=_%~n2 
goto :eof 
+0

謝謝,@jeb!我不得不將評論指標從「rem」改爲「REM!#」。除此之外,它看起來很棒!非常感謝!我自己花了幾天時間,但沒有取得太大的成功。再次感謝! – KB3NRY 2011-04-12 12:41:30

相關問題