关于用node批量修改文件名

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

1、首先按需求找到须要使用的模块node

  fs和path;npm

  const fs=require('fs')api

  const path=require('path')数组

2、步骤ui

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

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

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

  const  old=process.argv[2]htm

  const  now=process.argv[3]

  2而后获取所有是指定目录下的指定扩展名的文件,这里会用到两个方法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
    })

  四、遍历每个文件,将其扩展名改成指定的值

  path.join()方法path使用平台特定的分隔符做为分隔符将全部给定的段链接在一块儿,而后对结果路径进行规范化。

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

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

<a href="https://npm.taobao.org/mirrors/node/latest/docs/api/process.html#process_process_argv">https://npm.taobao.org/mirrors/node/latest/docs/api/process.html#process_process_argv</a>

 

  

  list.forEach(item => {

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

    fs.renameSync(source,target)

  })

相关文章
相关标签/搜索