[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] BAT如何把获取的名称填入下一行要执行的命令里?

我抄了各位的代码,想把它组合起来,但没有做到,因为我是外行,代码如下,各位教导:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "NIC_flag=Ethernet"  %'/*-网卡标志-*/%
  4. set NIC_num=0 %'/*-初始化网卡数目-*/%
  5. for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
  6.      set /a num+=1
  7.      if "%%i"=="%NIC_flag%" (
  8.         set /a num_=!num!+3,NIC_num+=1
  9.         set NIC_name!Nic_num!=%%k)
  10.      if !num! EQU !num_! set var=%%l
  11.      set var=!var:*:=!
  12.      set Desp!Nic_num!=!var!
  13. )
  14. echo.
  15. echo 【检查结果】本机共有 %NIC_num% 块网卡
  16. echo.
  17. for /l %%i in (1 1 %NIC_num%) do echo 【连接名称】  {!NIC_name%%i!}     (请复制大括号内的网卡全称备用) &echo.&echo 【网卡型号】!Desp%%i!
  18. title 自动设置IP网关及DNS
  19. echo.
  20. set /p adname=请粘贴连接名称到这里:
  21. set /p ip=请输入IP最后数值:
  22. netsh interface ip set address name="%adname%" source=static addr=192.168.10.%IP% mask=255.255.255.0
  23. netsh interface ip set address "%adname%" gateway = 192.168.10.1 gwmetric =2
  24. netsh interface ip delete dns "%adname%" addr=all
  25. netsh interface ip add dns "%adname%" addr=202.106.46.151
  26. netsh interface ip add dns "%adname%" addr=219.141.136.10
  27. netsh interface ip add dns "%adname%" addr=219.232.48.61
  28. ipconfig /flushdns
  29. title 本机IP及MAC地址
  30. set "Space=        "
  31. set "PH_addr=%Space%Physical Address"  %'/*-物理地址-*/%
  32. set "IP_addr=%Space%IP Address" %'/*-本机IP地址-*/%
  33. for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
  34.    for %%a in (PH_addr IP_addr) do (
  35.       if "%%i"=="!%%a!" set %%a=%%j
  36.    )
  37. )
  38. set PH_addr=%PH_addr:*:=%
  39. set IP_addr=%IP_addr:*:=%
  40. echo.
  41. echo 本机网卡物理地址为:【%PH_addr%】
  42. echo.
  43. echo 本机IP地址为:      【%IP_addr%】
  44. pause
复制代码
现在的运行结果是,我必须复制获得的本地连接的名称复给%adname%,才能继续下去,能不能有办法在这基础上,除了IP需要手动输入外,其他的自动执行下去呢?
感谢了!

建议到“批处理教学&资料”版块学习 set 和 set /p 的区别。
另外:
本版规则
1、求代码、寻求代码解释、探讨代码得失的帖子均可发在本版块,其余话题禁止在本版讨论;
2、求助时,务必在顶楼一次性把问题交代清楚;若文字难以表述,请配图说明,或是上传附件;但是,一切操作应从节约论坛资源的角度出发,能文字说明清楚的就无需再发图片,小图能说明问题的尽量不截全图,在不影响效果的前提下尽量压缩图片及附件;
3、所发代码若不止一行,请务必用code标记把代码部分首尾括起来,以便他人复制;
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

