关于node环境的配置和环境变量的配置就不再这个细说了

一、首先按需求找到需要使用的模块

  fs和path;

  const fs=require('fs')

  const path=require('path')

二、步骤

  1、获取传入的参数(也就是扩展名),也就是我们用什么方式改扩展名,如下图传参的方式,(在每次需求提出的时候,我们首先考虑的是怎么用,然后再考虑怎么写;)

  node也给我们提供了获取的方法,process.argv[index];如上图有四个参数,

  官方文档 https://npm.taobao.org/mirrors/node/latest/docs/api/process.html#process_process_argv

  const  old=process.argv[2]

  const  now=process.argv[3]

  、然后获取全部是指定目录下的指定扩展名的文件,这里会用到两个方法process.cwd()、fs.readdirSync();

    该process.cwd()方法返回Node.js进程的当前工作目录,返回的是一个字符串;

    fs.readdirSync();返回的是个数组如下图,一定要传参。fs.readdirSync(path [,options])

  

  const  dir=process.cwd()

  const filenames=fs.readdirSync(dir)

  、文件名都有了,开始筛选需要修改的名字,但是如果文件夹名有.js,怎么办呢?需要我们筛选一下,

    const list = filenames.filter(item => {
      const isFile = fs.statSync(path.join(dir, item)).isFile()
      const matchExt = path.extname(item) .substr(1)=== old
      return isFile && matchExt
    })

  4、遍历每一个文件,将其扩展名改为指定的值

  path.join()方法path使用平台特定的分隔符作为分隔符将所有给定的段连接在一起,然后对结果路径进行规范化。

  下面的source和 target是绝对路径dir再与后面的item拼在一起;

  fs.renameSync(oldPath,newPath)是替换路径名的方法;

  官方文档 https://npm.taobao.org/mirrors/node/latest/docs/api/fs.html#fs_fs_renamesync_oldpath_newpath

  list.forEach(item => {

    const source=path.join(dir,item)
    const target=path.join(dir,item.replace(old,now))

    fs.renameSync(source,target)

  })

关于用node批量修改文件名的更多相关文章

  1. 使用Java中File类批量创建文件和批量修改文件名

    批量创建文件 int cont = 1; String s = "E:\\学习资料\\Java笔记-"; while(cont<100){ File f = new File ...

  2. Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等

    http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...

  3. [转载][记录]shell 批量修改文件名

    参考了:[新手入门] shell脚本批量修改文件名 4楼回复 我刚好是在vagrant+ubuntu中进行开发,windows手动修改太麻烦. #!/bin/ksh ls *.htm | while ...

  4. linux批量修改文件名的shell脚本

    linux中批量修改文件名的shell脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下 使用 rename 命令  ========================  NAME ...

  5. 用python批量修改文件名

    从youtube上当下来百来首mv,每个都需要去掉视频,这还挺好弄得,格式工厂一弄就完了,但是文件名,都带有乱七八糟的*啥的巴拉巴拉的,咋修改啊,几百首总不可能一个一个rename吧 #批量修改文件名 ...

  6. windows下如何批量修改文件名

    windows下如何批量修改文件名 一.总结 一句话总结:就是用excel生成了多条修改文件名的dos命令然后执行,比较核心的就是把图片名称导入excel 将图片名称导入excel---编写如下DOS ...

  7. C# 批量修改文件名

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. Linux下批量修改文件名(rename)

    原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修 ...

  9. rename 批量修改文件名简单用法

    有的时候我们需要批量创建文件做测试,为了做区分,一般只要稍稍动动文件名即可,MV命令既可以移动文件,也是可以修改文件名的,但批量修改文件名MV做不到,此时,我们可以用rename命令批量修改是蛮不错的 ...

随机推荐

  1. git rebase -i命令修改commit历史

    [TOC] 修改commit历史的前提 修改历史的提交是可能有风险的,是否有风险取决于commit是否已经推送远程分支,未推送,无风险,如果已推送,就千万不要修改commit了. 修改commit历史 ...

  2. html5中cookie介绍,封装以及添加,获取,删除

    cookie是储存在用户本地终端上的数据. 在我们登陆网站时有记录密码,也有时间限制比如说7天,5天等等这都是我们利用cookie来写的, 这就是利用了cookie的会话周期,但cookie同时又是不 ...

  3. ecshop收货地址货到付款修改

    用户选择某些地址时,支付方式里则可以依据此地址来对货到付款选项进行显示或隐藏.目前仅与顺丰合作,以顺丰提供的数据为准. 使用到的数据库分别如下: ecs_region//地方数据,PRIMARY KE ...

  4. if中可以使用那些作为判断条件呢?

    在所有编程语言中if是最长用的判断之一,但在js中到底哪些东西可以在if中式作为判断表达式呢? 例如如何几行,只是少了一个括号,真假就完全不同,到底表示什么含义呢 ? 1 2 3 4 5 6 7 8 ...

  5. 安装npm及cnpm(Windows)

    [工具官网] Node.js : http://nodejs.cn/ 淘宝NPM: https://npm.taobao.org/ [安装步骤] 一.安装node.js 1.前往node.js官网下载 ...

  6. [转] .NET领域驱动设计—初尝(疑问、模式、原则、工具、过程、框架、实践)

    阅读目录: 1.1.疑问 1.1.1.UML何用 1.1.2.领域建模 1.2.模式 1.3.原则 1.5.过程 1.6.框架 1.7.项目演示 最近在研究DDD颇有收获,所以整理出来跟大家分享,共同 ...

  7. 10亿美元融资腾讯跟头,Grail要用基因测序做癌症早期筛查

    癌症超早期筛查:"在干草堆中寻找缝衣针"癌症是人类的噩梦,尤其是中晚期癌症,但很多时候,当患者感觉到身体不适而去医院检查时,病情都已经到了中晚期,很难治愈.而有研究表明,早期癌症患 ...

  8. Docker Machine 详解

    笔者在<Docker Machine 简介>一文中简单介绍了 Docker Machine 及其基本用法,但是忽略的细节实在是太多了.比如 Docker 与 Docker Machine ...

  9. Builder模式详解及其在Android开发中的应用

    一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比 ...

  10. PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别

    1:echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号.不能输出数组和对象,只能打印简单类型(如int,string). 2:print:是语句不是函数,有返回值 1 ,只能输出一个 ...