无忧启动论坛

标题: 批处理Findstr命令求助 [打印本页]

作者: 2012luo    时间: 2012-7-15 09:56
标题: 批处理Findstr命令求助
由于公司现在要大批量升级系统,基于某种原因,计算机名和IP都不能变。现在我已经拿到了要升级的电脑的MAC地址、IP地址和计算机名并按这个结构保存在1.txt文件中。每部分用一个空格分开。现在有一个问题。假设有一台计算机MAC地址为00-01-02-03-04-05那么如何获取这个MAC地址所在的行是第几行并把行号写入一个变量中。求大大帮帮忙,不胜感激
作者: TCLSHX    时间: 2012-7-15 10:46
原帖由 2012luo 于 2012-7-15 09:56 发表
由于公司现在要大批量升级系统,基于某种原因,计算机名和IP都不能变。现在我已经拿到了要升级的电脑的MAC地址、IP地址和计算机名并按这个结构保存在1.txt文件中。每部分用一个空格分开。现在有一个问题。假设有 ...


你可以到DOS联盟求助啊
作者: 2012-Cool    时间: 2012-7-15 22:36
rem 核心部分
for /f "tokens=1-3 delims= " %%i in ('type "1.txt" ^| findstr /i "00-01-02-03-04-05"') do (
    rem 将MAC地址赋值给变量MACAddress
    set MACAddress=%%i
    rem 将IP地址赋值给变量IPAddress
    set IPAddress=%%j
    rem 将计算机名赋值给变量ComputerName
    set ComputerName=%%k
)

例如1.txt内容如下:
-------------------------------------------------------------
MAC地址             IP地址          计算机名
00-01-23-45-67-89   192.168.1.100   test
00-1E-90-69-8B-E3   192.168.1.101   admin
00-01-02-03-04-05   192.168.1.111   Administrator
00-D1-0E-33-B2-33   192.168.1.255   Name
-------------------------------------------------------------

较完整bat文件,添加到附件里了...
另外,LZ可详细参看vkill编写的CMD脚本"根据mac地址自动修改ip地址、网关、dns、计算机名、工作组等"(2008.07.09最后更新)

test.zip

390 Bytes, 下载次数: 27, 下载积分: 无忧币 -2

从文件中获取 MAC、IP、计算机名...


作者: 2012-Cool    时间: 2012-7-15 22:56
原帖由 <i>2012-Cool</i> 于 2012-7-15 22:36 发表 <a href="http://bbs.wuyou.net/redirect.php?goto=findpost&pid=2528795&ptid=254946" target="_blank"><img src="http://bbs.wuyou.net/images/common/back.gif" border="0" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onmouseover="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" onmousewheel="return imgzoom(this);" alt="" /></a><br />
rem 核心部分<br />
for /f "tokens=1-3 delims= " %%i in ('type "1.txt" ^| findstr /i "00-01-02-03-04-05"') do (<br />
    rem 将MAC地址赋值给变量MACAddress<br />
    set MACAddress=%%i<br />
    rem 将IP地址赋值给变量 ...
<br />

万分抱歉,没看清LZ是需要“行号”,那应该这样写了(需要find命令)
for /f "tokens=1 delims=[]" %%i in ('find /n /i "00-01-02-03-04-05" "1.txt"') do set Row=%%i

多次回帖,不好意思,呵呵




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3