利用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数据表格插件
Jul 17 Javascript
获取div编辑框,textarea,input text的光标位置 兼容IE,FF和Chrome的方法介绍
Nov 08 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
js随机生成26个大小写字母
Feb 12 Javascript
jQuery zTree加载树形菜单功能
Feb 25 Javascript
从重置input file标签中看jQuery的 .val() 和 .attr(“value”) 区别
Jun 12 Javascript
js将滚动条滚动到指定位置的简单实现方法
Jun 25 Javascript
浅析webpack 如何优雅的使用tree-shaking(摇树优化)
Aug 16 Javascript
iview table render集成switch开关的实例
Mar 14 Javascript
JavaScript函数节流和函数去抖知识点学习
Jul 31 Javascript
JS实现canvas简单小画板功能
Jun 23 Javascript
javascript实现贪吃蛇小练习
Jul 05 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输出数组中重名的元素的几种处理方法
2012/09/05 PHP
PHP与javascript实现变量交互的示例代码
2013/07/23 PHP
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
整理一些最近经常遇到的前端面试题
2017/04/25 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
bootstrap confirmation按钮提示组件使用详解
2017/08/22 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
2018/02/02 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
AngularJS发送异步Get/Post请求方法
2018/08/13 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
[01:00]选手抵达华西村 整装待发备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Python中random模块用法实例分析
2015/05/19 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
python爬虫 urllib模块反爬虫机制UA详解
2019/08/20 Python
python分别打包出32位和64位应用程序
2020/02/18 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
速比涛英国官网:Speedo英国
2019/07/15 全球购物
大二自我鉴定
2014/01/31 职场文书
渡河少年教学反思
2014/02/12 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
市场营销工作计划书
2014/09/15 职场文书
员工评语范文
2014/12/31 职场文书
机器人瓦力观后感
2015/06/12 职场文书
单位更名证明
2015/06/18 职场文书
Redis Cluster 字段模糊匹配及删除
2021/05/27 Redis
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA