如何通过Node.js命令行传参创建目录(移除脚本固定路径)
实现Node.js脚本接收命令行参数创建目录
要实现通过命令行传入目录路径来创建目录,核心是利用Node.js内置的process.argv获取命令行参数,具体实现步骤如下:
1. 从命令行获取目标路径
Node.js中process.argv是一个存储命令行执行参数的数组:
- 第1个元素:
node可执行文件的路径 - 第2个元素:当前运行的脚本路径
- 第3个及以后元素:用户传入的自定义参数
我们只需要取process.argv[2]就能获取用户指定的目录路径。
2. 处理参数缺失的情况
必须先判断用户是否传入了路径,如果没有,直接输出提示信息并退出脚本,避免后续执行报错。
3. 修改fs创建目录的逻辑
将原来的固定路径替换为获取到的参数,同时建议用path.resolve()解析路径(确保路径格式正确,兼容相对/绝对路径),并开启recursive: true选项支持创建多层嵌套目录。
修改后的完整脚本示例
const fs = require('fs'); const path = require('path'); // 获取命令行传入的目标路径 const targetPath = process.argv[2]; // 检查参数是否存在 if (!targetPath) { console.error('请传入要创建的目录路径,示例:node ./stack/create.js ./path/folderName'); process.exit(1); } // 解析为绝对路径,避免路径歧义 const resolvedPath = path.resolve(targetPath); // 创建目录,支持递归创建多层结构 fs.mkdir(resolvedPath, { recursive: true }, (err) => { if (err) { console.error('目录创建失败:', err.message); process.exit(1); } console.log(`目录创建成功:${resolvedPath}`); });
使用方法
在终端执行以下命令即可指定路径创建目录:
node ./stack/create.js ./path/folderName
如果需要创建绝对路径的目录,直接传入绝对路径即可:
node ./stack/create.js /Users/yourname/projects/new-folder
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

