我們知道, 圖形化的視窗作業系統windows極大地方便了電腦的操作, 如新建或複製檔, 點擊幾下就可以了, 不像dos時代, 需要通過dos命令才行:
新建檔(以下三個方法之一):
echo>a.txt
copy con b.txt
edit c.txt
複製檔:copy path a.txt path.txt
但其實也不儘然。 例如, 如果有一部小說, 有50節, 你想一次性新建50個空白txt或html檔或由一個模組檔一次性複製50個複本, 如果通過圖示命令單個操作自然不是一種高效率的操作方式。 因為電腦的優勢就在於極快地做重複性的操作。
豪無疑問, 批次處理作為一種指令碼語言, 同其他所有語言一樣, 也是支援選擇結構和迴圈結構的。
在批次檔newn.bat中輸入一行代碼即可新建50個空白txt檔:
for /l %%n in (0,1,50) do (#echo>>%%n.txt)
(in後應有空格, do後的“ (”不要換行)
按兩下newn.bat, 即可在與newn.bat相同的路徑下創建50個txt檔, 檔案名字是0,1,2…, 49。
如果想新建html檔, 將txt更改成html檔即可。
如果想在檔中添加內容, 只需在echo後添加內容即可:
for /l %%n in (0,1,50) do (
echo ^ >%%n.html
echo ^ >>%%n.html
echo ^
>>%%n.htmlecho ^
)
即可在每個檔中添加如下內容:
如果是複製50個html檔,
只需稍作更改:
for /l %%n in (0,1,50) do ( copy module.html %%n.html )
下面簡單解釋一下批次處理的for迴圈:
for /L %%變數 in (起始值, 每次增值, 結束時的比較值) do (命令)
參數 /L, 按指定的次數進行迴圈;
(上面L也可用小寫, 主要為了視覺上不與數位1混淆則可以選擇大寫)
(起始值, 每次增值, 結束時的比較值)相當於一個等差數字序列, 從“起始值”的數字開始, 每次增加多少(也可設定為負數)為“每次增值”, 並與“結束時的比較值”比較, 超出則退出for迴圈(即不同去執行本輪後面的do 命令)
例如 (1,1,3) 將產生序列 (1 2 3);(1,2,9)將產生序列(1 3 5 7 9);(5,-1,1) 將產生序列 (5 4 3 2 1);(1,3,18)將產生序列(1 7 10 13 16)。
在for /l %%n in (0,1,50) do (#echo>>%%n.txt)中
%%n是變數;
echo是指在dos視窗顯示相關內容;
#可以遮罩echo的顯示;
>>是一種管道命令, 將echo顯示的內容輸入到檔%%n.txt中;
for迴圈有批次處理中有複製的迴圈方式:
迴圈處理文件 for %a in (path.*.*) do command;
迴圈處理目錄 for /d %a in (directoryset) do command;
迴圈處理某一命令或命令組;for /l %a in (start,step,end) do command;
迴圈處理某一目錄下的全部子目錄的某類檔 for /r path %a in (fileset) do command
迴圈處理某一目錄下全部目錄及子目錄 for /r path/d %a in (fileset) do command
迴圈解析文本 for /f %a "eol= skip= delims= tokens= usebackq" in (txt file set or `command` or "text") do command;
-End-