利用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 相关文章推荐
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
Jun 09 Javascript
jQuery实现的导航条切换可显示隐藏
Oct 22 Javascript
浅析JS操作DOM的一些常用方法
May 13 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
AngularJS 与百度地图的结合实例
Oct 20 Javascript
利用js获取下拉框中所选的值
Dec 01 Javascript
Angular中ng-options下拉数据默认值的设定方法
Jun 21 Javascript
jQuery实现用户信息表格的添加和删除功能
Sep 12 jQuery
JavaScript实现的级联算法示例【省市二级联动功能】
Dec 25 Javascript
react koa rematch 如何打造一套服务端渲染架子
Jun 26 Javascript
el-table树形表格表单验证(列表生成序号)
May 31 Javascript
jQuery带控制按钮轮播图插件
Jul 31 jQuery
纯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
用Flash图形化数据(一)
2006/10/09 PHP
经典的PHPer为什么被认为是草根?
2007/04/02 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
JavaScript prototype属性使用说明
2010/05/13 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
Tab页界面 用jQuery及Ajax技术实现(php后台)
2011/10/12 Javascript
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
javascript密码强度校验代码(两种方法)
2015/08/10 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
JS重载实现方法分析
2016/12/16 Javascript
vue组件间通信解析
2017/03/01 Javascript
js判断PC端与移动端跳转
2020/12/24 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
JS判断两个对象内容是否相等的方法示例
2017/04/10 Javascript
js + css实现标签内容切换功能(实例讲解)
2017/10/09 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
es6函数之尾调用优化实例分析
2020/04/25 Javascript
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
Python3基础之基本运算符概述
2014/08/13 Python
Python中的Django基本命令实例详解
2018/07/15 Python
在matplotlib的图中设置中文标签的方法
2018/12/13 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
Python3.5局部变量与全局变量作用域实例分析
2019/04/30 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
详解CSS3:overflow属性
2020/11/17 HTML / CSS
小学生演讲稿
2014/01/12 职场文书
写给女生的道歉信
2014/01/14 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
公司开业庆典主持词
2014/03/21 职场文书
公司股权转让协议书
2014/04/12 职场文书
优秀毕业生求职信
2014/06/05 职场文书
教师个人考察材料
2014/12/16 职场文书
2016最新离婚协议书范本及程序
2016/03/18 职场文书
Mysql 一主多从的部署
2022/05/20 MySQL