使用 nodejs 对文件进行批量重命名
0. 前言
从B站下载了一点视频,硕鼠自动将标题添加到了每个文件名的前面,导致文件名过长,不方面查看文件的具体内容。
虽然只有二十几个文件,但是手动删除前缀还是个不小的工作量,还有可能删除错误。考虑到正在努力成为一个程序员,应该为每一个带有重复属性的工作寻求优化。
想到nodejs可以读写文件,决定尝试使用nodejs来实现。网上搜到一点类似做法,根据自己需要,改吧改吧,二十分钟写好了(确实比手动删除慢了好多==)。
1. 引包
// nodejs中文件操作主要依靠fs模块
const fs = require('fs')
2. 实现
// 1. 定义两个工具函数
// 获取指定目录路径下的所有文件名
const getFileNames = path => {
// 使用readdir获取指定目录下的所有文件名
return fs.readdirSync(path);;
}
// 根据指定字符截取文件名,返回截取后的字段
const getFileSuffix = (fileName, splitChar) => {
// 取字符第一次出现的位置
const first = fileName.indexOf(splitChar);
// 取字符最后一次出现的位置(根据需要选择)
// const first = fileName.lastIndexOf(splitChar);
const namelength = fileName.length; //取到文件名长度
return fileName.substring(first + 1, namelength); //截取获得后缀名
}
// 2. 定义目录
const dirName = `D:\\3. 生活\\3.2 文件下载\\硕鼠下载\\我的解析任务1912152356`;
// 3. 读取与改写
let files = getFileNames(dirName);
files.forEach((item, i) => {
// 这里对旧名操作获取新名
let newName = getFileSuffix(item, "-")
// 使用rename方法进行重命名
fs.rename(`${dirName}\\${item}`, `${dirName}\\${newName}`, (err) => {
if (err) throw err;
console.log('重命名完成');
});
})
使用 nodejs 对文件进行批量重命名的更多相关文章
- linux下的文件操作——批量重命名
概述:在日常工作中,我们经常需要对一批文件进行重命名操作,例如将所有的jpg文件改成bnp,将名字中的1改成one,等等.文本主要为你讲解如何实现这些操作 1.删除所有的 .bak 后缀: renam ...
- 使用bat文件实现批量重命名功能
在生活中我们总会碰到对大量文件进行重命名操作,这时如果一个一个的,选取文件→右键→重命名→选取文件,这样操作势必会浪费大量时间. 现在小编就告诉大家一个使用bat文件(命令行)的方法,快速对文件进行重 ...
- 利用Python对文件进行批量重命名
最近几天工作的内容是对40个项目进行考核,每个项目都需要一个考核评分表,已经有了项目的列表. 如果用常规的方法,需要复制40个文件,并逐个修改,不光工作量大,也容易出错,后期修改也不方便. 于是想到了 ...
- 利用Python对文件进行批量重命名——以图片文件为例
效果如下:0001号用户的第 i 张图片 代码: import os class ImageRename(): def __init__(self): self.path = 'C:/Users/lb ...
- Linux批量重命名文件
五种方法实现Linux批量重命名文件 Linux批量重命名文件是指对某些特定的文件统一进行重新命名,以改变原来一批文件的名称,这里介绍五种方法来实现. Linux批量重命名文件会涉及到改变一个字母.改 ...
- 使用java对文件批量重命名
有时候从网络上下载的电视剧或者动漫,名字上都会被该网站加上前缀或者后缀,如图: 那么处女座的同学就不同意了,不行,我就是想让它按照我的习惯方式命名!但是呢,一个个修改是不是特别麻烦,如果是上百个呢?如 ...
- shell下批量重命名svn文件的方法
shell下批量重命名svn文件的方法 目标: 将svn目录下所有文件重命名 , 原文件前缀为 ucc_ , 批量改为 xmd_ 用tree看下当前svn目录 ucc_1.c ucc_1.h ucc_ ...
- python之对指定目录文件夹的批量重命名
python之对指定目录文件夹的批量重命名 import os,shutil,string dir = "/Users/lee0oo0/Documents/python/test" ...
- C#实现文件批量重命名源码下载
本文要实现的功能是 文件批量重命名,当选择一个文件夹时,通过操作可以把文件夹下面所有文件进行重命名.建立了HoverTreeBatch项目. 然后 定义文件夹信息: DirectoryInfo _Th ...
随机推荐
- HTML与CSS 开发常用语义化命名
一.布局❤️ header 头部/页眉:index 首页/索引:logo 标志:nav/sub_nav 导航/子导航:banner 横幅广告:main/content 主体/内容:container/ ...
- 06 yarn是什么
yarn集群中有两个角色: 主节点:Resource Manager 1台 从节点:Node Manager N台 Resource Manager一般安装在一台专门的机器上 Node Mana ...
- 简单的猜数字小游戏--Python
猜数字小游戏: #coding=utf-8 import random answer =random.randint(1,100) #生成随机数 n=int (input("Please ...
- ES6中的Promise使用总结
One.什么是Promise? Promise是异步编程的解决方案,而它本身也就是一个构造函数,比传统的异步解决[回调函数]和[事件]更合理,更强大. Two.Promise有何作用? 作用:解决回调 ...
- C语言程序设计(七) 函数
第七章 函数 分而治之: 把较大的任务分解成若干较小.较简单的任务,并提炼出公用任务的方法 函数是C语言中模块化程序设计的最小单位,既可以把每个函数都看作一个模块,也可以将若干相关的函数合并成一个模块 ...
- 记录一个引用文件所有js文件的方法
在项目api声明的时候,避免每次添加新的js都要对应去处理 首先我在项目api文件下新建一个files的文件夹,然后再api文件夹下的index.js这样写: var api = {}; const ...
- 从零搭建Spring Cloud Gateway网关(一)
新建Spring Boot项目 怎么新建Spring Boot项目这里不再具体赘述,不会的可以翻看下之前的博客或者直接百度.这里直接贴出对应的pom文件. pom依赖如下: <?xml vers ...
- mysql 如果没有密码 就不能远程连接
mysql 如果没有密码 就不能远程连接
- Css盒模型属性详解(margin和padding)
Css盒模型属性详解(margin和padding) 大家好,我是逆战班的一名学员,今天我来给大家分享一下关于盒模型的知识! 关于盒模型的属性详解及用法 盒模型基本属性有两个:padding和marg ...
- 选择tomcat时候提示Project facet Java version 1.8 is not supported.解决办法
是因为jdk版本不一致导致的,如何解决? 方法一: 选中项目Properties,选择Project Facets,右击选择Java,Change Version 方法二: 在项目的目录下有一个.se ...