利用node实现一个批量重命名文件的函数

前言

最近在吃午饭的时候突然想起来在新大上JS课程时,老师讲node的时候提了一句说node可以批量重命名文件,我就想着看看能不能实现这个功能。

看了node的官方文档,查到fs模块有一个readdir的API,它读取一个目录的内容,测试了一下,返回的结果是一个数组,元素就是文件夹的名字。详细的介绍可以参考这里:http://www.jb51.net/article/58609.htm

还有一个API,rename听名字就是重命名相关的。详细的可以参考这里:http://www.jb51.net/article/58548.htm

实现思路

整理了一下思路很简单,就是先把原文件的文件名读取出来放入一个数组,再把新名字作为一个数组,用renameAPI实现,但是批量重命名的名字只能遵循数字 +1 的规律,写了如下函数

示例代码

//rename.js
const fs = require('fs') //引入node内置的文件系统

function rename() {
 let newName = []
 fs.readdir('./file/', (err, oldName) => { //读取file文件夹下的文件的名字,oldName是一个数组
 if (err) {
  console.log(err)
 }
 for (let i = 0; i < oldName.length; i++) {
  let name = `new${i}.jpg` // 以图片为例
  newName[i] = name  // 把名字赋给一个新的数组
 }
 for (var i = 0; i < oldName.length; i++) {
  let oldPath = `./file/${oldName[i]}` //原本的路径
  let newPath = `./file/${newName[i]}` //新路径
  fs.rename(oldPath, newPath, (err) => { //重命名
  if (err) {
   console.log(err)
  }
  console.log('done!')
  })
 }
 })
}
rename()

文件目录

file文件夹下放置要重命名的文件

打开终端,cd到rename文件夹下,执行node rename.js即可

