中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 04:18
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 求教:tokens和delims是什么意思例子如下
可打印版本  2,538 / 14
第1楼 killer05 发表于 2006-09-19 04:38
初级用户 发帖 25 积分 80
求教: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是什么意思 先谢谢先
第2楼 xg911335 发表于 2006-09-19 06:50
初级用户 发帖 50 积分 134
delims=xxx - 指分隔符集。这个替换了空格和跳格键的
默认分隔符集。
tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身。这会导致额外变量名称的分配。m-n
格式为一个范围。通过 nth 符号指定 mth。如果
符号字符串中的最后一个字符星号,
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。
第3楼 kcdsw 发表于 2006-09-19 08:01
中级用户 发帖 179 积分 404

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 ]
第4楼 killer05 发表于 2006-09-19 21:48
初级用户 发帖 25 积分 80
谢谢xg911335和kcdsw的指教, 说的很明白简单
如果用来扫描ip的话能不能用来判断网络的情况,只是不懂tokens 和 delims的用法
第5楼 uime 发表于 2006-09-20 05:00
初级用户 发帖 27 积分 70 来自 河南
以默认方式,/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 选项,否则,双引号会
被理解成是用作定义某个要分析的字符串的。
第6楼 killer05 发表于 2006-09-22 03:26
初级用户 发帖 25 积分 80
uime谢谢你
很详实
第7楼 renweimin365 发表于 2007-07-27 14:22
新手上路 发帖 1 积分 2
翻译的真差,还是看英文的好
翻译的真差,还是看英文的好,
不会犯就别乱翻,误人子弟阿
第8楼 slore 发表于 2007-07-27 22:53
铂金会员 发帖 2,478 积分 5,212
Originally posted by renweimin365 at 2007-7-27 14:22:
翻译的真差,还是看英文的好,
不会犯就别乱翻,误人子弟阿


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

看来楼上E文不错:D
第9楼 wudixin96 发表于 2007-07-27 23:06
银牌会员 发帖 931 积分 1,928
说实在的。WINDOWS帮助里翻译,有时还真是狗屁不通的。
第10楼 6622186 发表于 2007-07-28 15:36
高级用户 发帖 411 积分 894
是不是机器翻译的啊
第11楼 luowei14 发表于 2007-07-28 23:26
初级用户 发帖 98 积分 193
FOR 还真的下些功夫
第12楼 kingyn 发表于 2007-08-27 19:53
初级用户 发帖 21 积分 32
顶一下,人家就算翻的不好,总比光看不翻强多了吧
第13楼 kingyn 发表于 2007-08-27 19:53
初级用户 发帖 21 积分 32
要不你们来纠正补充下
第14楼 slore 发表于 2007-08-27 20:42
铂金会员 发帖 2,478 积分 5,212
我没觉得不通顺……=.=难道我理解力太强了?
第15楼 726842270 发表于 2010-06-27 16:25
初级用户 发帖 43 积分 65 来自 吉林省长春市
FOR还真不是一般强大呢。看来得用功了
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023