利用Node.js對文件進行重命名
前言
最近把博客換了皮膚,今天早上起來就開始搗鼓文件命名問題。hexo的文章基本都是生成在_post文件夾下,若文章多了以后就不好管理,所就打算以【日期+文章標(biāo)題】為文件名:
更改前:
更改后:
文章一共90篇,作為程序員不可能一個個的去改,得用工具幫我去完成,那就是用程序幫我完成這么機械的任務(wù)。
完成這項任務(wù)的前提條件是:文章的時間和文章的標(biāo)題
題目很簡單,文件名就是,時間呢?幸好hexo在生成文章的時候,文件內(nèi)容里面已經(jīng)有時間:
title: Nodjs重命名文件 date: 2017-03-05 08:57:47 categories: - nodejs - javascript tags:
所以接下來的事情就明確了:
1. 讀取文章內(nèi)容
2. 提取時間
3. 拼接時間和文章標(biāo)題
代碼整體思路:
1.讀取指定目錄下的文件內(nèi)容
2.一行行的分割內(nèi)容,提取想要的內(nèi)容
3.拼接時間+標(biāo)題
在整行讀取內(nèi)容遇到一些問題,查了文檔nodejs好像有 https://nodejs.org/api/readline.html ,但我沒有用直接用
了一個偷懶的方法分割內(nèi)容:
data.toString().split('\n')
這樣就得到一個以換行 \n 為分割的數(shù)組。
用到的方法:
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`) }) }
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
使用Phantomjs和Node完成網(wǎng)頁的截屏快照的方法
這篇文章主要介紹了使用Phantomjs和Node完成網(wǎng)頁的截屏快照的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07從reflect?metadata理解Nest實現(xiàn)原理
這篇文章主要為大家介紹了從reflect?metadata理解Nest實現(xiàn)原理示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08Node.js用readline模塊實現(xiàn)輸入輸出
在學(xué)C++的時候,有cout和cin,Java也有println和Scanner控件,Node.js也有如同C++和Java的標(biāo)準(zhǔn)輸入,當(dāng)然,是用JavaScript實現(xiàn)的,它就是Readline模塊。下面這篇文章就給大家詳細介紹一下readline模塊,來實現(xiàn)Node.js的控制臺輸入輸出。有需要的可以參考借鑒。2016-12-12React和Node.js快速上傳進度條功能實現(xiàn)
這篇文章主要為大家介紹了React和Node.js快速上傳進度條功能實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟
本文主要介紹了Node.js連接mongo數(shù)據(jù)庫上傳文件的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05