dos 批处理

dos For

 

首先,

要明白,for /f的主要作用是从文本行中提取出特定的字符串。因此,它的每一个循环处理的就是一行文本。既然要从这行文本中提取出特定的字符串,当然,就需要对这一行文本进行分隔,分隔的结果就是将这一行文本分成了若干个字段,例如下面一行文本:
Dog*Cat*Monkey*Donkey

很显然,我们如果以*号作为分隔符,那么这一行就会分为下面四个字段:
Dog Cat Monkey Donkey

ok,现在我们要取出其中的一个或者所有字段进行处理,那么在for /f语句中,字段就是用tokens来代表的。

例如,我们这样写:for /f "tokens=1,2,3,4 delims=*" %i  in ('...') do ....

那么以上面一行文本为例:tokens中的1就表示Dog、2表示Cat、依次类推。而在Do语句中,%i 代表tokens(1)的值,即Dog,而%j表示tokens(2)的值即Cat,再次依次类推。

如果我们写成:for /f "tokens=2,4 delims=*" %i in ('...') do ...

那么%i = tokens(2) 即Cat,%j=tokens(4)即Donkey。

另外,在tokens中可以使用*号,表示剩余的全部字段,例如:tokens=1,*
那么这里的*号表示tokens(2,3,4)的全部内容,也就是%j = Cat Monkey Donkey。

关于tokens大致就是这些东西了,以上的描述中可能有不准确的地方,以实践为准。

 

===================

显示注册表某列的值

@echo off
set regpath=HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Environment
for /f "skip=4 tokens=1,2,*" %%a in ('reg query "%regpath%" /v "PERL5LIB"') do @echo %%c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值