windows上的for循环

windows下的for 循环

查看帮助 help for

基本方式
for %i in (set) do cmd
set说明:
1、如果是有限集合,分隔符是逗号
2、可以使用通配符,*代表任意长度的字符,?代表任意一个字符
注意:在cmd中用%i ,在批处理bat文件中用%%i,%i和%I是两个变量

比如:打印字符ABC
for %i in (A,B,C) do echo %i

比如:打印当前目录下的文件名
dir *.txt
for %i in (*.txt) do echo %i

扩展模式

/D 让通配符只匹配目录名,而不是默认的文件名
for /d %i in (*) do dir %i

/L 指定序列来操作循环次数
比如 起始为1,步长为1,最后一个数为100,也就是循环100次
for /l %i in (1,1,100) do echo %i

倒叙来一次
for /l %i in (100,-1,1) do echo %i
for /l %i in (100,-1,1) do telnet 192.168.1.1 22

/F
FOR /F [“options”] %variable IN (file-set) DO command [command-parameters]
FOR /F [“options”] %variable IN (“string”) DO command [command-parameters]
FOR /F [“options”] %variable IN (‘command’) DO command [command-parameters]

解释:
options含义有:
options中的内容这些要用" "括起来

常见的参数有:
eol=; 忽略分析以;开头的行
skip=n 忽略分析文件里的前多少行

delims=, 指定文件行中的分隔符,默认是空格和TAB键作为分隔符。这里指定逗号最为分隔符。
tokens 默认是显示每行中第1个被分割的元素。
如果要显示每行中delims分割的第2列,那么就写成"delims=, tokens=2"
如果要显示每行中的第2列和第5列,那么就写成"delims=,tokens=2,5"
如果要显示每行中的第2列到第5列,那么就写成
“delims=,tokens=2-5”
如果要显示每行中的第2列和第3列到行尾,这里用通配符*来替代,那么就写成"delims=,tokens=2,*"

这两个参数在使用的时候,要和%i变量的数量匹配,并且只能按照顺序。

常用的查看文件内容
type a.txt

体验一下有/f和没/f的作用
说明:没有/f的时候将bbed.txt作为一个元素来处理,有/f的时候,会将bbed.txt文件里的每一行作为一个元素来处理

C:>for %i in (bbed.txt) do echo %i
C:>echo bbed.txt
bbed.txt
C:>for /f %i in (bbed.txt) do echo %i
C:>echo root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
C:>echo bin:x:1:1:bin:/bin:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin

默认显示第一列元素

for /f "delims=:" %i in (bbed.txt) do echo %i

你可能感兴趣的:(windows,batch,bash,开发语言)