注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT求助&讨论
» [已解决]批处理for命令怎样用tokens取到最后的一列?
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
cjiabing
发短消息
加为好友
cjiabing
(甲兵时代)
当前离线
UID
7853
帖子
1726
精华
2
积分
4476
PB
4191
技术
95
捐助
0
阅读权限
254
在线时间
1303 小时
注册时间
2008-12-21
最后登录
2018-10-23
荣誉版主
帖子
1726
积分
4476
技术
95
捐助
0
注册时间
2008-12-21
1
楼
跳转到
»
发表于 2011-6-25 23:44
|
显示全部帖子
5#
tmplinshi
LZ这个问题很有意义,tmplinshi的回答很巧妙!~顶起,继续观察。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。
TOP
cjiabing
发短消息
加为好友
cjiabing
(甲兵时代)
当前离线
UID
7853
帖子
1726
精华
2
积分
4476
PB
4191
技术
95
捐助
0
阅读权限
254
在线时间
1303 小时
注册时间
2008-12-21
最后登录
2018-10-23
荣誉版主
帖子
1726
积分
4476
技术
95
捐助
0
注册时间
2008-12-21
2
楼
发表于 2011-6-26 00:11
|
显示全部帖子
本帖最后由 cjiabing 于 2011-6-26 00:19 编辑
8#
zm900612
我在处理这些问题的时候,都不敢用横排的,一般都是用竖排的,遇到未知的行时,用findsrt /n来定位行,或者添加set /a num+=1来计算。
因为在处理横排(如%%a %%b %%c)的时候,最后面的变量往往为空,或者不确定,而且定位起来比较麻烦,比如,我只要最后一个变量,而对前面的变量忽略不计,这样,问题就出来了。
主要是懒,不想去解决,看看大家有好的想法学习下。
举例:提取“123 哈哈 789 A”中的“a”
通常是这样的:
for /f "tokens=4" %%a in (%var%) do echo %%a
但假如字符串的列是不规则的,有可能是4列,有可能是3列、5列、1列、10列……
此时用以上就有点难度了。
for %%a in (%var%) do set str=%%a
echo %str%
这样还好,不管怎么样,它只能提取最后一行(一列)。
假如提取倒数第二列呢?
使用不带参数的for,配合set /a num+=1计算,也能算得出倒数第二个变量。但for /f "tokens"就无能为力了,因为tokens的值只能是已知的数字,而变量的位置又不可知,结果是无法处理。
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。
TOP
返回列表
Python
出题挑战
PowerShell求助&讨论
UNIX/Linux Shell
BAT教程&资料
VBS求助&讨论
第三方命令行
新手练功
意见反馈
有偿求助
批处理专区: 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 分享给朋友]