如何编写批量创建多级目录脚本

wen 实用脚本 37

本文目录导读:

如何编写批量创建多级目录脚本

  1. Windows 批处理脚本 (.bat)
  2. PowerShell 脚本
  3. Linux/Mac Bash 脚本
  4. Python 脚本 (跨平台)
  5. 生成目录列表文件
  6. 使用说明

Windows 批处理脚本 (.bat)

使用 mkdir 命令

@echo off
:: 创建单一路径的多级目录
mkdir project\src\components
mkdir project\src\utils
mkdir project\docs\api
mkdir project\docs\guides
:: 使用变量创建
set BASE_DIR=C:\MyProject
mkdir %BASE_DIR%\src\components\Button
mkdir %BASE_DIR%\src\components\Form
mkdir %BASE_DIR%\src\styles\themes
:: 从文件读取目录列表
for /f "tokens=*" %%a in (dirs.txt) do (
    mkdir "%%a"
)
echo 目录创建完成!
pause

批量从列表创建

@echo off
setlocal enabledelayedexpansion
:: 定义目录结构
set DIRS[0]=app\config
set DIRS[1]=app\controllers\api
set DIRS[2]=app\models
set DIRS[3]=app\views\admin
set DIRS[4]=public\css\themes
set DIRS[5]=public\js\components
set DIRS[6]=tests\unit
set DIRS[7]=tests\integration
:: 循环创建
set count=0
:Loop
if defined DIRS[%count%] (
    mkdir "!DIRS[%count%]!" 2>nul
    if exist "!DIRS[%count%]!" (
        echo 已创建: !DIRS[%count%]!
    )
    set /a count+=1
    goto Loop
)
echo 全部目录创建完成!
pause

PowerShell 脚本

基础批量创建

# 创建多个多级目录
$directories = @(
    "C:\Projects\WebApp\src\components",
    "C:\Projects\WebApp\src\services",
    "C:\Projects\WebApp\src\styles\themes",
    "C:\Projects\WebApp\public\assets\images",
    "C:\Projects\WebApp\tests\unit\components"
)
foreach ($dir in $directories) {
    New-Item -ItemType Directory -Path $dir -Force
    Write-Host "已创建: $dir" -ForegroundColor Green
}

使用配置文件

# config.json
# {
#     "projectName": "MyApp",
#     "directories": [
#         "src/components",
#         "src/services/api",
#         "src/views/admin",
#         "src/styles/themes/dark",
#         "tests/unit",
#         "tests/e2e"
#     ]
# }
# 读取配置并创建目录
$config = Get-Content "config.json" | ConvertFrom-Json
$basePath = "C:\Projects\$($config.projectName)"
foreach ($dir in $config.directories) {
    $fullPath = Join-Path $basePath $dir
    New-Item -ItemType Directory -Path $fullPath -Force
    Write-Host "创建: $fullPath" -ForegroundColor Green
}

Linux/Mac Bash 脚本

基础版本

#!/bin/bash
# 创建多个多级目录
BASE_DIR="./project"
# 方法1: 逐行创建
mkdir -p "$BASE_DIR/src/components"
mkdir -p "$BASE_DIR/src/utils/helpers"
mkdir -p "$BASE_DIR/src/styles/themes"
mkdir -p "$BASE_DIR/public/assets/images"
mkdir -p "$BASE_DIR/tests/unit"
# 方法2: 使用数组
DIRS=(
    "$BASE_DIR/app/controllers/api"
    "$BASE_DIR/app/models/user"
    "$BASE_DIR/app/views/admin/dashboard"
    "$BASE_DIR/config/environments"
    "$BASE_DIR/database/migrations"
    "$BASE_DIR/resources/lang/zh_CN"
)
for dir in "${DIRS[@]}"; do
    mkdir -p "$dir"
    echo "已创建: $dir"
done

进阶版本带交互

#!/bin/bash
# 批量创建目录脚本
echo "=== 批量创建多级目录脚本 ==="
# 定义基础路径
read -p "请输入基础路径 (默认: ./project): " BASE_DIR
BASE_DIR=${BASE_DIR:-"./project"}
# 从文件读取目录列表
if [ -f "dirs.txt" ]; then
    echo "从 dirs.txt 文件读取目录列表..."
    while IFS= read -r dir; do
        [ -z "$dir" ] && continue  # 跳过空行
        full_path="$BASE_DIR/$dir"
        if mkdir -p "$full_path" 2>/dev/null; then
            echo "✓ 创建: $full_path"
        else
            echo "✗ 失败: $full_path"
        fi
    done < "dirs.txt"
else
    # 默认目录结构
    echo "创建默认目录结构..."
    DIRS=(
        "src/components/Button"
        "src/components/Form"
        "src/components/Modal"
        "src/services/api"
        "src/utils/helpers"
        "src/styles/themes/dark"
        "public/assets/images/icons"
        "tests/unit/components"
        "tests/e2e/specs"
    )
    for dir in "${DIRS[@]}"; do
        mkdir -p "$BASE_DIR/$dir"
        echo "✓ 创建: $BASE_DIR/$dir"
    done
fi
echo -e "\n目录创建完成!"
echo "基础路径: $BASE_DIR"

Python 脚本 (跨平台)

#!/usr/bin/env python3
import os
import json
def create_directories(base_path, directories):
    """批量创建多级目录"""
    for dir_path in directories:
        full_path = os.path.join(base_path, dir_path)
        try:
            os.makedirs(full_path, exist_ok=True)
            print(f"✓ 创建: {full_path}")
        except Exception as e:
            print(f"✗ 失败 {full_path}: {e}")
# 定义目录结构
DIRECTORIES = [
    "src/components/navigation",
    "src/components/forms",
    "src/services/api/v1",
    "src/services/api/v2",
    "src/utils/helpers",
    "src/styles/themes/light",
    "src/styles/themes/dark",
    "public/assets/images/icons",
    "public/assets/fonts",
    "tests/unit/components",
    "tests/integration/api",
    "docs/api/v1",
    "docs/guides",
]
if __name__ == "__main__":
    # 1. 硬编码方式
    create_directories("./my_project", DIRECTORIES)
    # 2. 从配置文件读取
    # with open("config.json", "r") as f:
    #     config = json.load(f)
    #     create_directories(config["base_path"], config["directories"])

生成目录列表文件

创建 dirs.txt 文件内容示例:

src/components/Button
src/components/Form
src/components/Modal
src/services/api
src/utils/helpers
src/styles/themes/dark
public/assets/images
tests/unit
tests/integration
docs/api/v1
docs/guides
scripts/build
config/environments
database/migrations

使用说明

推荐方案

  1. Windows 用户:使用 PowerShell 脚本
  2. Linux/Mac 用户:使用 Bash 脚本
  3. 跨平台需求:使用 Python 脚本

运行脚本

# Windows .bat
create_dirs.bat
# PowerShell
.\create_dirs.ps1
# Bash
chmod +x create_dirs.sh
./create_dirs.sh
# Python
python create_dirs.py

这些脚本都可以自动创建多级目录,省去手动逐个创建的麻烦,根据需要选择合适的版本即可!

抱歉,评论功能暂时关闭!