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

