[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]请教下面批处理中得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    可是我不知道他是怎么显示出来的


请会的给帮帮忙解释一下   谢谢
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2
停下的理由千千万万,向前的理由一个就已足够!

怎么没人给我解释一下呢?
停下的理由千千万万,向前的理由一个就已足够!

TOP

delims=0123 将 0123 这四个字符设为分隔符,再用 tokens=* 取除了行首的连续分隔符(不论出现的次数与顺序)之外的内容。

TOP

回复 3# CrLf


    请问:delims 主要是设定隔符的吗?
        tokens=*   主要的意思是取什么内容的吗?
停下的理由千千万万,向前的理由一个就已足够!

TOP

delims=设定分割符 tokens=* 取全部
比如你的:for /f "tokens=* delims=0123" %%a in("0000123456") do echo %%a

分割符是0123吧,因为是分割符,就不会再显示了,tokens=*把剩下的都取出来,你看,0000123456除去分割符“0123”剩下的显示,结果你说是什么呢?

TOP

谢谢,请问:tokens=2,3*又是什么意思呢?
上面的n+和n的区别是什么呢?
停下的理由千千万万,向前的理由一个就已足够!

TOP

假设第一个参数变量为%%a,tokens=2,3*的意思是:取根据分隔符划分的第2节为第一个参数变量%%a的值 ,第3节为第二个变量%%b的值,第4节与其后所有内容则为%%c,*一定是从最后一个数字之后的那段算起,若只指定了*而未指定数字,则从第一段算起
n+=1等同于n=n+1
1

评分人数

    • mstsc: 谢谢帮助技术 + 1

TOP

回复 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,一般常见于循环中,作为执行标记、计数标记等。
2

评分人数

    • mstsc: 谢谢帮助技术 + 1
    • CrLf: 乐于助人PB + 5

TOP

返回列表