Windows BAT批处理通过TXT文本文件批量新建文件夹的方法

 更新时间:2026年03月15日 14:25:18   作者:纸上笔下  
在Windows系统日常运维、办公自动化场景中,BAT批处理脚本是无需安装编程环境、上手即用的高效工具,能快速实现文件批量创建、目录批量生成等重复操作,本文将基于经典BAT批处理实操代码,逐行解析代码逻辑并添加中文注释,需要的朋友可以参考下

一、前言:BAT批处理的实用价值与本文核心内容

在Windows系统日常运维、办公自动化场景中,BAT批处理脚本是无需安装编程环境、上手即用的高效工具,能快速实现文件批量创建、目录批量生成、文件重命名、目录结构导出等重复性操作,大幅提升办公与运维效率。本文将基于经典BAT批处理实操代码,完整保留原文核心指令、操作规则与避坑要点,逐行解析代码逻辑并添加中文注释,深度拆解批处理核心命令用法、变量本地化机制,搭配UML流程图可视化执行逻辑,同时整理英文生词表、提取核心关键词,助力零基础读者快速掌握BAT批处理实操技能,规避常见操作陷阱。

本文核心覆盖内容:批量创建文本文件/多级目录、目录结构树导出、文件批量重命名、环境变量本地化(setlocal/endlocal)实操、批处理命令避坑(编码问题、命名冲突、路径限制),所有代码均经过实测,可直接复用修改。

二、BAT批处理核心代码逐段解析(附完整中文注释)

下文将原文所有BAT代码按功能模块拆分,逐行添加中文注释,明确每一行指令的作用、语法规则与注意事项,确保读者完全理解代码逻辑,无原文信息遗漏。

2.1 模块一:遍历文件夹并生成同名文本文件

该模块核心功能为递归遍历当前目录及所有子目录,在每个文件夹下生成与文件夹同名的txt文本文件,是批量文件创建的基础实操。

@echo off
:: 关闭命令行回显,避免执行过程中显示冗余指令,提升脚本整洁度
:: 遍历文件夹,在每个文件夹下以文件夹的名为名建立文本文件
:: code by jm 2006-9-8  脚本作者与创作时间标注
:: for /r 表示递归遍历当前目录及所有子目录,%%i 为遍历的目录变量
for /r %%i in (.) do (
   :: cd.>  生成空文件,%%i为当前遍历的目录路径,%%~ni为目录名(去除路径后缀),最终生成同名txt文件
   cd.>"%%i\%%~ni.txt"
)
pause
:: 暂停脚本执行,等待用户按任意键退出,避免命令行窗口一闪而过

2.2 模块二:批量生成多级目录与文本文件

该模块通过循环指令,批量创建10组主目录+子目录结构,同时生成10个序号命名的文本文件,实现目录与文件的批量初始化。

@echo off
:: for /L 表示数值循环,%%g为循环变量,1,1,10代表起始值1、步长1、终止值10,循环执行10次
for /L %%g in (1,1,10) do (
    :: md 为创建目录命令,生成Folder1-Folder10主目录
    md Folder%%g
    :: 在主目录下创建filesin子目录
    md Folder%%g\filesin
    :: 在主目录下创建filesout子目录
    md Folder%%g\filesout
) 
::在当前目录下创建十个文本文件,循环逻辑同上,echo.生成空内容,重定向为txt文件
for /l %%a in (1 1 10) do echo.>%%a.txt 
:: 再次关闭回显(冗余指令,保留原文内容不做删减)
@echo off

2.3 模块三:导出目录结构与文件清单

该模块核心解决目录结构可视化问题,通过tree、dir命令导出不同格式的目录文件清单,同时标注了关键命名避坑要点,是Windows目录管理的实用技巧。

rem 此BAT文件名一定不能是"tree.bat",否则tree命令会实效,不知道为什么?但用"dir.bat"作文件名却可以。
rem 注释:rem为批处理注释指令,作用等同于::,此处标注脚本命名禁忌
rem 可能是因为系统目录有"tree.com",系统会混淆吧。
rem 在当前目录生成很漂亮的结构树,tree /f 显示目录结构+所有文件,重定向写入Tree_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 模块四:按文本列表批量创建文件(含编码避坑)

该模块实现通过文本列表批量生成文件,重点标注了ANSI编码强制要求,同时详解ren重命名命令的使用规则,是批量文件生成的进阶玩法。

@echo on 
::开启命令行回显,可查看脚本执行细节
::注意:所读取的txt文本文件编码必须为ANSI,其它格式(含UTF-8)显示为乱码。 
::Ren 为文件重命名命令,将当前目录所有txt文件重命名为dept_list.txt
Ren *.txt dept_list.txt 
@echo off 
::跳转到Note标签,执行注释说明内容
Goto Note 
::Note标签注释:ren命令使用规则,原文核心注意事项,完整保留
新文件名前不可以加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名; 
允许使用通配符更改一组文件名或扩展名; 
不能为要修改的目标文件指定新的盘符和文件夹; 
:note 
::for /f 读取文本文件内容,delims= 取消分隔符,避免文件名含空格报错
for /f "delims=" %%a in (dept_list.txt) do ( 
    ::开启环境变量本地化,防止变量污染全局环境
    setlocal 
    ::将读取的文本内容赋值给str变量
    set "str=%%a" 
    ::根据读取的内容生成同名txt文件
    cd.> "%%a.txt" 
    ::关闭环境变量本地化,清空局部变量
    endlocal 
) 
::暂停并退出脚本
Pause&Exit

2.5 模块五:按文本列表批量创建目录+变量本地化详解

该模块在批量创建目录的基础上,深度解析setlocal/endlocal环境变量本地化机制,完整保留原文变量规则与示例代码,是理解批处理变量核心的关键内容。

