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

 更新时间:2017年03月12日 15:39:10   作者:zhuxinyong  
最近工作中遇到了对文件进行重命名的需求,后通过node.js实现了,所以下面这篇文章主要给大家介绍了利用Node.js对文件进行重命名的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

前言

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

更改前:


更改后:


文章一共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`)
 })
}

总结

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

相关文章

  • Express实现定时发送邮件的示例代码

    Express实现定时发送邮件的示例代码

    在开发中我们有时候需要每隔 一段时间发送一次电子邮件,或者在某个特定的时间进行发送邮件,无需手动去操作,基于这样的情况下我们需要用到了定时任务。本文就来用Express实现定时发送邮件吧
    2023-04-04
  • 用C/C++来实现 Node.js 的模块(二)

    用C/C++来实现 Node.js 的模块(二)

    上篇文章的主要内容讲诉了用C/C++来实现 Node.js 的模块,本文更深一步继续探讨这个问题,有需要的朋友可以参考下
    2014-09-09
  • 三分钟教你用Node做一个微信哄女友神器(面向小白)

    三分钟教你用Node做一个微信哄女友神器(面向小白)

    这篇文章主要介绍了三步教你用Node做一个微信哄女友神器(面向小白),用node和wechaty微信网页接口开发的一款小工具,可以定时给女朋友发每天的天气情况,天气提醒,每日一句,通过配置机器人api后还可以实现微信机器人自动陪女朋友聊天,需要的朋友可以参考下
    2019-06-06
  • 究竟什么是Node.js?Node.js有什么好处?

    究竟什么是Node.js?Node.js有什么好处?

    这篇文章主要介绍了究竟什么是Node.js?Node.js有什么好处?,为试图解释什么是 Node.js,本文将简要介绍一些背景信息:它要解决的问题,它如何工作,如何运行一个简单应用程序,最后,Node 在什么情况下是一个好的解决方案,需要的朋友可以参考下
    2015-05-05
  • 如何设置process.env.NODE_ENV生产环境模式

    如何设置process.env.NODE_ENV生产环境模式

    process.env.NODE_ENV默认只有两种状态即development和production,本文主要介绍了process.env.NODE_ENV设置生产环境模式,感兴趣的可以了解一下
    2021-09-09
  • Node.js基础入门之使用方式及模块化详解

    Node.js基础入门之使用方式及模块化详解

    Node.js是一个基于 Chrome V8 引擎的 JavaScript 运行时。类似于Java中的JRE,.Net中的CLR。本文将详细为大家介绍一些Node.js的基础知识和使用方式以及其模块化,需要的可以参考一下
    2022-03-03
  • node-sass@4.14.1报错的最终解决方案分享

    node-sass@4.14.1报错的最终解决方案分享

    最近在安装node-sass@4.14.1的时候遇到了些问题,所以下面这篇文章主要给大家介绍了关于node-sass@4.14.1报错的最终解决方案,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 详解node如何让一个端口同时支持https与http

    详解node如何让一个端口同时支持https与http

    众所周知node是一个高性能的web服务器,使用它可以很简单的创建一个http或https的服务器。这篇文章主要介绍了详解node如何让一个端口同时支持https与http
    2017-07-07
  • NodeJS的使用与NPM包管理器详解

    NodeJS的使用与NPM包管理器详解

    Node.js 是一个基于 Chrome V8 JavaScript 引擎 构建的开源、跨平台运行时环境,这篇文章主要介绍了NodeJS的使用与NPM包管理器,需要的朋友可以参考下
    2025-04-04
  • 在Node.js中判定文件是否可执行的方法详解

    在Node.js中判定文件是否可执行的方法详解

    在进行前端开发时,经常需要处理各种文件权限的问题,特别是在Node.js环境中,你可能想要判断某个文件是否具有可执行权限,本文将详细介绍如何使用isexe模块来进行这一操作,需要的朋友可以参考下
    2024-05-05

最新评论