中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-13 12:34
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS学习入门 & 精彩文章 (教学室) » 给出例程,请指点迷津 (已经解决)
可打印版本  1,528 / 6
第1楼 zhclvip 发表于 2007-01-23 11:30
初级用户 发帖 50 积分 138
给出例程,请指点迷津 (已经解决)
@echo off
Title 显示网络配置
color 1f
::调用格式:
call :select "ip address" "ip"
call :select "Physical Address" "mac"
call :select "Default Gateway" "gateway"
call :select "DNS Servers" "dns"
call :select "Description" "netcard"

:: 演示效果
echo IP:%ip%
echo MAC:%mac%
echo DNS:%dns%
echo GATEWAY:%gateway%
echo NETCARD:%netcard%
pause>nul
goto :eof

::**************************************************************
:: 解析ipconfig命令输出通用函数
::**************************************************************
:select
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "!%~2!"=="" set "%~2=%%i"
:eof

××××××××××××
in ('ipconfig /all ^| findstr /i /c:%1')其中的^| 正常应该仅有|,这是???
为何最后这一点set "%~2=%%i"使用了%~2而不是%2呢???

[ Last edited by zhclvip on 2007-2-1 at 10:38 AM ]
第2楼 lxmxn 发表于 2007-01-23 11:38
版主 发帖 4,938 积分 11,386

  在for命令的in后面的括号里面,一些特殊的字符要转义一下,所以加上 ^ 前导符来将其后的特殊字符转义,这样就可以正常在for命令里面执行了。
  
  %~2 是为了去掉%2的引号。
第3楼 3721xp 发表于 2007-01-23 11:41
新手上路 发帖 5 积分 12
新手报到互相学习
第4楼 zhclvip 发表于 2007-01-24 02:44
初级用户 发帖 50 积分 138
二楼真强,非常感谢。
第5楼 wycp 发表于 2007-01-24 06:05
初级用户 发帖 15 积分 31
Originally posted by lxmxn at 2007-1-22 10:38 PM:

  在for命令的in后面的括号里面,一些特殊的字符要转义一下,所以加上 ^ 前导符来将其后的特殊字符转义,这样就可以正常在for命令 ...

不错,解释够快的。
第6楼 zhclvip 发表于 2007-01-26 08:41
初级用户 发帖 50 积分 138
感谢二楼,^转义,~脱引号,!延时赋值 ……
第7楼 gne3 发表于 2007-02-18 05:31
高级用户 发帖 252 积分 526
顶了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023