利用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的cookie插件
Apr 07 Javascript
关于JQuery($.load)事件的用法和分析
Apr 09 Javascript
JS文本获得焦点清除文本文字的示例代码
Jan 13 Javascript
JS在可编辑的div中的光标位置插入内容的方法
Nov 20 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
Mar 04 Javascript
JavaScript实现选中文字提示新浪微博分享效果
Jun 15 Javascript
pm2 部署 node的三种方法示例
Oct 20 Javascript
如何在基于vue-cli的项目自定义打包环境
Nov 10 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
Mar 28 Javascript
extjs图表绘制之条形图实现方法分析
Mar 06 Javascript
Typescript3.9 常用新特性一览(推荐)
May 14 Javascript
基于elementUI竖向表格、和并列的案例
Oct 26 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
php一句话cmdshell新型 (非一句话木马)
2009/04/18 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
2017/04/27 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
2019/03/01 PHP
解读IE和firefox下JScript和HREF的执行顺序
2008/01/12 Javascript
jquery学习笔记 用jquery实现无刷新登录
2011/08/08 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
jQuery 的全选(全非选)即取得被选中的值使用介绍
2013/11/12 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
JQuery实现的图文自动轮播效果插件
2015/06/19 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
详解node中创建服务进程
2017/05/09 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
JS 实现微信扫一扫功能
2018/09/14 Javascript
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
Python基于回溯法解决01背包问题实例
2017/12/06 Python
wxpython绘制音频效果
2019/11/18 Python
使用python去除图片白色像素的实例
2019/12/12 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
详解Python中string模块除去Str还剩下什么
2020/11/30 Python
深入浅出CSS3 background-clip,background-origin和border-image教程
2011/01/27 HTML / CSS
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
计算机应用专业推荐信
2013/11/13 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
2015年民主评议党员工作总结
2015/05/19 职场文书
工程款催款函
2015/06/24 职场文书
2015暑假社会调查报告
2015/07/13 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书
用 Python 元类的特性实现 ORM 框架
2021/05/19 Python
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