您的位置:首頁>正文

BAT|一行代碼創建或複製任意數量、任意檔案類型的檔

我們知道, 圖形化的視窗作業系統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.html

echo ^^ >>a.html

)

即可在每個檔中添加如下內容:

如果是複製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-

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示