|
|
楼主 |
发表于 2013-7-1 14:18:20
|
显示全部楼层
查了下教程,有这么一句
~在%var:~n,m%中表示使用扩展环境变量指定位置的字符串。
m 和 n 为整数参数。数字 m 为正数表示取变量 var 中从左侧数第 m 个字符(单字节字符)以后的内容;m 为负数则表示取变量 var 从右侧数第 -m 个字符以及其右侧的所有的字符,这就是第一条命令所产生的新字符串。如果数字 n 为正数,表示在上述新字符串中,从其左侧取 n 个字符的内容;若 n 为负数,则从其左侧取字符直到还剩下 -n 个字符为止的内容。
如果您坚持认为这种抽象的表达方式是根本无法解释清楚这该死的 m 和无耻的 n 究竟是怎么回事的话,不如实验一下下面的例子。为了方便查看效果,我们假定变量 var 中的内容为 1234567890 (set var=1234567890),然后依次输入以下命令并查看相应的结果。
输入的命令 结果 效果
echo %var% 1234567890 显示所有
echo %var:~4% 567890 从第4个字符以后开始显示
echo %var:~4,3% 567 从第4个字符以后开始显示,并只显示前3个
echo %var:~-4% 7890 从倒数第4个字符开始显示
echo %var:~-4,3% 789 从倒数第4个字符开始显示,并只显示前3个
echo %var:~4,-2% 5678 从第4个字符以后开始显示,显示到还剩2个为止
echo %var:~0,3% 123 从头开始显示,并只显示前3个字符
echo %var:~0,-3% 1234567 从头开始显示,显示到还剩3个字符为止
此外,set 也可以对数值型的变量进行常见的运算操作。
set /a num=48
set /a result=%num%+12
echo %result%
上面的命令表示先给数值 48 赋给变量 num ,然后再把变量 num 的数值与数值 12 相加后的结果赋给变量 result 。第3行可以显示变量 result 的值,结果很明显,是 60 。
现在终于看懂了,松了一口气啊 |
|