batch-exec-cli
v1.3.1
Published
Efficiently iterate through directories and execute commands with progress display and parallel execution
Maintainers
Readme
batch-exec-cli
高效批量命令执行工具,能够遍历目录内所有直接子目录并执行命令。
功能特性
- 🚀 高效遍历目标目录的所有直接子目录, 默认并行执行
- 📁 支持绝对路径和相对路径
- 🚫 可配置忽略目录(支持
.gitignore风格的模式匹配) - 📊 提供执行摘要和失败目录列表
- 🔧 跨平台支持(Windows、macOS、Linux)
- 💬 详细的 verbose 输出模式
- 🎨 彩色高亮输出,便于识别目录路径和命令
- ⏳ 实时进度条显示,带旋转动画和执行时间
- ✨ 精美的输出格式和摘要展示
安装
npm install -g batch-exec-cli或者克隆项目后本地安装:
git clone <repository-url>
cd batch-exec-cli
npm install
npm link使用方法
基本用法
batch-exec <目录> <命令> [参数...]示例
在 ./my-projects 目录下的所有子目录中执行 git pull:
batch-exec ./my-projects git pull在 ./my-projects 目录下的所有子目录中更新 lodash 依赖:
batch-exec ./my-projects npm update lodash -S列出所有子目录的内容:
batch-exec ./repos ls -la选项
| 选项 | 别名 | 描述 |
| ------------------- | ---- | ---------------------------------------------- |
| -s, --skip <文件> | | 指定忽略文件路径(默认:./.batchexecignore) |
| -v, --verbose | | 显示详细输出 |
| --no-progress | | 禁用进度条显示 |
| --no-parallel | | 禁用并行执行, 按顺序执行 |
| -h, --help | | 显示帮助信息 |
使用自定义忽略文件
batch-exec --skip ./custom-ignore.txt ./repos git status禁用进度条
batch-exec --no-progress ./my-projects npm install显示详细输出
batch-exec -v ./my-projects git status输出示例
普通模式(带进度条)
⠋ [████████████████████████████░░] 85% (17/20) [5s]摘要展示
═══════════════════════════════════════════════════════════════
📊 Execution Summary
═══════════════════════════════════════════════════════════════
Total directories: 20
Successful: 18
Failed: 2
❌ Failed directories:
• project1: Error: Command failed
• project3: Error: Permission denied
═══════════════════════════════════════════════════════════════.batchexecignore 文件格式
与 .gitignore 文件格式完全相同:
node_modules
dist
build
.git
.idea
.vscode
*.tmp
temp-*API 使用
你也可以作为库使用:
import { batchExecute } from 'batch-exec-cli';
const results = await batchExecute('./my-projects', 'git', ['pull'], {
verbose: false,
showProgress: true
});
console.log(results);许可证
MIT
