[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 求助批处理根据mac地址来查找文本,但是不成功。

  1. for /f "tokens=5-16 delims= " %%i in ('ipconfig /all^|findstr /i "physical"') do echo %%p&findstr "%%p" yuan.txt&&echo echo 有 || echo 没有
复制代码
yuan.txt 内容可以自己填入。
在do前可以得到mac地址,但是在findstr 处却不能够从yuan.txt内发现。观察可见,findstr 的关键词不完整。
各位高手,是什么原因引起的,如何处理?
目的,学习批处理

楼主用的是什么系统?
中文 win7 和 win10 系统 ipconfig /all 应该不包含 physical 字符串,除非你已经加了一句 chcp 437

TOP

临时936处理法,更改ZH-CN语言包ipconfig.exe.mui为ipconfig.exe.mui.bak用完再改回去,可能需要获取对应权限,其它类似的都可以这样处理,微软自带了回退语言en-us都将返回至美式语言包
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 2# WHY
回复 3# /zhqsystem/zhq

单位电脑 都是xp,工作的和上网的,没有特殊设置。上面的语句在工作机上不可用,在上网机上正常。
目的,学习批处理

TOP

回复 4# hlzj88


工作机执行:
  1. ipconfig /all > a.txt
复制代码
a.txt
yuan.txt
test.bat
打包压缩传上来我试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 hlzj88 于 2019-8-13 10:06 编辑

回复 5# Batcher

在cmd窗口打开上述语句保存的bat,提示findstr无法打开yuan.txt,加了路径也不行。我想这是无法成功的原因。

yuan.txt的内容就是本机的mac地址。所有文件均为ansi,非只读文件。
目的,学习批处理

TOP

回复 6# hlzj88
win7下测试你那代码是正常的,建议加上/i参数,MAC有的是:有的是-,还有部分是空格
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

回复 6# hlzj88


test.bat和yuan.txt放在同一个目录执行试试
  1. @echo off
  2. cd /d "%~dp0"
  3. for /f "tokens=5-16" %%i in ('ipconfig /all^|findstr /i "physical"') do (
  4.     echo %%p
  5.     findstr "%%p" yuan.txt && echo echo 有 || echo 没有
  6. )
  7. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 8# Batcher
还是不行。前面我也加过路径验证不行。
换其他工作机也不可以。
直接把得到的mac地址写入3.txt,采用 for /f %%i in (3.txt) do findstr /i "%%i" yuan.txt&&echo 有 || echo 没有    还是不行。
郁闷,感觉无解。
目的,学习批处理

TOP

回复 9# hlzj88


你测试使用的以下文件打包压缩传上来我试试:
3.txt
yuan.txt
test.bat
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# hlzj88


    可以换其它思路,办法肯定不止一种,没必要死揪住 findstr 不放。举例:
  1. @echo off
  2. for /f %%i in ('getmac /nh') do set "_%%i=1"
  3. for /f %%i in (yuan.txt) do if defined _%%i (echo;%%i Y) else (echo;%%i N)
  4. pause
复制代码

TOP

回复 10# Batcher
回复 11# WHY
非常感谢!活太忙,得空又要跨网来测试,代码修改等等。
目前基本得到根据本机网卡在yuan.txt中的设置,对电脑进行电脑名、ip自动设置。可以用。
谢谢。
目的,学习批处理

TOP

返回列表