如何使用批处理修改指定目录下的文本内容

如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也可)。衷心感谢 展开
 我来答
yyykkkyyyy
2014-03-20 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3292万
展开全部
@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地址 及是否取错了(当有多个网络连接时)

更多追问追答
追问

非常感谢您的回答,非常有用。还有两个问题,请指导:

  1. 运行你的这个脚本结束后,提示“请按任意键继续”,我想换成自己直接退出,不需要人为干预,不知道要加什么命令?

  2. 正如你所说,我本机有两个mac地址,一个有线,一个无线。运行你提供的脚本获取到了无线地址并且成功替换,但我想取到有线的地址,不知有没有办法?

追答
1 把最后一行pause去掉
2 把第4行后面的do set "mac=%%j" 改为do if not defined mac set "mac=%%j"
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式