@ECHO OFF REM MacOS2.cmd, Version 2.10 REM Finds the network adapter's MacAddress REM and stores it in an environment variable REM Written by Rob van der Woude REM Initializing SET MACTMPBT= SET MACTMPDR= SET SERVICE= REM Add %TEMP% to PATH, assuming everyone has write access in %TEMP% IF "%TEMP%"=="" GOTO NoTemp SET MACTMPDR=%TEMP%.\ SET OLDPATH=%PATH% PATH %TEMP%;%PATH% :NoTemp REM Use DATE to parse NET CONFIG services output NET CONFIG | FIND /V ":" | FIND /V "." | DATE > %MACTMPDR%MACTEMP.DAT REM Check which language is used, to enable use of DATE in parsing REM English? TYPE %MACTMPDR%MACTEMP.DAT | CUT -F:1 -L:1 | FIND "Enter" > NUL IF NOT ERRORLEVEL 1 SET MACTMPBT=ENTER IF NOT ERRORLEVEL 1 SET ACTIVE=active REM Or Dutch? TYPE %MACTMPDR%MACTEMP.DAT | CUT -F:1 -L:1 | FIND "Voer" > NUL IF NOT ERRORLEVEL 1 SET MACTMPBT=VOER IF NOT ERRORLEVEL 1 SET ACTIVE=actief REM Language doesn't seem to be implemented yet IF "%MACTMPBT%"=="" GOTO UnknownLanguage REM Continue filtering temporary file and create temporary batch file TYPE %MACTMPDR%MACTEMP.DAT | FIND "):" > %MACTMPDR%MACTEMP.CMD IF ERRORLEVEL 1 TYPE %MACTMPDR%MACTEMP.DAT | FIND ": (" > %MACTMPDR%MACTEMP.CMD REM Create language dependent temporary batch file ECHO IF "%%SERVICE%%"=="" SET SERVICE=%%6> %MACTMPDR%%MACTMPBT%.CMD ECHO IF "%%SERVICE%%"=="" SET SERVICE=%%5>> %MACTMPDR%%MACTMPBT%.CMD REM Execute temporary batch files CALL %MACTMPDR%MACTEMP.CMD REM Check correct execution of temporary batch files IF "%SERVICE%"=="" GOTO UnknownLanguage REM Use NET CONFIG with found service to get MacAddress REM Due to the limited number of nested pipes allowed, REM we have to split the filtering and use temporary files NET CONFIG %SERVICE% | FIND " %ACTIVE% " | CUT -F:2 -L:1 -D:"(" | CUT -F:1 -L:1 -D:")" > %MACTMPDR%MACTEMP.DAT REM Reset variable to enable reuse SET SERVICE= REM Due to the limited number of nested pipes allowed, REM we have to split the filtering and use temporary files TYPE %MACTMPDR%MACTEMP.DAT | DATE | FIND /I "%MACTMPBT%" > %MACTMPDR%MACTEMP.CMD CALL %MACTMPDR%MACTEMP.CMD REM Check correct execution of temporary batch files IF "%SERVICE%"=="" GOTO UnknownLanguage REM Save results SET MacAddr=%SERVICE% ECHO. ECHO MacAddress=%MacAddr% GOTO End :UnknownLanguage ECHO Error, probably unknown OS language ECHO Known languages so far: English and Dutch GOTO End :ResetPath REM Remove %TEMP% from PATH again PATH %OLDPATH% SET OLDPATH= :End REM Clean up temporary files and variables IF NOT "%OLDPATH%"=="" GOTO ResetPath IF EXIST %MACTMPDR%MACTEMP.* DEL %MACTMPDR%MACTEMP.* IF EXIST %MACTMPDR%%MACTMPBT%.CMD DEL %MACTMPDR%%MACTMPBT%.CMD SET ACTIVE= SET MACTMPBT= SET MACTMPDR= SET SERVICE=