很抱歉,在P里呆了这么久,居然没有好好遵守版规,请版主责罚。
这样写就好了吧?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "NIC_flag=Ethernet" %'/*-网卡标志-*/%
  4. set NIC_num=0 %'/*-初始化网卡数目-*/%
  5. for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
  6. set /a num+=1
  7. if "%%i"=="%NIC_flag%" (
  8. set /a num_=!num!+3,NIC_num+=1
  9. set NIC_name!Nic_num!=%%k)
  10. if !num! EQU !num_! set var=%%l
  11. set var=!var:*:=!
  12. set Desp!Nic_num!=!var!
  13. )
  14. echo.
  15. echo 【检查结果】本机共有 %NIC_num% 块网卡
  16. echo.
  17. for /l %%i in (1 1 %NIC_num%) do echo 【连接名称】 {!NIC_name%%i!} (请复制大括号内的网卡全称备用) &echo.&echo 【网卡型号】!Desp%%i!
  18. title 自动设置IP网关及DNS
  19. echo.
  20. set /p adname=请粘贴连接名称到这里:
  21. set /p ip=请输入IP最后数值:
  22. netsh interface ip set address name="%adname%" source=static addr=192.168.10.%IP% mask=255.255.255.0
  23. netsh interface ip set address "%adname%" gateway = 192.168.10.1 gwmetric =2
  24. netsh interface ip delete dns "%adname%" addr=all
  25. netsh interface ip add dns "%adname%" addr=202.106.46.151
  26. netsh interface ip add dns "%adname%" addr=219.141.136.10
  27. netsh interface ip add dns "%adname%" addr=219.232.48.61
  28. ipconfig /flushdns
  29. title 本机IP及MAC地址
  30. set "Space= "
  31. set "PH_addr=%Space%Physical Address" %'/*-物理地址-*/%
  32. set "IP_addr=%Space%IP Address" %'/*-本机IP地址-*/%
  33. for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
  34. for %%a in (PH_addr IP_addr) do (
  35. if "%%i"=="!%%a!" set %%a=%%j
  36. )
  37. )
  38. set PH_addr=%PH_addr:*:=%
  39. set IP_addr=%IP_addr:*:=%
  40. echo.
  41. echo 本机网卡物理地址为:【%PH_addr%】
  42. echo.
  43. echo 本机IP地址为: 【%IP_addr%】
  44. pause
复制代码

[ 本帖最后由 随风 于 2008-12-3 17:36 编辑 ]

TOP

无语!
  你还是弄错了,是用code把代码扩起来,而不是用quote,已经帮你改过来了。
  提问时,应该把不懂的部分单独提取出来问,你这样把成吨的代码一股脑的复

制上来,谁有那心事去看啊???换作是你你有这耐心吗?


  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "NIC_flag=Ethernet" %'/*-网卡标志-*/%
  4. set NIC_num=0 %'/*-初始化网卡数目-*/%
  5. for /f "tokens=1,2,3,* delims=: " %%i in ('ipconfig /all') do (
  6. set /a num+=1
  7. if "%%i"=="%NIC_flag%" (
  8. set /a num_=!num!+3,NIC_num+=1
  9. set NIC_name!Nic_num!=%%k)
  10. if !num! EQU !num_! set var=%%l
  11. set var=!var:*:=!
  12. set Desp!Nic_num!=!var!
  13. )
  14. echo.
  15. echo 【检查结果】本机共有 %NIC_num% 块网卡
  16. echo.
  17. for /l %%i in (1 1 %NIC_num%) do (
  18.    echo 【连接名称】 {!NIC_name%%i!}
  19.    echo.&echo 【网卡型号】!Desp%%i!
  20.    set "adname=!Desp%%i!"
  21. )
  22. title 自动设置IP网关及DNS
  23. echo.
  24. set /p ip=请输入IP最后数值:
  25. netsh interface ip set address name="%adname%" source=static
  26. addr=192.168.10.%IP% mask=255.255.255.0
  27. netsh interface ip set address "%adname%" gateway = 192.168.10.1
  28. gwmetric =2
  29. netsh interface ip delete dns "%adname%" addr=all
  30. netsh interface ip add dns "%adname%" addr=202.106.46.151
  31. netsh interface ip add dns "%adname%" addr=219.141.136.10
  32. netsh interface ip add dns "%adname%" addr=219.232.48.61
  33. ipconfig /flushdns
  34. title 本机IP及MAC地址
  35. set "Space= "
  36. set "PH_addr=%Space%Physical Address" %'/*-物理地址-*/%
  37. set "IP_addr=%Space%IP Address" %'/*-本机IP地址-*/%
  38. for /f "tokens=1,* delims=." %%i in ('ipconfig /all') do (
  39. for %%a in (PH_addr IP_addr) do (
  40. if "%%i"=="!%%a!" set %%a=%%j
  41. )
  42. )
  43. set PH_addr=%PH_addr:*:=%
  44. set IP_addr=%IP_addr:*:=%
  45. echo.
  46. echo 本机网卡物理地址为:【%PH_addr%】
  47. echo.
  48. echo 本机IP地址为: 【%IP_addr%】
  49. pause
复制代码

[ 本帖最后由 随风 于 2008-12-3 17:54 编辑 ]
技术问题请到论坛发帖求助!

TOP

返回列表