|
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
状态 离线
|
|
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
状态 离线
|
|
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 |
|