注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT求助&讨论
» [已解决]请教下面批处理中得n+和n的区别是什么?
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
mstsc
发短消息
加为好友
mstsc
当前离线
UID
37031
帖子
182
精华
0
积分
252
PB
216
技术
12
捐助
0
阅读权限
20
在线时间
189 小时
注册时间
2011-5-1
最后登录
2018-10-14
四级士官
帖子
182
积分
252
技术
12
捐助
0
注册时间
2011-5-1
1
楼
跳转到
»
正序看帖
打印
字体大小:
t
T
发表于 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 可是我不知道他是怎么显示出来的
请会的给帮帮忙解释一下 谢谢
1
评分人数
Batcher:
感谢给帖子标题标注[已解决]字样
PB + 2
收藏
分享
停下的理由千千万万,向前的理由一个就已足够!
bluewing009
发短消息
加为好友
bluewing009
(九影)
当前离线
UID
20139
帖子
515
精华
0
积分
1788
PB
1743
技术
15
捐助
0
阅读权限
60
在线时间
661 小时
注册时间
2009-11-27
最后登录
2024-5-30
少校
帖子
515
积分
1788
技术
15
捐助
0
注册时间
2009-11-27
8
楼
发表于 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,一般常见于循环中,作为执行标记、计数标记等。
2
评分人数
mstsc:
谢谢帮助
技术 + 1
CrLf:
乐于助人
PB + 5
TOP
CrLf
发短消息
加为好友
CrLf
当前离线
UID
30406
帖子
6388
精华
2
积分
18843
PB
15777
技术
982
捐助
100
阅读权限
255
在线时间
5536 小时
注册时间
2010-10-9
最后登录
2024-5-10
论坛巡查
帖子
6388
积分
18843
技术
982
捐助
100
注册时间
2010-10-9
7
楼
发表于 2011-10-5 13:03
|
只看该作者
假设第一个参数变量为%%a,tokens=2,3*的意思是:取根据分隔符划分的第2节为第一个参数变量%%a的值 ,第3节为第二个变量%%b的值,第4节与其后所有内容则为%%c,*一定是从最后一个数字之后的那段算起,若只指定了*而未指定数字,则从第一段算起
n+=1等同于n=n+1
1
评分人数
mstsc:
谢谢帮助
技术 + 1
链接:
在线第三方命令行工具下载
bat、vbs、js 原生混编
TOP
mstsc
发短消息
加为好友
mstsc
当前离线
UID
37031
帖子
182
精华
0
积分
252
PB
216
技术
12
捐助
0
阅读权限
20
在线时间
189 小时
注册时间
2011-5-1
最后登录
2018-10-14
四级士官
帖子
182
积分
252
技术
12
捐助
0
注册时间
2011-5-1
6
楼
发表于 2011-10-5 12:34
|
只看该作者
谢谢,请问:tokens=2,3*又是什么意思呢?
上面的n+和n的区别是什么呢?
停下的理由千千万万,向前的理由一个就已足够!
TOP
bluewing009
发短消息
加为好友
bluewing009
(九影)
当前离线
UID
20139
帖子
515
精华
0
积分
1788
PB
1743
技术
15
捐助
0
阅读权限
60
在线时间
661 小时
注册时间
2009-11-27
最后登录
2024-5-30
少校
帖子
515
积分
1788
技术
15
捐助
0
注册时间
2009-11-27
5
楼
发表于 2011-10-4 21:24
|
只看该作者
delims=设定分割符 tokens=* 取全部
比如你的:for /f "tokens=* delims=0123" %%a in("0000123456") do echo %%a
分割符是0123吧,因为是分割符,就不会再显示了,tokens=*把剩下的都取出来,你看,0000123456除去分割符“0123”剩下的显示,结果你说是什么呢?
TOP
mstsc
发短消息
加为好友
mstsc
当前离线
UID
37031
帖子
182
精华
0
积分
252
PB
216
技术
12
捐助
0
阅读权限
20
在线时间
189 小时
注册时间
2011-5-1
最后登录
2018-10-14
四级士官
帖子
182
积分
252
技术
12
捐助
0
注册时间
2011-5-1
4
楼
发表于 2011-10-4 19:01
|
只看该作者
回复
3#
CrLf
请问:delims 主要是设定隔符的吗?
tokens=* 主要的意思是取什么内容的吗?
停下的理由千千万万,向前的理由一个就已足够!
TOP
CrLf
发短消息
加为好友
CrLf
当前离线
UID
30406
帖子
6388
精华
2
积分
18843
PB
15777
技术
982
捐助
100
阅读权限
255
在线时间
5536 小时
注册时间
2010-10-9
最后登录
2024-5-10
论坛巡查
帖子
6388
积分
18843
技术
982
捐助
100
注册时间
2010-10-9
3
楼
发表于 2011-10-3 22:15
|
只看该作者
delims=0123 将 0123 这四个字符设为分隔符,再用 tokens=* 取除了行首的连续分隔符(不论出现的次数与顺序)之外的内容。
链接:
在线第三方命令行工具下载
bat、vbs、js 原生混编
TOP
mstsc
发短消息
加为好友
mstsc
当前离线
UID
37031
帖子
182
精华
0
积分
252
PB
216
技术
12
捐助
0
阅读权限
20
在线时间
189 小时
注册时间
2011-5-1
最后登录
2018-10-14
四级士官
帖子
182
积分
252
技术
12
捐助
0
注册时间
2011-5-1
2
楼
发表于 2011-10-3 21:53
|
只看该作者
怎么没人给我解释一下呢?
停下的理由千千万万,向前的理由一个就已足够!
TOP
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]