nodejs,写一个全局的脚本,在哪个文件夹下都可以调用,遍历这个文件夹下的压缩包,解压后,删除掉压缩包
时间: 2024-01-26 19:04:33 浏览: 66
你可以将上一个脚本改为全局脚本,具体步骤如下:
1. 在脚本开头添加 `#!/usr/bin/env node`,表示使用 Node.js 运行该脚本。
2. 在命令行中执行 `npm init -y` 初始化项目,并执行 `npm i -g` 将该脚本安装为全局命令。
3. 在命令行中执行 `which <command>`(`<command>` 为你的脚本命令名)查看全局命令的安装路径。
4. 在该安装路径下创建一个软链接(symbolic link),使得该命令可以在任何文件夹下调用。
下面是修改后的脚本:
```javascript
#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const unzipper = require('unzipper');
const folderPath = process.argv[2]; // 命令行参数,表示需要遍历的文件夹路径
// 遍历文件夹
fs.readdir(folderPath, (err, files) => {
if (err) {
console.error(err);
return;
}
// 遍历文件
files.forEach((file) => {
const filePath = path.join(folderPath, file);
// 判断是否为压缩包
if (filePath.endsWith('.zip')) {
// 解压缩
fs.createReadStream(filePath)
.pipe(unzipper.Extract({ path: folderPath }))
.on('close', () => {
// 删除压缩包
fs.unlinkSync(filePath);
console.log(`${filePath} 解压缩并删除成功`);
});
}
});
});
```
修改后的脚本可以在任何文件夹下调用,使用命令 `command <folderPath>`,其中 `<folderPath>` 为需要遍历的文件夹路径。例如,如果你将该脚本保存为 `unzip.js`,并将其安装为全局命令 `unzip`,则可以在命令行中执行 `unzip /path/to/folder`,即可遍历该文件夹下的压缩包,解压缩并删除压缩包。
阅读全文