利用Node.js对文件进行重命名


Posted in Javascript onMarch 12, 2017

前言

最近把博客换了皮肤,今天早上起来就开始捣鼓文件命名问题。hexo的文章基本都是生成在_post文件夹下,若文章多了以后就不好管理,所就打算以【日期+文章标题】为文件名:

更改前:

利用Node.js对文件进行重命名

更改后:

利用Node.js对文件进行重命名

文章一共90篇,作为程序员不可能一个个的去改,得用工具帮我去完成,那就是用程序帮我完成这么机械的任务。

完成这项任务的前提条件是:文章的时间和文章的标题

题目很简单,文件名就是,时间呢?幸好hexo在生成文章的时候,文件内容里面已经有时间:

title: Nodjs重命名文件
date: 2017-03-05 08:57:47
categories:
 - nodejs
 - javascript
tags:

所以接下来的事情就明确了:

1. 读取文章内容

2. 提取时间

3. 拼接时间和文章标题

代码整体思路:

1.读取指定目录下的文件内容

2.一行行的分割内容,提取想要的内容

3.拼接时间+标题

在整行读取内容遇到一些问题,查了文档nodejs好像有 https://nodejs.org/api/readline.html ,但我没有用直接用
了一个偷懒的方法分割内容:

data.toString().split('\n')

这样就得到一个以换行 \n 为分割的数组。

用到的方法:

readdirSync readFile rename

下面是代码:

/*
* @Author: zhuxy
* @Date: 2017-03-05 08:05:39
* @Last Modified by: zhuxy
* @Last Modified time: 2017-03-05 09:23:35
*/
const fs = require('fs');
let path = 'your/path';
let files = fs.readdirSync(path);
for(let i = 0; i < files.length; i++){
 fs.readFile(`${path}/${files[i]}`,function(err,data){
  // console.log(data.toString().split('\n')[0].split(' ')[1])
  // console.log(data.toString().split('\n')[1].split(' ')[1])
  let newname = data.toString().split('\n')[1].split(' ')[1] + '-' + data.toString().split('\n')[0].split(' ')[1].replace(/['|']/g,'')
  fs.rename(`${path}/${files[i]}`,`${path}/${newname}.md`)
 })
}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
Jan 22 Javascript
火狐4、谷歌12不支持Jquery Validator的解决方法分享
Jun 20 Javascript
js实现上传图片之上传前预览图片
Mar 25 Javascript
Javascript delete 引用类型对象
Nov 01 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
May 02 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
Jul 31 Javascript
javascript实现五星评分功能
Nov 10 Javascript
基于JavaScript实现点击页面任何位置返回
Aug 31 Javascript
详解Angular 4 表单快速入门
Jun 05 Javascript
基于JavaScript实现评论框展开和隐藏功能
Aug 25 Javascript
webpack学习教程之前端性能优化总结
Dec 05 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 Javascript
纯js的右下角弹窗实例
Mar 12 #Javascript
彻底学会Angular.js中的transclusion
Mar 12 #Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 #Javascript
jquery mobile实现可折叠的导航按钮
Mar 11 #Javascript
前端开发之CSS原理详解
Mar 11 #Javascript
JS实现简易刻度时钟示例代码
Mar 11 #Javascript
js鼠标跟随运动效果
Mar 11 #Javascript
You might like
Extended CHM PHP 语法手册之 DIY
2006/10/09 PHP
关于php内存不够用的快速解决方法
2013/10/26 PHP
提高PHP编程效率的方法
2013/11/07 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
构造函数+原型模式构造js自定义对象(最通用)
2014/05/12 Javascript
JS实现带提示的星级评分效果完整实例
2015/10/30 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
vue-cli3中vue.config.js配置教程详解
2019/05/29 Javascript
微信小程序canvas绘制圆角base64图片的实现
2019/08/18 Javascript
js实现微信聊天效果
2020/08/09 Javascript
[40:50]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第四场
2014/05/24 DOTA
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
2018/05/16 Python
python将秒数转化为时间格式的实例
2018/09/16 Python
详解python算法之冒泡排序
2019/03/05 Python
python 返回一个列表中第二大的数方法
2019/07/09 Python
简单易懂Pytorch实战实例VGG深度网络
2019/08/27 Python
python3 tcp的粘包现象和解决办法解析
2019/12/09 Python
Pytorch 定义MyDatasets实现多通道分别输入不同数据方式
2020/01/15 Python
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
证券期货行业个人的自我评价
2013/12/26 职场文书
实验教师岗位职责
2014/02/13 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
大学生毕业求职信
2014/06/12 职场文书
小学生环保标语
2014/06/13 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
关于工作经历的证明书
2014/10/11 职场文书
周末问候语大全
2015/11/10 职场文书
mybatis 获取更新记录的id
2022/05/20 Java/Android