Goto Note 
::setlocal与endlocal核心注释,原文核心知识点,完整保留
setlocal 与 endlocal相当于一个局部变量,只不过它继承了原来老的变量中的值。setlocal就是开启环境变量本地化,其实就是说当开启这个命令后,所有新设置的环境变量都只在本次运行时有效,而endlocal则是结束环境变量本地化,当然必须先是开启了才会起作用,当运行endlocal后,先前设置的所有变量将会被清空。 
::setlocal/endlocal两种核心用法详解
setlocal 或 endlocal 的情况是: 
1、变量延迟开关 
setlocal   enabledelayedexpansion 
::开启变量延迟,解决循环中变量赋值不生效问题
setlocal   disabledelayedexpansion 
::关闭变量延迟
2、变量本地化 示例代码: 
set v=123 
echo %v% 
pause 
setlocal 
set v=abc 
echo %v% 
pause 
endlocal 
echo %v% 
:Note 
@echo on 
::编码注意事项重申,完整保留原文内容
::注意:所读取的txt文本文件编码必须为ANSI,其它格式(含UTF-8)显示为乱码。 
Ren *.txt dept_list.txt 
@echo off 
Goto Note 
::ren命令使用规则重申
新文件名前不可以加上盘符和路径,因为该命令只能对同一盘上的文件更换文件名; 
允许使用通配符更改一组文件名或扩展名; 
不能为要修改的目标文件指定新的盘符和文件夹; 
:note 
::读取文本列表,批量创建目录
for /f "delims=" %%a in (dept_list.txt) do ( 
    setlocal 
    set "str=%%a" 
    ::根据文本内容批量创建目录
    md "%%a" 
    endlocal 
) 
Pause&Exit

2.6 模块六:MD创建目录命令官方详解+列表批量建目录

该模块完整保留MD命令的官方语法、参数说明,同时实现通过指定文本列表批量创建文件夹,补充繁体中文注释,适配不同阅读习惯。

::MD命令官方定义,完整保留原文内容
功能:创建新的子目录 
类型:内部命令    
格式:MD[盘符:][路径名]〈子目录名〉 
   
使用说明:    
(1)“盘符”:	指定要建立子目录的磁盘驱动器字母,若省略,则为当前驱动器;    
(2)“路径名”:	要建立子目录的上级目录名,若缺省则建在当前目录下。 
::繁体中文提示,完整保留原文内容
@echo 請先將要新建文件夾的名稱保存到"Folder.List.txt"中,註:(壹個文件夾名占壹行,且不能夠使用空格)。
@pause
::读取Folder.List.txt文本列表,批量创建目录
@for /f %%a in (Folder.List.txt) do (md %%a)
@echo 批量新建文件夾完成。
@pause

三、BAT批处理核心逻辑可视化(Mermaid UML流程图)

为了更直观理解BAT批处理的执行流程,下文通过CSDN适配的Mermaid格式UML图,分别可视化批量目录/文件创建流程与环境变量本地化执行流程,清晰梳理指令执行逻辑。

3.1 批量创建目录/文件执行流程图

暂时无法在豆包文档外展示此内容

3.2 setlocal/endlocal变量本地化流程图

暂时无法在豆包文档外展示此内容

四、BAT批处理核心命令与避坑要点总结

4.1 核心命令用法汇总

  • md/mkdir:Windows内部命令,用于创建单层/多级目录,支持路径指定,不可跨盘符创建;
  • for:批处理循环指令,分/r(递归遍历)、/L(数值循环)、/f(文本读取)三种核心用法,是批量操作的核心;
  • ren/rename:文件重命名命令,仅支持同盘符、同目录操作,支持通配符批量修改;
  • tree/dir:目录查看命令,tree /f生成结构树,dir /s递归展示文件,dir /d简洁列示;
  • setlocal/endlocal:环境变量本地化命令,解决变量污染、变量延迟问题,是进阶批处理的必备指令。

4.2 高频避坑要点(原文核心+实操补充)

  1. 编码问题:批处理读取txt文件必须为ANSI编码,UTF-8、Unicode等格式会出现乱码,可通过记事本“另存为-编码ANSI”解决;
  2. 命名冲突:BAT脚本不可命名为tree.bat,会与系统tree.com命令冲突,导致tree指令失效;
  3. 路径限制renmd命令不可跨盘符操作,目标路径不可包含非法字符与空格;
  4. 变量延迟:循环中修改变量需开启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(内部命令);例句: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(本地环境);例句:Endlocal will clear local environment variables.
loop/luːp/n./v.无特殊词根循环搭配:for loop(for循环);例句: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.

六、文章核心关键词提取(共9个)

  1. BAT批处理
  2. 批量目录创建
  3. 批量文件创建
  4. setlocal
  5. 环境变量本地化
  6. 批处理命令
  7. ANSI编码
  8. tree命令
  9. for循环

七、结语

BAT批处理作为Windows轻量化自动化工具,核心优势在于上手快、无环境依赖、批量操作高效,本文完整保留了原文所有实操代码、注意事项与核心知识点,通过注释解析、逻辑可视化、知识点扩展,让晦涩的批处理指令更易理解。读者可基于文中代码,根据自身需求修改循环参数、文件路径、文本列表,快速实现办公/运维场景的批量操作,同时牢记编码、命名、路径三大避坑要点,避免脚本执行异常。后续可深入学习批处理变量延迟、条件判断、传参等进阶技能,进一步拓展BAT批处理的应用场景。

以上就是Windows BAT批处理通过TXT文本文件批量新建文件夹的方法的详细内容,更多关于 BAT批处理通过TXT新建文件夹的资料请关注脚本之家其它相关文章!

相关文章

最新评论