利用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 文本框使用小结
May 22 Javascript
javascript动态加载二
Aug 22 Javascript
自己使用jquery写的一个无缝滚动的插件
Apr 30 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
Jquery插件easyUi实现表单验证示例
Dec 15 Javascript
angularjs实现搜索的关键字在正文中高亮出来
Jun 13 Javascript
Vue的MVVM实现方法
Aug 16 Javascript
简单的Vue SSR的示例代码
Jan 12 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
详解vue中v-model和v-bind绑定数据的异同
Aug 10 Javascript
快速解决element的autofocus失效问题
Sep 08 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 5.0创建图形的巧妙方法
2010/10/12 PHP
PHP读取xml方法介绍
2013/01/12 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
2013/06/27 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
js滚动条多种样式,推荐
2007/02/05 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
史上最为详细的javascript继承(推荐)
2019/05/18 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
JavaScript对象属性操作实例解析
2020/02/04 Javascript
Python EOL while scanning string literal问题解决方法
2020/09/18 Python
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
Python生成器常见问题及解决方案
2020/03/21 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
什么是CSS3 HSLA色彩模式?HSLA模拟渐变色条
2016/04/26 HTML / CSS
网上商城创业计划书范文
2014/01/31 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
如何写好建议书
2014/03/13 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
管理工程专业求职信
2014/08/10 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
学习党史心得体会2016
2016/01/23 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
MySQL数据库索引的最左匹配原则
2021/11/20 MySQL
详细介绍Next.js脚手架完整搭建封装
2022/04/26 Javascript