Windows BAT批處理通過TXT文本文件批量新建文件夾的方法
一、前言:BAT批處理的實用價值與本文核心內(nèi)容
在Windows系統(tǒng)日常運維、辦公自動化場景中,BAT批處理腳本是無需安裝編程環(huán)境、上手即用的高效工具,能快速實現(xiàn)文件批量創(chuàng)建、目錄批量生成、文件重命名、目錄結(jié)構導出等重復性操作,大幅提升辦公與運維效率。本文將基于經(jīng)典BAT批處理實操代碼,完整保留原文核心指令、操作規(guī)則與避坑要點,逐行解析代碼邏輯并添加中文注釋,深度拆解批處理核心命令用法、變量本地化機制,搭配UML流程圖可視化執(zhí)行邏輯,同時整理英文生詞表、提取核心關鍵詞,助力零基礎讀者快速掌握BAT批處理實操技能,規(guī)避常見操作陷阱。
本文核心覆蓋內(nèi)容:批量創(chuàng)建文本文件/多級目錄、目錄結(jié)構樹導出、文件批量重命名、環(huán)境變量本地化(setlocal/endlocal)實操、批處理命令避坑(編碼問題、命名沖突、路徑限制),所有代碼均經(jīng)過實測,可直接復用修改。
二、BAT批處理核心代碼逐段解析(附完整中文注釋)
下文將原文所有BAT代碼按功能模塊拆分,逐行添加中文注釋,明確每一行指令的作用、語法規(guī)則與注意事項,確保讀者完全理解代碼邏輯,無原文信息遺漏。
2.1 模塊一:遍歷文件夾并生成同名文本文件
該模塊核心功能為遞歸遍歷當前目錄及所有子目錄,在每個文件夾下生成與文件夾同名的txt文本文件,是批量文件創(chuàng)建的基礎實操。
@echo off :: 關閉命令行回顯,避免執(zhí)行過程中顯示冗余指令,提升腳本整潔度 :: 遍歷文件夾,在每個文件夾下以文件夾的名為名建立文本文件 :: code by jm 2006-9-8 腳本作者與創(chuàng)作時間標注 :: for /r 表示遞歸遍歷當前目錄及所有子目錄,%%i 為遍歷的目錄變量 for /r %%i in (.) do ( :: cd.> 生成空文件,%%i為當前遍歷的目錄路徑,%%~ni為目錄名(去除路徑后綴),最終生成同名txt文件 cd.>"%%i\%%~ni.txt" ) pause :: 暫停腳本執(zhí)行,等待用戶按任意鍵退出,避免命令行窗口一閃而過
2.2 模塊二:批量生成多級目錄與文本文件
該模塊通過循環(huán)指令,批量創(chuàng)建10組主目錄+子目錄結(jié)構,同時生成10個序號命名的文本文件,實現(xiàn)目錄與文件的批量初始化。
@echo off
:: for /L 表示數(shù)值循環(huán),%%g為循環(huán)變量,1,1,10代表起始值1、步長1、終止值10,循環(huán)執(zhí)行10次
for /L %%g in (1,1,10) do (
:: md 為創(chuàng)建目錄命令,生成Folder1-Folder10主目錄
md Folder%%g
:: 在主目錄下創(chuàng)建filesin子目錄
md Folder%%g\filesin
:: 在主目錄下創(chuàng)建filesout子目錄
md Folder%%g\filesout
)
::在當前目錄下創(chuàng)建十個文本文件,循環(huán)邏輯同上,echo.生成空內(nèi)容,重定向為txt文件
for /l %%a in (1 1 10) do echo.>%%a.txt
:: 再次關閉回顯(冗余指令,保留原文內(nèi)容不做刪減)
@echo off
2.3 模塊三:導出目錄結(jié)構與文件清單
該模塊核心解決目錄結(jié)構可視化問題,通過tree、dir命令導出不同格式的目錄文件清單,同時標注了關鍵命名避坑要點,是Windows目錄管理的實用技巧。
rem 此BAT文件名一定不能是"tree.bat",否則tree命令會實效,不知道為什么?但用"dir.bat"作文件名卻可以。 rem 注釋:rem為批處理注釋指令,作用等同于::,此處標注腳本命名禁忌 rem 可能是因為系統(tǒng)目錄有"tree.com",系統(tǒng)會混淆吧。 rem 在當前目錄生成很漂亮的結(jié)構樹,tree /f 顯示目錄結(jié)構+所有文件,重定向?qū)懭隩ree_of_Folder.txt tree /f > Tree_of_Folder.txt rem 像Dir命令一樣,不過每個下級目錄文件也列出,dir /s 遞歸顯示當前目錄及所有子目錄文件,寫入List_of_Dir.txt Dir /S > List_of_Dir.txt rem 簡潔地列出目錄當前目錄文件,dir /d 按列顯示當前目錄文件/目錄,寫入Name_of_Folder.txt Dir /d > Name_of_Folder.txt @echo off
2.4 模塊四:按文本列表批量創(chuàng)建文件(含編碼避坑)
該模塊實現(xiàn)通過文本列表批量生成文件,重點標注了ANSI編碼強制要求,同時詳解ren重命名命令的使用規(guī)則,是批量文件生成的進階玩法。
@echo on
::開啟命令行回顯,可查看腳本執(zhí)行細節(jié)
::注意:所讀取的txt文本文件編碼必須為ANSI,其它格式(含UTF-8)顯示為亂碼。
::Ren 為文件重命名命令,將當前目錄所有txt文件重命名為dept_list.txt
Ren *.txt dept_list.txt
@echo off
::跳轉(zhuǎn)到Note標簽,執(zhí)行注釋說明內(nèi)容
Goto Note
::Note標簽注釋:ren命令使用規(guī)則,原文核心注意事項,完整保留
新文件名前不可以加上盤符和路徑,因為該命令只能對同一盤上的文件更換文件名;
允許使用通配符更改一組文件名或擴展名;
不能為要修改的目標文件指定新的盤符和文件夾;
:note
::for /f 讀取文本文件內(nèi)容,delims= 取消分隔符,避免文件名含空格報錯
for /f "delims=" %%a in (dept_list.txt) do (
::開啟環(huán)境變量本地化,防止變量污染全局環(huán)境
setlocal
::將讀取的文本內(nèi)容賦值給str變量
set "str=%%a"
::根據(jù)讀取的內(nèi)容生成同名txt文件
cd.> "%%a.txt"
::關閉環(huán)境變量本地化,清空局部變量
endlocal
)
::暫停并退出腳本
Pause&Exit
2.5 模塊五:按文本列表批量創(chuàng)建目錄+變量本地化詳解
該模塊在批量創(chuàng)建目錄的基礎上,深度解析setlocal/endlocal環(huán)境變量本地化機制,完整保留原文變量規(guī)則與示例代碼,是理解批處理變量核心的關鍵內(nèi)容。
Goto Note
::setlocal與endlocal核心注釋,原文核心知識點,完整保留
setlocal 與 endlocal相當于一個局部變量,只不過它繼承了原來老的變量中的值。setlocal就是開啟環(huán)境變量本地化,其實就是說當開啟這個命令后,所有新設置的環(huán)境變量都只在本次運行時有效,而endlocal則是結(jié)束環(huán)境變量本地化,當然必須先是開啟了才會起作用,當運行endlocal后,先前設置的所有變量將會被清空。
::setlocal/endlocal兩種核心用法詳解
setlocal 或 endlocal 的情況是:
1、變量延遲開關
setlocal enabledelayedexpansion
::開啟變量延遲,解決循環(huán)中變量賦值不生效問題
setlocal disabledelayedexpansion
::關閉變量延遲
2、變量本地化 示例代碼:
set v=123
echo %v%
pause
setlocal
set v=abc
echo %v%
pause
endlocal
echo %v%
:Note
@echo on
::編碼注意事項重申,完整保留原文內(nèi)容
::注意:所讀取的txt文本文件編碼必須為ANSI,其它格式(含UTF-8)顯示為亂碼。
Ren *.txt dept_list.txt
@echo off
Goto Note
::ren命令使用規(guī)則重申
新文件名前不可以加上盤符和路徑,因為該命令只能對同一盤上的文件更換文件名;
允許使用通配符更改一組文件名或擴展名;
不能為要修改的目標文件指定新的盤符和文件夾;
:note
::讀取文本列表,批量創(chuàng)建目錄
for /f "delims=" %%a in (dept_list.txt) do (
setlocal
set "str=%%a"
::根據(jù)文本內(nèi)容批量創(chuàng)建目錄
md "%%a"
endlocal
)
Pause&Exit
2.6 模塊六:MD創(chuàng)建目錄命令官方詳解+列表批量建目錄
該模塊完整保留MD命令的官方語法、參數(shù)說明,同時實現(xiàn)通過指定文本列表批量創(chuàng)建文件夾,補充繁體中文注釋,適配不同閱讀習慣。
::MD命令官方定義,完整保留原文內(nèi)容 功能:創(chuàng)建新的子目錄 類型:內(nèi)部命令 格式:MD[盤符:][路徑名]〈子目錄名〉 使用說明: (1)“盤符”: 指定要建立子目錄的磁盤驅(qū)動器字母,若省略,則為當前驅(qū)動器; (2)“路徑名”: 要建立子目錄的上級目錄名,若缺省則建在當前目錄下。 ::繁體中文提示,完整保留原文內(nèi)容 @echo 請先將要新建文件夾的名稱保存到"Folder.List.txt"中,註:(壹個文件夾名占壹行,且不能夠使用空格)。 @pause ::讀取Folder.List.txt文本列表,批量創(chuàng)建目錄 @for /f %%a in (Folder.List.txt) do (md %%a) @echo 批量新建文件夾完成。 @pause
三、BAT批處理核心邏輯可視化(Mermaid UML流程圖)
為了更直觀理解BAT批處理的執(zhí)行流程,下文通過CSDN適配的Mermaid格式UML圖,分別可視化批量目錄/文件創(chuàng)建流程與環(huán)境變量本地化執(zhí)行流程,清晰梳理指令執(zhí)行邏輯。
3.1 批量創(chuàng)建目錄/文件執(zhí)行流程圖
暫時無法在豆包文檔外展示此內(nèi)容
3.2 setlocal/endlocal變量本地化流程圖
暫時無法在豆包文檔外展示此內(nèi)容
四、BAT批處理核心命令與避坑要點總結(jié)
4.1 核心命令用法匯總
- md/mkdir:Windows內(nèi)部命令,用于創(chuàng)建單層/多級目錄,支持路徑指定,不可跨盤符創(chuàng)建;
- for:批處理循環(huán)指令,分
/r(遞歸遍歷)、/L(數(shù)值循環(huán))、/f(文本讀?。┤N核心用法,是批量操作的核心; - ren/rename:文件重命名命令,僅支持同盤符、同目錄操作,支持通配符批量修改;
- tree/dir:目錄查看命令,
tree /f生成結(jié)構樹,dir /s遞歸展示文件,dir /d簡潔列示; - setlocal/endlocal:環(huán)境變量本地化命令,解決變量污染、變量延遲問題,是進階批處理的必備指令。
4.2 高頻避坑要點(原文核心+實操補充)
- 編碼問題:批處理讀取txt文件必須為ANSI編碼,UTF-8、Unicode等格式會出現(xiàn)亂碼,可通過記事本“另存為-編碼ANSI”解決;
- 命名沖突:BAT腳本不可命名為
tree.bat,會與系統(tǒng)tree.com命令沖突,導致tree指令失效; - 路徑限制:
ren、md命令不可跨盤符操作,目標路徑不可包含非法字符與空格; - 變量延遲:循環(huán)中修改變量需開啟
setlocal enabledelayedexpansion,否則變量賦值不生效。
五、BAT批處理相關英文生詞/短語對照表
本文提取核心英文單詞/短語,按要求整理音標、詞性、詞根詞綴、釋義、搭配、例句,方便讀者學習記憶:
| 單詞/短語 | 音標 | 詞性 | 詞根/詞綴 | 釋義 | 搭配&例句 |
|---|---|---|---|---|---|
| batch | /bæt?/ | n./v. | 無特殊詞根 | 批處理;批量 | 搭配:batch file(批處理文件);例句:This batch script can create folders quickly. |
| command | /k??mɑ?nd/ | n./v. | com-(共同)+mand(命令) | 命令;指令 | 搭配:internal command(內(nèi)部命令);例句:MD is a common internal command in Windows. |
| directory | /d??rekt?ri/ | n. | direct(指引)+ -ory(名詞后綴) | 目錄;文件夾 | 搭配:subdirectory(子目錄);例句:We need to create a new subdirectory for files. |
| variable | /?ve?ri?bl/ | n./adj. | vari(變化)+ -able(形容詞后綴) | 變量;可變的 | 搭配:local variable(局部變量);例句:Setlocal can protect local variables. |
| encoding | /?n?k??d??/ | n. | en-(使)+ code(編碼)+ -ing(名詞后綴) | 編碼 | 搭配:ANSI encoding(ANSI編碼);例句:Wrong encoding will cause garbled characters in TXT files. |
| rename | /?ri??ne?m/ | v. | re-(重新)+ name(名字) | 重命名 | 搭配:rename file(重命名文件);例句:You can rename TXT files with the REN command. |
| local | /?l??kl/ | adj./n. | loc(位置)+ -al(形容詞后綴) | 本地的;局部的 | 搭配:local environment(本地環(huán)境);例句:Endlocal will clear local environment variables. |
| loop | /lu?p/ | n./v. | 無特殊詞根 | 循環(huán) | 搭配:for loop(for循環(huán));例句:The for loop can realize batch operations efficiently. |
| ANSI | /?e? en es ?a?/ | abbr. | 美國國家標準學會縮寫 | ANSI編碼 | 搭配:ANSI text file(ANSI文本文件);例句:BAT scripts only support ANSI encoding TXT files. |
六、文章核心關鍵詞提?。ü?個)
- BAT批處理
- 批量目錄創(chuàng)建
- 批量文件創(chuàng)建
- setlocal
- 環(huán)境變量本地化
- 批處理命令
- ANSI編碼
- tree命令
- for循環(huán)
七、結(jié)語
BAT批處理作為Windows輕量化自動化工具,核心優(yōu)勢在于上手快、無環(huán)境依賴、批量操作高效,本文完整保留了原文所有實操代碼、注意事項與核心知識點,通過注釋解析、邏輯可視化、知識點擴展,讓晦澀的批處理指令更易理解。讀者可基于文中代碼,根據(jù)自身需求修改循環(huán)參數(shù)、文件路徑、文本列表,快速實現(xiàn)辦公/運維場景的批量操作,同時牢記編碼、命名、路徑三大避坑要點,避免腳本執(zhí)行異常。后續(xù)可深入學習批處理變量延遲、條件判斷、傳參等進階技能,進一步拓展BAT批處理的應用場景。
以上就是Windows BAT批處理通過TXT文本文件批量新建文件夾的方法的詳細內(nèi)容,更多關于 BAT批處理通過TXT新建文件夾的資料請關注腳本之家其它相關文章!
相關文章
批處理bat將txt文本第一列內(nèi)容相同的行的最后一列的數(shù)字相加
這篇文章主要介紹了批處理bat將txt文本第一列內(nèi)容相同的行的最后一列的數(shù)字相加,需要的朋友可以參考下2021-09-09

