中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » for中的delims=可以是字符窜吗?
« [1] [2] »
作者:
标题: for中的delims=可以是字符窜吗? 上一主题 | 下一主题
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『楼 主』:  for中的delims=可以是字符窜吗?

我想用for命令这样行吗?

@echo off
set "var=333ps555psssword=123 456 789"
for /f "tokens=1* delims=psssword" %%i in ("%var%") do set str=%%i&set num=%%j
echo %str%   %num%
pause

我的本意是
设 str=333ps555
num==123 456 789
可结果却是
str=333
num=555psssword=123 456 789


为什么我运行的结果是以 p 或 s 为分隔符的啊?而不是以psssword为分隔符?


[ Last edited by 26933062 on 2007-8-13 at 12:13 AM ]



致精致简!
2007-5-25 23:42
查看资料  发短消息 网志   编辑帖子
bjsh
银牌会员





积分 2000
发帖 621
注册 2007-1-1
状态 离线
『第 2 楼』:  

delims=psssword
将会以这些字母做为分割符;不只是p和s,w,o,r,d也将被用做分割符;

delims不能将字符串做为分割符;

2007-5-26 00:07
查看资料  发送邮件  发短消息 网志   编辑帖子
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 3 楼』:  

哦.原来这样,就是说只能以一个单一的字母或符号作分隔符 是吗?

[ Last edited by 26933062 on 2007-8-11 at 05:59 AM ]



致精致简!
2007-5-26 00:10
查看资料  发短消息 网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by 26933062 at 2007-5-26 00:10:
哦.原来这样,就是说只能以一个单一的字母或符号作分隔符 是吗?

for 命令的 delims 选项是这样的。

要以 psssword 这个字串为分隔符,我仅仅知道 gawk 这个工具可以,在论坛搜索一下可以找到下载地址。
C:\>echo 333ps555psssword=123 456 789|gawk "BEGIN{FS=\"psssword\"}{str=$1;num=$2;print \"str=\"str\"\nnum=\"num}"
str=333ps555
num==123 456 789


   此帖被 +1 点积分    点击查看详情   
评分人:【 sunshine217 分数: +1  时间:2007-6-2 21:24


2007-5-26 00:36
查看资料  发送邮件  发短消息 网志   编辑帖子
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 5 楼』:  

哦.谢谢了,用工具就不用了,......
主要是学批处理,,,,

2007-5-26 00:40
查看资料  发短消息 网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by 26933062 at 2007-5-26 00:40:
哦.谢谢了,用工具就不用了,......
主要是学批处理,,,,

有时用一些工具可以解决很多问题的,但我不强求。

虽然 for 命令的 delims 选项不支持字串的分割,但是如果想达到你的目的,换一个思路或许也可以:
@echo off
set "var=333ps555psssword=123 456 789"
set "var=%var:psssword=_%"
for /f "tokens=1* delims=_" %%a in ("%var%") do set str=%%a&set num=%%b
echo str=%str%
echo num=%num%
pause


   此帖被 +2 点积分    点击查看详情   
评分人:【 nanhui112 分数: +2  时间:2008-3-7 21:39


2007-5-26 00:49
查看资料  发送邮件  发短消息 网志   编辑帖子
sunshine217
新手上路





积分 0
发帖 1
注册 2007-6-1
状态 离线
『第 7 楼』:  

dd

2007-6-2 21:25
查看资料  发短消息 网志   编辑帖子
baikaifang
初级用户





积分 68
发帖 32
注册 2006-10-20
状态 离线
『第 8 楼』:  

各位大侠们呀,为什么都不写命令的注释啊,让我们这些菜鸟看了一头雾水呀,里面用到的一些怪子符,网上也找不到用法啊.结果看了等于没看.不知道每条命令具体的含义,遇到别的问题的时候就不能举一反三.唉

2007-6-2 21:53
查看资料  发短消息 网志   编辑帖子
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by baikaifang at 2007-6-2 09:53 PM:
各位大侠们呀,为什么都不写命令的注释啊,让我们这些菜鸟看了一头雾水呀,里面用到的一些怪子符,网上也找不到用法啊.结果看了等于没看.不知道每条命令具体的含义,遇到别的问题的时候就不能举一反三.唉

雾里看花啊,3D图片就是这样看出来的,坚持看上3个月,你就清楚了,我就是去年12

月开始雾里看花的啊,现在看3D图片了

2007-6-4 11:57
查看资料  发送邮件  发短消息 网志   编辑帖子
step2step
初级用户





积分 44
发帖 25
注册 2007-3-25
状态 离线
『第 10 楼』:  

前面看懂了,后面是天书

2007-6-4 15:05
查看资料  发送邮件  发短消息 网志   编辑帖子
huyujuen121
新手上路





积分 9
发帖 5
注册 2007-8-2
状态 离线
『第 11 楼』:  

是啊都是天书。。

2007-8-3 08:28
查看资料  发送邮件  发短消息 网志   编辑帖子
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 12 楼』:  

3D图片几秒就可以了啊

2007-8-3 10:12
查看资料  发短消息 网志   编辑帖子
sting
初级用户





积分 45
发帖 23
注册 2007-7-31
状态 离线
『第 13 楼』:  

^_^ 难懂啊

2007-8-8 10:02
查看资料  发送邮件  发短消息 网志   编辑帖子
1112yuhua
初级用户





积分 106
发帖 44
注册 2007-6-1
状态 离线
『第 14 楼』:  

lxmxn版主果然高,把password用_来替换了。

2007-8-16 01:26
查看资料  发送邮件  发短消息 网志  OICQ (463675828)  编辑帖子
liuyun20
初级用户





积分 36
发帖 14
注册 2007-3-4
状态 离线
『第 15 楼』:  顶了!!

set "var=%var:psssword=_%",把password用_来替换了.
学习了.

2007-10-18 22:56
查看资料  发送邮件  发短消息 网志   编辑帖子
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: