批处理 for 的用法

在 d:\b.txt中有内容如下

第1行第1列;第1行第2列;第1行第3列
第2行第1列;第2行第2列;第2行第3列
第3行第1列;第3行第2列;第3行第3列

1,一般的for FOR param %variable IN (set) DO command [command-parameters]

parm有  /d 这个参数主要用于目录搜索,不会搜索文件,不会搜索再下一级的目录。

如: for /d %%i in (???) do echo %% --显示当前目录下名字只有1-3个字母的目录

/R (搜索指定路径及所有子目录中与set相符合的所有文件)

FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]

1、set中的文件名如果含有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。
  2、如果set中为具体文件名,不含通配符,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set中的指定文件是否存在。

for /r c:/ %%i in (boot.ini) do if exist %%i echo %%i --列举boot.ini存在的目录

/L 是list,和java的for很像

FOR /L %variable IN (start,step,end) DO command [command-parameters]

for /l %%i in (1,1,5) do @echo %%i --输出1 2 3 4 5

for /l %%i in (100,-20,1) do @echo %%i --输出100,80,60,40,20

for /l %%i in (1,1,5) do start cmd --打开5个CMD窗口
  for /l %%i in (1,1,5) do md %%i --建立从1~5共5个文件夹
  for /l %%i in (1,1,5) do rd /q %%i --删除从1~5共5个文件夹

2,读取文件内容的for 用到 /f 参数 tokens 从第几个元素开始 delims 按照什么切分元素 skip 跳过几个元素 eol 以什么开头的时候忽略

for /f "tokens=2,* delims=;" %%i in (d:\b.txt) do echo %%i %%j >>c:\result.txt

意思就是读取d:\b.txt下文件中的内容, 按照;分割为若干个元素,取第二个开始和后面所有的元素,写到c:\result.txt中.其中%%i是第二个元素,%%j代表第二个后面的所有元素,就是*

skip就是要忽略文件的前多少行,而eol用来指定当一行以什么符号开始时,就忽略它。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章