中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-15 15:49
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 代码中%~2是什么意思?请指教 查看 854 回复 4
楼 主 代码中%~2是什么意思?请指教 发表于 2007-03-30 11:43 ·  中国 福建 福州 电信
初级用户
积分 92
发帖 26
注册 2007-03-10 07:44
19年会员
UID 81291
性别 男
状态 离线
@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 发表于 2007-03-30 13:31 ·  中国 广东 广州 海珠区 电信
银牌会员
★★★
积分 1,206
发帖 517
注册 2007-03-25 01:18
19年会员
UID 82819
性别 男
状态 离线
%~2 是表示把 “ip"的引号删除。。

至于为什么要加!
我也不明白。
3 发表于 2007-03-30 21:12 ·  中国 浙江 杭州 华数宽带
银牌会员
★★★
积分 2,000
发帖 621
注册 2007-01-01 00:00
19年会员
UID 75212
性别 男
状态 离线
%~2代表把引号删除是什么原理呢????
4 发表于 2007-03-30 21:20 ·  中国 安徽 马鞍山 电信
中级用户
★★
积分 493
发帖 228
注册 2007-02-16 00:38
19年会员
UID 79596
性别 男
来自 安徽
状态 离线
......

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 发表于 2007-09-03 17:39 ·  中国 福建 厦门 电信
初级用户
积分 74
发帖 37
注册 2007-06-28 11:47
19年会员
UID 92573
性别 男
状态 离线
hao'a
论坛跳转: