Board logo

标题: ghost自动改ip找不到本地连接[求助][已结] [打印本页]

作者: jzl168     时间: 2006-8-17 21:52    标题: ghost自动改ip找不到本地连接[求助][已结]

不知道有没有看过网上那个ghost后自动IP改的批处理,因为那个批处理有个很要命的缺点,就是只可以改第一块网卡就是(本地连接)。如果你ghost过去的话,那台机子的网卡不是一型号的,不然就是不在同一个ipc槽就会出现(本地连接 2)不然就是(本地连接 3) 我自己试过用find提出来,每次要的时候都会多个 :  不知道怎么办。
=================================
ipconfig /all >ipconfig.txt
find  "Ethernet adapter" ipconfig.txt >connect.txt
for /f "skip=2 tokens=3" %%c in (connect.txt) do set connect=%%c
=============================================
这是我得出来的connect.txt
=============================================
---------- IPCONFIG.TXT
Ethernet adapter 本地连接 2:

=============================================
我不知道怎么可以要到 (本地连接 2)
可以有其它方法要到吗?我要到的都是 (本地连接 2:)还多加一个点

PS.不好意思版主,刚才没看清楚版规。我是个新手,要了解for的作用在发话了
不过现在很想知道,正在学习中嘛 ^^

[ Last edited by jzl168 on 2006-8-17 at 22:43 ]
作者: 3742668     时间: 2006-8-17 22:41
Well,首先,前面两句建议还是合并为一句:
ipconfig /all | find "Ethernet adapter" >connect.txt
当然也可以直接在for /f里面使用而不产生临时文件。
其次,如果你想得到 (本地连接 2),那么,你可以在启用延迟环境变量(setlocal ENABLEDELAYEDEXPANSION)后,在for的do语句里面把"本地连接 2:"赋值到变量connect,然后通过输出!connect:~0,-1!的方法来去掉最后的那个冒号。
当然,这个问题并非一定要用for才能解决,很多时候,我们应该放开我们的思路:
@echo off
set "connect=本地连接"
ipconfig /all | find "Ethernet adapter" | find "2" && set "connect=本地连接 2"
ipconfig /all | find "Ethernet adapter" | find "3" && set "connect=本地连接 3"
未测试,只是提供思路,如果想体现得自动化一点,可以把查找条件放到for /l中去,然后用goto跳转。
学习for的用法,你可以没事多翻翻论坛的老贴,全部看明白一遍你就是个批处理的高手了,另外参照我的签名。
作者: jzl168     时间: 2006-8-17 22:48
谢谢版主了。不过我还是作我原来的思路,上面的我以明白了。
基本上我都是每天看这里的老贴两三个小时的,人不怎么聪明嘛。多看一下多学一下
可能我刚学不久吧,思路还没有上来`
作者: namejm     时间: 2006-8-17 22:52
  如果只是去掉冒号,可以这样做:
@echo off
setlocal enabledelayedexpansion
for /f "skip=2 tokens=3" %%i in (connect.txt) do (
    set var=%%i
    set "var=!var::=!"
)
echo %var%
pause

作者: wang6610     时间: 2006-8-18 08:30
学习