中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求教:tokens和delims是什么意思例子如下
作者:
标题: 求教:tokens和delims是什么意思例子如下 上一主题 | 下一主题
killer05
初级用户





积分 80
发帖 25
注册 2006-9-15
状态 离线
『楼 主』:  求教:tokens和delims是什么意思例子如下

@echo off
set sharefilename=share_filenames.sfn
if exist %sharefilename% del %sharefilename%
net share > %sharefilename%
for /f "tokens=1,2,3 delims= " %%a in (%sharefilename%) do (
if "%%c"=="默认共享" (
net share %%a /d
echo delete %%a >> deleteshareresult.log
)
if "%%c"=="远程管理" (
net share %%a /d
echo delete %%a >> deleteshareresult.log
)
)
if exist %sharefilename% del %sharefilename%

tokens和delims是什么意思 先谢谢先

2006-9-19 04:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xg911335
初级用户





积分 134
发帖 50
注册 2006-3-28
状态 离线
『第 2 楼』:  

delims=xxx      - 指分隔符集。这个替换了空格和跳格键的
                  默认分隔符集。
tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代
                  的 for 本身。这会导致额外变量名称的分配。m-n
                  格式为一个范围。通过 nth 符号指定 mth。如果
                  符号字符串中的最后一个字符星号,
                  那么额外的变量将在最后一个符号解析之后
                  分配并接受行的保留文本。

2006-9-19 06:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kcdsw
中级用户





积分 404
发帖 179
注册 2006-3-30
状态 离线
『第 3 楼』:  


for /f "tokens=1,2,3 delims= " %%a in (%sharefilename%) do (
if "%%c"=="默认共享" (
net share %%a /d
echo delete %%a >> deleteshareresult.log
)
if "%%c"=="远程管理" (
net share %%a /d
echo delete %%a >> deleteshareresult.log
)
)
tokens 和 delims  联合起来用的

首先定义了分隔符

比如
文档a
1空格2空格3空格4空格
那么它会把空格做分隔符  然后把满足条件的 第一位,第二位,第三位 传递出来
我们在引用的时候 (按此例)
引用方式为
%%a 对应第1位
%%b 对应第2位
%%c 对应第3位

而已而已!!

楼主结合一下 2楼放出来的帮助
我觉得能看明白了吧

[ Last edited by kcdsw on 2006-9-19 at 08:03 ]

2006-9-19 08:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
killer05
初级用户





积分 80
发帖 25
注册 2006-9-15
状态 离线
『第 4 楼』:  谢谢xg911335和kcdsw的指教, 说的很明白简单

如果用来扫描ip的话能不能用来判断网络的情况,只是不懂tokens 和 delims的用法

2006-9-19 21:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
uime
初级用户





积分 70
发帖 27
注册 2006-9-19
来自 河南
状态 离线
『第 5 楼』:  

以默认方式,/F 通过每个文件的每一行中分开  的第一个空白符号。跳过空白行。您可通过指定可选 "options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个 指定不同解析选项的关键字。这些关键字为:
       eol=c           - 指一个行注释字符的结尾(就一个)
       skip=n          - 指在文件开始时忽略的行数。
       delims=xxx      - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。
       tokens=x,y,m-n  - 指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。m-n格式为一个范围。通过 nth 符号指定 mth。如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。
       usebackq        - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且一个单 引号字符为文字字符串命令并允许在 filenameset中使用双引号扩起文件名称。

   某些范例可能有助:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k

    会分析 myfile.txt 中的每一行,忽略以分号打头的那些行,将每行中的第二个和第三个符号传递给 for 程序体;用逗号和/或 空格定界符号。请注意,这个 for 程序体的语句引用 %i 来 取得第二个符号,引用 %j 来取得第三个符号,引用 %k来取得第三个符号后的所有剩余符号。对于带有空格的文件 名,您需要用双引号将文件名括起来。为了用这种方式来使 用双引号,您还需要使用 usebackq 选项,否则,双引号会
    被理解成是用作定义某个要分析的字符串的。

2006-9-20 05:00
查看资料  访问主页  发短消息 网志   编辑帖子  回复  引用回复
killer05
初级用户





积分 80
发帖 25
注册 2006-9-15
状态 离线
『第 6 楼』:  uime谢谢你

很详实

2006-9-22 03:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
renweimin365
新手上路





积分 2
发帖 1
注册 2007-6-22
状态 离线
『第 7 楼』:  翻译的真差,还是看英文的好

翻译的真差,还是看英文的好,
不会犯就别乱翻,误人子弟阿

2007-7-27 14:22
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





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



  Quote:
Originally posted by renweimin365 at 2007-7-27 14:22:
翻译的真差,还是看英文的好,
不会犯就别乱翻,误人子弟阿

搞笑呢?上面好象是WINDOWS自带的FOR 的/?显示的帮助……

看来楼上E文不错:D

2007-7-27 22:53
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 9 楼』:  

说实在的。WINDOWS帮助里翻译,有时还真是狗屁不通的。

2007-7-27 23:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 10 楼』:  

是不是机器翻译的啊



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-7-28 15:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
luowei14
初级用户




积分 193
发帖 98
注册 2007-1-17
状态 离线
『第 11 楼』:  

FOR 还真的下些功夫



这家伙很聪明 什么都没留下
2007-7-28 23:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kingyn
初级用户




积分 32
发帖 21
注册 2007-8-22
状态 离线
『第 12 楼』:  

顶一下,人家就算翻的不好,总比光看不翻强多了吧

2007-8-27 19:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kingyn
初级用户




积分 32
发帖 21
注册 2007-8-22
状态 离线
『第 13 楼』:  

要不你们来纠正补充下

2007-8-27 19:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





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

我没觉得不通顺……=.=难道我理解力太强了?

2007-8-27 20:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
726842270
初级用户

枫中残雪


积分 65
发帖 43
注册 2010-4-29
来自 吉林省长春市
状态 离线
『第 15 楼』:  

FOR还真不是一般强大呢。看来得用功了

2010-6-27 16:25
查看资料  发送邮件  发短消息 网志  OICQ (726842270)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: