Board logo

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

作者: hlzj88    时间: 2019-8-9 13:07     标题: 求助批处理根据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 的关键词不完整。
各位高手,是什么原因引起的,如何处理?
作者: WHY    时间: 2019-8-11 20:20

楼主用的是什么系统?
中文 win7 和 win10 系统 ipconfig /all 应该不包含 physical 字符串,除非你已经加了一句 chcp 437
作者: /zhqsystem/zhq    时间: 2019-8-11 20:55

临时936处理法,更改ZH-CN语言包ipconfig.exe.mui为ipconfig.exe.mui.bak用完再改回去,可能需要获取对应权限,其它类似的都可以这样处理,微软自带了回退语言en-us都将返回至美式语言包
作者: hlzj88    时间: 2019-8-13 08:56

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

单位电脑 都是xp,工作的和上网的,没有特殊设置。上面的语句在工作机上不可用,在上网机上正常。
作者: Batcher    时间: 2019-8-13 09:13

回复 4# hlzj88


工作机执行:
  1. ipconfig /all > a.txt
复制代码
a.txt
yuan.txt
test.bat
打包压缩传上来我试试
作者: hlzj88    时间: 2019-8-13 10:00

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

回复 5# Batcher

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

yuan.txt的内容就是本机的mac地址。所有文件均为ansi,非只读文件。
作者: /zhqsystem/zhq    时间: 2019-8-13 13:54

回复 6# hlzj88
win7下测试你那代码是正常的,建议加上/i参数,MAC有的是:有的是-,还有部分是空格
作者: Batcher    时间: 2019-8-13 15:31

回复 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
复制代码

作者: hlzj88    时间: 2019-8-14 10:06

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

回复 9# hlzj88


你测试使用的以下文件打包压缩传上来我试试:
3.txt
yuan.txt
test.bat
作者: WHY    时间: 2019-8-14 22:35

回复 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
复制代码

作者: hlzj88    时间: 2019-8-24 00:17

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




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