标题: [网络连接] BAT如何把获取的名称填入下一行要执行的命令里? [打印本页]
作者: bobgjs 时间: 2008-12-3 15:25 标题: BAT如何把获取的名称填入下一行要执行的命令里?
我抄了各位的代码,想把它组合起来,但没有做到,因为我是外行,代码如下,各位教导:- @echo off
- setlocal enabledelayedexpansion
- set "NIC_flag=Ethernet" %'/*-网卡标志-*/%
- set NIC_num=0 %'/*-初始化网卡数目-*/%
- for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
- set /a num+=1
- if "%%i"=="%NIC_flag%" (
- set /a num_=!num!+3,NIC_num+=1
- set NIC_name!Nic_num!=%%k)
- if !num! EQU !num_! set var=%%l
- set var=!var:*:=!
- set Desp!Nic_num!=!var!
- )
- echo.
- echo 【检查结果】本机共有 %NIC_num% 块网卡
- echo.
- for /l %%i in (1 1 %NIC_num%) do echo 【连接名称】 {!NIC_name%%i!} (请复制大括号内的网卡全称备用) &echo.&echo 【网卡型号】!Desp%%i!
- title 自动设置IP网关及DNS
- echo.
- set /p adname=请粘贴连接名称到这里:
- set /p ip=请输入IP最后数值:
- netsh interface ip set address name="%adname%" source=static addr=192.168.10.%IP% mask=255.255.255.0
- netsh interface ip set address "%adname%" gateway = 192.168.10.1 gwmetric =2
- netsh interface ip delete dns "%adname%" addr=all
- netsh interface ip add dns "%adname%" addr=202.106.46.151
- netsh interface ip add dns "%adname%" addr=219.141.136.10
- netsh interface ip add dns "%adname%" addr=219.232.48.61
- ipconfig /flushdns
- title 本机IP及MAC地址
- set "Space= "
- set "PH_addr=%Space%Physical Address" %'/*-物理地址-*/%
- set "IP_addr=%Space%IP Address" %'/*-本机IP地址-*/%
- for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
- for %%a in (PH_addr IP_addr) do (
- if "%%i"=="!%%a!" set %%a=%%j
- )
- )
- set PH_addr=%PH_addr:*:=%
- set IP_addr=%IP_addr:*:=%
- echo.
- echo 本机网卡物理地址为:【%PH_addr%】
- echo.
- echo 本机IP地址为: 【%IP_addr%】
- pause
复制代码
现在的运行结果是,我必须复制获得的本地连接的名称复给%adname%,才能继续下去,能不能有办法在这基础上,除了IP需要手动输入外,其他的自动执行下去呢?
感谢了!
作者: Batcher 时间: 2008-12-3 15:27
建议到“批处理教学&资料”版块学习 set 和 set /p 的区别。
另外:本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;
作者: bobgjs 时间: 2008-12-3 15:32
很抱歉,在P里呆了这么久,居然没有好好遵守版规,请版主责罚。
这样写就好了吧?
- @echo off
- setlocal enabledelayedexpansion
- set "NIC_flag=Ethernet" %'/*-网卡标志-*/%
- set NIC_num=0 %'/*-初始化网卡数目-*/%
- for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
- set /a num+=1
- if "%%i"=="%NIC_flag%" (
- set /a num_=!num!+3,NIC_num+=1
- set NIC_name!Nic_num!=%%k)
- if !num! EQU !num_! set var=%%l
- set var=!var:*:=!
- set Desp!Nic_num!=!var!
- )
- echo.
- echo 【检查结果】本机共有 %NIC_num% 块网卡
- echo.
- for /l %%i in (1 1 %NIC_num%) do echo 【连接名称】 {!NIC_name%%i!} (请复制大括号内的网卡全称备用) &echo.&echo 【网卡型号】!Desp%%i!
- title 自动设置IP网关及DNS
- echo.
- set /p adname=请粘贴连接名称到这里:
- set /p ip=请输入IP最后数值:
- netsh interface ip set address name="%adname%" source=static addr=192.168.10.%IP% mask=255.255.255.0
- netsh interface ip set address "%adname%" gateway = 192.168.10.1 gwmetric =2
- netsh interface ip delete dns "%adname%" addr=all
- netsh interface ip add dns "%adname%" addr=202.106.46.151
- netsh interface ip add dns "%adname%" addr=219.141.136.10
- netsh interface ip add dns "%adname%" addr=219.232.48.61
- ipconfig /flushdns
- title 本机IP及MAC地址
- set "Space= "
- set "PH_addr=%Space%Physical Address" %'/*-物理地址-*/%
- set "IP_addr=%Space%IP Address" %'/*-本机IP地址-*/%
- for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
- for %%a in (PH_addr IP_addr) do (
- if "%%i"=="!%%a!" set %%a=%%j
- )
- )
- set PH_addr=%PH_addr:*:=%
- set IP_addr=%IP_addr:*:=%
- echo.
- echo 本机网卡物理地址为:【%PH_addr%】
- echo.
- echo 本机IP地址为: 【%IP_addr%】
- pause
复制代码
[ 本帖最后由 随风 于 2008-12-3 17:36 编辑 ]
作者: 随风 时间: 2008-12-3 17:50
无语!
你还是弄错了,是用code把代码扩起来,而不是用quote,已经帮你改过来了。
提问时,应该把不懂的部分单独提取出来问,你这样把成吨的代码一股脑的复
制上来,谁有那心事去看啊???换作是你你有这耐心吗?
-
- @echo off
- setlocal enabledelayedexpansion
- set "NIC_flag=Ethernet" %'/*-网卡标志-*/%
- set NIC_num=0 %'/*-初始化网卡数目-*/%
- for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
- set /a num+=1
- if "%%i"=="%NIC_flag%" (
- set /a num_=!num!+3,NIC_num+=1
- set NIC_name!Nic_num!=%%k)
- if !num! EQU !num_! set var=%%l
- set var=!var:*:=!
- set Desp!Nic_num!=!var!
- )
- echo.
- echo 【检查结果】本机共有 %NIC_num% 块网卡
- echo.
- for /l %%i in (1 1 %NIC_num%) do (
- echo 【连接名称】 {!NIC_name%%i!}
- echo.&echo 【网卡型号】!Desp%%i!
- set "adname=!Desp%%i!"
- )
- title 自动设置IP网关及DNS
- echo.
- set /p ip=请输入IP最后数值:
- netsh interface ip set address name="%adname%" source=static
- addr=192.168.10.%IP% mask=255.255.255.0
- netsh interface ip set address "%adname%" gateway = 192.168.10.1
- gwmetric =2
- netsh interface ip delete dns "%adname%" addr=all
- netsh interface ip add dns "%adname%" addr=202.106.46.151
- netsh interface ip add dns "%adname%" addr=219.141.136.10
- netsh interface ip add dns "%adname%" addr=219.232.48.61
- ipconfig /flushdns
- title 本机IP及MAC地址
- set "Space= "
- set "PH_addr=%Space%Physical Address" %'/*-物理地址-*/%
- set "IP_addr=%Space%IP Address" %'/*-本机IP地址-*/%
- for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
- for %%a in (PH_addr IP_addr) do (
- if "%%i"=="!%%a!" set %%a=%%j
- )
- )
- set PH_addr=%PH_addr:*:=%
- set IP_addr=%IP_addr:*:=%
- echo.
- echo 本机网卡物理地址为:【%PH_addr%】
- echo.
- echo 本机IP地址为: 【%IP_addr%】
- pause
复制代码
[ 本帖最后由 随风 于 2008-12-3 17:54 编辑 ]
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |