中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-25 18:45
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,275 会员排行
DOS批处理 & 脚本技术(批处理室) » 代码中%~2是什么意思?请指教
可打印版本  939 / 4
第1楼 jellord 发表于 2007-03-30 11:43
初级用户 发帖 26 积分 92
代码中%~2是什么意思?请指教
@echo off
::调用格式:
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
goto :eof


if not "!%~2!" == "" set %~2=%%i以上代码看不懂,上面没有用延迟变量,为什么%~2要加!呢?另外%~2又是什么意思呢?请指教。
第2楼 flyinspace 发表于 2007-03-30 13:31
银牌会员 发帖 517 积分 1,206
%~2 是表示把 “ip"的引号删除。。

至于为什么要加!
我也不明白。
第3楼 bjsh 发表于 2007-03-30 21:12
银牌会员 发帖 621 积分 2,000
%~2代表把引号删除是什么原理呢????
第4楼 xycoordinate 发表于 2007-03-30 21:20
中级用户 发帖 228 积分 493 来自 安徽
......

call :select "ip address" "ip"
call :select "Physical Address" "mac"
call :select "Default Gateway""gateway"
call :select "DNS Servers" "dns"
call :select "Description" "netcard"

......

:select
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "!%~2!" == "" set %~2=%%i
......

%~1为红色
%~2为绿色

[ Last edited by xycoordinate on 2007-3-30 at 08:28 AM ]
第5楼 422904z 发表于 2007-09-03 17:39
初级用户 发帖 37 积分 74
hao'a
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023