背景
有时候想要删除某个目录下所有命名为xxx的文件夹,一个个手动去删除,非常辛苦,那么可以使用这个进行自动删除,一个典型例子就是我需要拷贝or删除一个存放了很多前端工程化项目的目录,因为它每个项目都有node_modules,那么拷贝和删除的话速度会非常非常慢,所以一般操作是使用rimraf包先删除node_modules再进行操作,执行完后再需要的项目里重新执行install,但是手动一个个去执行对手不太友好,所以写了个脚本去执行。
前提
1.安装node环境,在https://nodejs.org/en/官网下载即可(建议下载LTS,即长期支持版本)
2.执行以下命令全局安装rimrafnpm install rimraf -g
脚本
del.bat文件
echo off
node del.js node_modules
pause
del.js文件
const fs = require("fs");
const path = require("path");
const childProcess = require("child_process");
let delDir = "";
if (process.argv[2] == "" || process.argv[2] == null || process.argv[2] == undefined) {
console.error("Please Input the dir which you want to delete.");
process.exit(1);
} else {
delDir = process.argv[2];
}
function loopDirs(dir){
const dirs = fs.readdirSync(dir);
for(let i=0;i<dirs.length;i++){
let temp = dirs[i];
let newDir = path.join(dir,temp);
if(fs.statSync(newDir).isDirectory()){
if(temp == delDir){
console.log(`正在删除${newDir}`);
childProcess.execSync(`rimraf ${newDir}`);
}else{
loopDirs(newDir);
}
}
}
}
console.log("开始删除...");
loopDirs(__dirname);
console.log("删除完成...");
使用方法
- 将del.bat里的node_modules改为你想删除的目录名
- 将del.bat和del.js放在同一目录下
- 双击del.bat即可
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。