Board logo

标题: [系统相关] 批处理读取计算机名和mac地址,同样的命令可以得出MAC地址但不能得出计算机名。 [打印本页]

作者: lywlhs    时间: 2008-10-5 14:58     标题: 批处理读取计算机名和mac地址,同样的命令可以得出MAC地址但不能得出计算机名。

if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >phyaddr.txt
for /f "skip=2 tokens=12" %%b in (phyaddr.txt) do set Mac=%%b
for /f "delims== tokens=2" %%c in ('more ^<C:\Mac.ini^|find /i "%Mac%"') do set IP=%%c
pause


这样可以正确的得出Mac地址。但
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist ComputerName.txt del ComputerName.txt
find "Host Name" ipconfig.txt >ComputerName.txt
for /f "skip=2 tokens=15" %%b in (ComputerName.txt) do set Mac=%%b
pause

却得不到计算机名。
朋友们,帮我看一下错在那里。谢谢
作者: pusofalse    时间: 2008-10-5 15:07

获取计算机名可以直接用echo %computername%
如果非要用你的这种方案,可以这样:
  1. @ipconfig /all|findstr /c:"Host Name">computername.txt
复制代码
查找字符串,最好用findstr。
另:在for的选项中,最好写成这样:for /f "tokens=2 delims==" %%a ....
tokens=在delims=之前。

[ 本帖最后由 pusofalse 于 2008-10-5 15:09 编辑 ]
作者: lywlhs    时间: 2008-10-5 15:15

谢谢,谢谢。知道了。
作者: lywlhs    时间: 2008-10-5 15:16

@ipconfig /all|findstr /c:"Host Name">computername.txt
还是这样写比较简单。谢谢




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