标题:
[文本处理]
[已解决]请教下面批处理中得n+和n的区别是什么?
[打印本页]
作者:
mstsc
时间:
2011-10-2 23:39
标题:
[已解决]请教下面批处理中得n+和n的区别是什么?
本帖最后由 mstsc 于 2011-10-5 17:15 编辑
:loop
set /a n+=1001 ::这里的n+和下面的n是什么区别呢?
echo %n:~-3% ::取n的最后3位数
goto loop
::这比常规的补位方法更优越
for /f "tokens=* delims=0123" %%a in ("0000123456") do echo %%a
::去除前缀的n个字符
这个显示的结果是456 可是我不知道他是怎么显示出来的
请会的给帮帮忙解释一下 谢谢
作者:
mstsc
时间:
2011-10-3 21:53
怎么没人给我解释一下呢?
作者:
CrLf
时间:
2011-10-3 22:15
delims=0123 将 0123 这四个字符设为分隔符,再用 tokens=* 取除了行首的连续分隔符(不论出现的次数与顺序)之外的内容。
作者:
mstsc
时间:
2011-10-4 19:01
回复
3#
CrLf
请问:delims 主要是设定隔符的吗?
tokens=* 主要的意思是取什么内容的吗?
作者:
bluewing009
时间:
2011-10-4 21:24
delims=设定分割符 tokens=* 取全部
比如你的:for /f "tokens=* delims=0123" %%a in("0000123456") do echo %%a
分割符是0123吧,因为是分割符,就不会再显示了,tokens=*把剩下的都取出来,你看,0000123456除去分割符“0123”剩下的显示,结果你说是什么呢?
作者:
mstsc
时间:
2011-10-5 12:34
谢谢,请问:tokens=2,3*又是什么意思呢?
上面的n+和n的区别是什么呢?
作者:
CrLf
时间:
2011-10-5 13:03
假设第一个参数变量为%%a,tokens=2,3*的意思是:取根据分隔符划分的第2节为第一个参数变量%%a的值 ,第3节为第二个变量%%b的值,第4节与其后所有内容则为%%c,*一定是从最后一个数字之后的那段算起,若只指定了*而未指定数字,则从第一段算起
n+=1等同于n=n+1
作者:
bluewing009
时间:
2011-10-5 18:59
回复
6#
mstsc
tokens=2,3*就是取分割后的第23和剩余的部分,一般对应for的变量并顺延。比如for /f %%i "tokens=2,3*"那么分割第二部分对应%%i第三部分对应%%j剩余部分对应%%k,同样%%a b c %%1 2 3,怎么分割的不用再说了吧
n+= 表示n自加某数,n+=1表示变量n自加1,一般常见于循环中,作为执行标记、计数标记等。
欢迎光临 批处理之家 (http://www.bathome.net/)
Powered by Discuz! 7.2