关于用node批量修改文件名
关于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批量修改文件名的更多相关文章
- 使用Java中File类批量创建文件和批量修改文件名
批量创建文件 int cont = 1; String s = "E:\\学习资料\\Java笔记-"; while(cont<100){ File f = new File ...
- Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键 批量修改文件名等
http://blog.sina.com.cn/s/blog_62e7fe670101dg9d.html linux下二进制文件查找: strings 0000.ts | grep -o " ...
- [转载][记录]shell 批量修改文件名
参考了:[新手入门] shell脚本批量修改文件名 4楼回复 我刚好是在vagrant+ubuntu中进行开发,windows手动修改太麻烦. #!/bin/ksh ls *.htm | while ...
- linux批量修改文件名的shell脚本
linux中批量修改文件名的shell脚本代码,主要是使用了rename,结合shell,喜欢的朋友可以参考下 使用 rename 命令 ======================== NAME ...
- 用python批量修改文件名
从youtube上当下来百来首mv,每个都需要去掉视频,这还挺好弄得,格式工厂一弄就完了,但是文件名,都带有乱七八糟的*啥的巴拉巴拉的,咋修改啊,几百首总不可能一个一个rename吧 #批量修改文件名 ...
- windows下如何批量修改文件名
windows下如何批量修改文件名 一.总结 一句话总结:就是用excel生成了多条修改文件名的dos命令然后执行,比较核心的就是把图片名称导入excel 将图片名称导入excel---编写如下DOS ...
- C# 批量修改文件名
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- Linux下批量修改文件名(rename)
原文地址: http://blog.csdn.net/sea_shore/article/details/6102437 1.rename命令批量修改文件名, 其实linux下可以使用别的办法来批量修 ...
- rename 批量修改文件名简单用法
有的时候我们需要批量创建文件做测试,为了做区分,一般只要稍稍动动文件名即可,MV命令既可以移动文件,也是可以修改文件名的,但批量修改文件名MV做不到,此时,我们可以用rename命令批量修改是蛮不错的 ...
随机推荐
- gulp报错
这个问题网上搜索到的答案不一定能够解决问题,有可能是node版本问题,需要升级 到最新版就可以了....
- MyBatis源码分析之环境准备篇
前言 之前一段时间写了[Spring源码分析]系列的文章,感觉对Spring的原理及使用各方面都掌握了不少,趁热打铁,开始下一个系列的文章[MyBatis源码分析],在[MyBatis源码分析]文章的 ...
- jsp,jquery,spring mvc 实现导出文件
需求:在界面上选择一个日期,然后点击导出按钮,直接导出选择月份的考勤excel文件. 这篇文章主要是介绍如何下载文件! jsp中代码: <div class="form-group&q ...
- JavaScript严格模式有什么不同
看ES6,瞄到“严格模式”,问了下自己什么是“严格模式”?答案好像不是很明朗,遂总结如下: 严格模式声明:“use strict”; 1.禁止变量未声明就赋值 2.限制动态绑定(属性和方法归属哪个对象 ...
- 如何使用wait(), notify() and notifyAll() – Java
Java多线程是个很复杂的问题,尤其在多线程在任何给定的时间访问共享资源需要更加注意.Java 5引入了一些类比如BlockingQueue 和Executors 类提供了易于使用的API,避免了一些 ...
- Python读取和处理文件后缀为".sqlite"的数据文件
最近在弄一个项目分析的时候,看到有一个后缀为”.sqlite”的数据文件,由于以前没怎么接触过,就想着怎么用python来打开并进行数据分析与处理,于是稍微研究了一下. SQLite是一款非常流行的关 ...
- 高效率遍历Map以及在循环过程中移除 remove指定key
//高效率遍历Map以及在循环过程中移除 remove指定key //使用iter循环的时候 可以在循环中移除key,for在循环的过程中移除会报错哦 //本方法效率高 Iterator iter = ...
- MySQL加密和解密案例
define("ENCRYPT",'2998a15c0cd853edad7');//密钥key 被存储的数据库的字段设置成blob格式(二进制) //AES_ENCRYPT 加密 ...
- 【LeetCode】66. Plus One
题目: Given a non-negative number represented as an array of digits, plus one to the number. The digit ...
- Mongodb 参数说明及常见错误处理
在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录:cd /usr/local 3 在当前目录下 ...