找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22912|回复: 7

[文本处理] [已解决]请教下面批处理中得n+和n的区别是什么?

[复制链接]
发表于 2011-10-2 23:39:05 | 显示全部楼层 |阅读模式
本帖最后由 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    可是我不知道他是怎么显示出来的


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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2011-10-3 21:53:07 | 显示全部楼层
怎么没人给我解释一下呢?
发表于 2011-10-3 22:15:52 | 显示全部楼层
delims=0123 将 0123 这四个字符设为分隔符,再用 tokens=* 取除了行首的连续分隔符(不论出现的次数与顺序)之外的内容。
 楼主| 发表于 2011-10-4 19:01:14 | 显示全部楼层
回复 3# CrLf


    请问:delims 主要是设定隔符的吗?
        tokens=*   主要的意思是取什么内容的吗?
发表于 2011-10-4 21:24:00 | 显示全部楼层
delims=设定分割符 tokens=* 取全部
比如你的:for /f "tokens=* delims=0123" %%a in("0000123456") do echo %%a

分割符是0123吧,因为是分割符,就不会再显示了,tokens=*把剩下的都取出来,你看,0000123456除去分割符“0123”剩下的显示,结果你说是什么呢?
 楼主| 发表于 2011-10-5 12:34:32 | 显示全部楼层
谢谢,请问:tokens=2,3*又是什么意思呢?
上面的n+和n的区别是什么呢?
发表于 2011-10-5 13:03:45 | 显示全部楼层
假设第一个参数变量为%%a,tokens=2,3*的意思是:取根据分隔符划分的第2节为第一个参数变量%%a的值 ,第3节为第二个变量%%b的值,第4节与其后所有内容则为%%c,*一定是从最后一个数字之后的那段算起,若只指定了*而未指定数字,则从第一段算起
n+=1等同于n=n+1

评分

参与人数 1技术 +1 收起 理由
mstsc + 1 谢谢帮助

查看全部评分

发表于 2011-10-5 18:59:16 | 显示全部楼层
回复 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,一般常见于循环中,作为执行标记、计数标记等。

评分

参与人数 2PB +5 技术 +1 收起 理由
mstsc + 1 谢谢帮助
CrLf + 5 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:31 , Processed in 0.020300 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表