批處理 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用來指定當一行以什麼符號開始時,就忽略它。



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