如何修改.bat批处理脚本,使生成的子文件夹包含父文件夹(项目名)的名称?
如何修改.bat批处理脚本,使生成的子文件夹包含父文件夹(项目名)的名称?
这需求太实用了!每次新建项目都能自动带上项目名的子文件夹,效率直接拉满。其实实现起来很简单,核心就是先拿到当前项目文件夹的名称,再把它拼接到每个子文件夹的命名里就行。我给你改好脚本,再一步步解释:
修改后的完整脚本
@ECHO OFF REM 获取当前项目文件夹的名称(不管名字带不带空格都能正确识别) for %%i in (.) do set "ProjectName=%%~nxi" REM 创建带有项目名前缀的子文件夹,引号必须加,防止空格导致命令出错 md "%ProjectName%_01_Project-Brief" "%ProjectName%_02_Project-Assets" "%ProjectName%_03_Project-Research" "%ProjectName%_04_Project-Snapshots" "%ProjectName%_05_Project-Process" "%ProjectName%_06_Project-Mockups" echo 项目子文件夹已创建完成!
关键步骤解释
- 获取项目名:用
for %%i in (.) do set "ProjectName=%%~nxi"这行命令,能精准提取当前所在文件夹的名称(也就是你的项目名,比如"East Oasis"),哪怕名字里有空格也不会出问题。%%~nxi是批处理里的特殊语法,专门用来获取文件/文件夹的完整名称(文件夹没有扩展名,所以就是纯名称)。 - 拼接文件夹名:把
%ProjectName%和原来的子文件夹前缀用下划线拼接,比如%ProjectName%_01_Project-Brief,并且给每个文件夹名加上双引号——这一点非常重要,如果项目名带空格(比如"East Oasis"),不加引号的话批处理会把空格当成命令分隔符,导致创建出一堆错误的零散文件夹。 - 可选调整:如果你想把项目名放在子文件夹名称的后面(比如
01_Project-Brief_East Oasis),只要把拼接顺序改一下就行,比如写成"01_Project-Brief_%ProjectName%"。
效果演示
假设你新建了名为East Oasis的项目文件夹,进入该文件夹后运行这个脚本,生成的子文件夹会是:
- East Oasis_01_Project-Brief
- East Oasis_02_Project-Assets
- East Oasis_03_Project-Research
- East Oasis_04_Project-Snapshots
- East Oasis_05_Project-Process
- East Oasis_06_Project-Mockups
完全符合你的需求,以后新建项目再也不用手动改文件夹名啦!
备注:内容来源于stack exchange,提问作者Kareem
相关产品推荐
相关产品推荐

