Board logo

标题: [网络连接] 批处理如何提取当前电脑MAC并去掉冒号使其成为变量? [打印本页]

作者: violet0313    时间: 2022-4-12 15:50     标题: 批处理如何提取当前电脑MAC并去掉冒号使其成为变量?

最近在做映射网络驱动器,想通过MAC地址来连接,但是文件夹共享时不能带有“ : ”,导致效果不理想。如果提取后能转换一下更佳,只要不会出现重复就行。希望各位老师指点一下。

另外在论坛参照了一些比如硬盘ID、主板ID、CPU编号之类的来作为唯一值做映射,结果主板ID会有获取不到和不唯一的情况(比如品牌机),硬盘ID也会有多硬盘识别问题或带有特殊符号。相同型号CPU编号是一样的。实在想不到别的方法,可能只能用MAC了吧。
作者: bluerabbit    时间: 2022-4-13 20:59

AdapterName 换成你的应该就行了,另外我的电脑是win10中文,不同系统上ipconfig出来的可能不一样
  1. @echo off&setlocal enabledelayedexpansion
  2. set "AdapterName=无线局域网适配器 WLAN"
  3. for /f "tokens=1 delims=:" %%a in ('ipconfig /all ^| findstr /n "%AdapterName%"') do (
  4.     set SkipRow=%%a
  5.     goto :locateAdpater
  6. )
  7. :locateAdpater
  8. for /f "skip=%SkipRow% tokens=1,2 delims=.: " %%a in ('ipconfig /all') do (
  9.     if "%%a" equ "物理地址" (
  10.         set mac=%%b
  11.         goto :showResult
  12.     )
  13. )
  14. :showResult
  15. for /f "tokens=1-6 delims=-" %%a in ("%mac%") do (set mac=%%a%%b%%c%%d%%e%%f)
  16. echo,%mac%
  17. pause>nul
复制代码

作者: Batcher    时间: 2022-4-13 21:07

回复 2# bluerabbit


用 getmac 命令更方便一些
  1. @echo off
  2. for /f %%a in ('getmac ^| findstr /b "..-"') do (
  3.     set "MAC=%%a"
  4. )
  5. echo,%MAC%
  6. pause
复制代码

作者: bluerabbit    时间: 2022-4-13 21:32

回复 3# Batcher


    一语惊醒梦中人,对呀,可以用 getmac 命令的,多谢多谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2