这只是一个简单的实现,还是有很多不足,有更好的方法,欢迎讨论

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

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

    前言 最近把博客换了皮肤,今天早上起来就开始捣鼓文件命名问题.hexo的文章基本都是生成在_post文件夹下,若文章多了以后就不好管理,所就打算以[日期+文章标题]为文件名: 更改前: 更改后: 文章一共90篇,作为程序员不可能一个个的去改,得用工具帮我去完成,那就是用程序帮我完成这么机械的任务. 完成这项任务的前提条件是:文章的时间和文章的标题 题目很简单,文件名就是,时间呢?幸好hexo在生成文章的时候,文件内容里面已经有时间: title: Nodjs重命名文件 date: 2017-03

  • node文件批量重命名的方法示例

    在一个实际需求中,需要对一批文件(如:文本.图片)进行重命名,按照数字编号.正好借此熟悉了一下node的fs文件操作,写了一个批量修改文件名的脚本. 需求 现有以下图片文件 需要批量修改文件名称,变为统一前缀名称并且自增索引,修改后效果 最简单的人力操作就是逐个文件重命名,但本着DRY(Don't repeat yourself)原则,还是写一个node脚本搞定. 研究 node中要进行文件操作需要了解一下fs模块 在fs模块中有同步和异步两种方式 读取文件 //异步 fs.readFile('

  • 利用node实现一个批量重命名文件的函数

    前言 最近在吃午饭的时候突然想起来在新大上JS课程时,老师讲node的时候提了一句说node可以批量重命名文件,我就想着看看能不能实现这个功能. 看了node的官方文档,查到fs模块有一个readdir的API,它读取一个目录的内容,测试了一下,返回的结果是一个数组,元素就是文件夹的名字.详细的介绍可以参考这里:http://www.jb51.net/article/58609.htm 还有一个API,rename听名字就是重命名相关的.详细的可以参考这里:http://www.jb51.net

  • PHP实现读取文件夹及批量重命名文件操作示例

    本文实例讲述了PHP实现读取文件夹及批量重命名文件操作.分享给大家供大家参考,具体如下: 以读取从网上下载的评书解压后的文件夹为例,并批量重命名 文件夹内容如下,现在使用php读取这个文件夹里面的文件,并批量重命名为"隋唐演义+序号.mp3"的格式: <?php $dir1 = './dir1/';//读取文件夹名称 (重命名为dir1避免中文报错,移动到与要执行的php文件同级目录) $filearr = scandir($dir1);//读取文件夹 print_r($file

  • Shell脚本批量重命名文件后缀的3种实现

    今天突然间想起昨天有个问题还没动手实践下,就是利用shell批量修改文件的后缀,现在动手实践一下. 需求:家目录下有一些sql文件,想批量重命名成txt的 1.find + xargs +sed 复制代码 代码如下: find /root -name '*.sql' |xargs -i echo {}   {} |sed 's/sql/txt/2′  |xargs mv find /root/ -name '*.sql' |sed -e 's/\(.*\).sql$/mv & \1.txt/e'

  • PowerShell实现批量重命名文件

    假设你有一个很大的文件夹,里面全是图片,你想对文件夹中图片的名称,按照某个统一的规则进行重命名,本文的脚本会简单进行演示: $i = 0 Get-ChildItem -Path c:\pictures -Filter *.jpg | ForEach-Object { $extension = $_.Extension $newName = 'pic_{0:d6}{1}' -f $i, $extension $i++ Rename-Item -Path $_.FullName -NewName $

  • bat和python批量重命名文件的实现代码

    最近从某网站下载了一批文档,但是文件是用数字串命名的文档(很多图书馆都这样吧),现在我也下载完了这些文件,也有这些文件的列表,就是不能一个一个的把文件给重命名吧所以从网上找了这几个脚本. 一.使用bat脚本(windows系统默认可用) 打开记事本,将这些代码写入记事本,另存为xx.bat文件(注意后缀名,很多小白保存成了xx.bat.txt,因为txt是隐藏的,以为不行) @echo off for /r "d:\pdf" %%a in (*.pdf) do ( for /f &qu

  • 用python实现批量重命名文件的代码

    下面是最终代码 (windows下实现的) 复制代码 代码如下: # -*- coding: cp936 -*- import os path = 'D:\\图片\\' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: if file.find('.')<0: newname=file+'rsfdjndk.jpg' os.rename(os.path.join(path,file),os

  • VBS批量重命名文件并且操作前备份原有文件

    核心函数 '========================================================================== ' ' VBScript Source File -- Created with SAPIEN Technologies PrimalScript 4.0 ' ' NAME: ' ' AUTHOR: Microsoft , Microsoft ' DATE : 2014/7/9 ' ' COMMENT: '批量修改文件夹下对应的所有文件

  • Win10利用bat文件实现文件与文件夹批量重命名的实践

    目录 bat文件 批量重命名文件夹 批量重命名文件 后记 bat文件 利用Win10的bat文件能够实现垃圾清理.电脑关机等.同样的,使用Win的bat文件能够实现文件与文件夹的批量重命名,这样就免去了通过写一个脚本,或者代码程序来运行.做这个的初衷是在处理深度学习的数据集时,为了增加可识别性,将每一个图片文件重命名,特以博客以记之.参考网上的一些方式以及自己的试坑,最终总结如下. 批量重命名文件夹 在示例中我创建了1005个文件夹,如下图所示 bat文件代码如下,其中第五行是命名,!a!是一个

  • Python基于mediainfo批量重命名图片文件

    案例故事: 大部分带彩色屏幕的终端设备,不管是手机,车机,电视等等,都需要涉及图片的显示, 作为一名专业的多媒体测试人员,我们需要一堆的规范化标准的图片测试文件, 但是现有的图片资源名字命名的很随意比如:IMG_20200325_161111.jpg, 以上命名不能看出图片文件的具体图片编码格式,分辨率等信息, 测试经理要求我进行批量重命名工作,模板如下, 图片编码格式_分辨率_位深度_容器.容器, 例如: JPEG_1920x1080_32bit_jpg.jpg 图片编解码基本知识 图片编码:

  • Java实现文件批量重命名,移动和删除

    目录 一.题目描述-批量重命名 1.题目 2.解题思路 3.代码详解 二.题目描述-批量移动文件 1.题目 2.解题思路 3.代码详解 4.多学一个知识点 三.题目描述-批量删除tmp文件 1.题目 2.解题思路 3.代码详解 一.题目描述-批量重命名 1.题目 题目:在window操作系统中,支持对文件名重命名,但不支持批量重命名. 实现:做一个批量重命名的工具. 2.解题思路 创建一个类:RenameTool 使用RenameTool继承JFrame构建窗体 文件重命名的方法是使用File类

随机推荐