如何使用批处理修改指定目录下的文本内容
如c:\下有个a.txt文本文档,需要能将a.txt中所有00-00-00-00-00-00替换为本机的mac地址(如果替换为mac地址较困难,替换为11-11-11-1...
如c:\下有个a.txt文本文档,需要能将a.txt中所有00-00-00-00-00-00替换为本机的mac地址(如果替换为mac地址较困难,替换为11-11-11-11-11-11也可)。衷心感谢
展开
1个回答
展开全部
@echo off
set "st=[0-9A-F][0-9A-F]-[0-9A-F][0-9A-F]"
set st=%st%-%st%-%st%
for /f "tokens=1* delims=:" %%i in ('ipconfig/all^|findstr %st%') do set "mac=%%j"
set "mac1=00-00-00-00-00-00"
set "mac2=%mac: =%"
(for /f "usebackq delims=" %%i in ("c:\a.txt") do (
set "s=%%i"
setlocal enabledelayedexpansion
set "s=!s:%mac1%=%mac2%!"
echo;!s!
endlocal
))>$
copy $ "c:\a.txt">nul&del $
pause
如不对,请测试运行cmd命令行输入命令 ipconfig/all 看能否显示出mac地址 及是否取错了(当有多个网络连接时)
更多追问追答
追问
非常感谢您的回答,非常有用。还有两个问题,请指导:
运行你的这个脚本结束后,提示“请按任意键继续”,我想换成自己直接退出,不需要人为干预,不知道要加什么命令?
正如你所说,我本机有两个mac地址,一个有线,一个无线。运行你提供的脚本获取到了无线地址并且成功替换,但我想取到有线的地址,不知有没有办法?
追答
1 把最后一行pause去掉
2 把第4行后面的do set "mac=%%j" 改为do if not defined mac set "mac=%%j"
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询