npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@yaohaixiao/renames.js

v0.4.0

Published

renames.js - 基于 Node 的批量文件名重命名 cli 工具库。

Readme

renames.js

npm version prettier code style npm downloads MIT License

renames.js - 基于 Node 的批量文件名重命名 cli 工具库。

Features

  • 支持批量重命名文件夹中的文件;
  • 支持批量重命名非同一文件夹的一组文件;
  • 支持指定文件名列表数据或者文件名列表文件;
  • 支持文件名自动生成(章节)索引;
  • 支持文件名自定义过滤文件;
  • 支持文件名自定义文件排序;
  • 支持文件名自定义格式化文件名;
  • 支持缓存重命名数据,可恢撤销重命名操作,恢复始名称;
  • 支持使用命令开启或关闭缓存功能,并支持清理缓存;
  • 支持生成配置文件,方便快捷,配置灵活;

Usage

首先需要全局安装 renames.js,命令如下:

npm i -g @yaohaixiao/renames.js

全局安装完成后,就可以在命令行使用了。renames.js 使用方式如下:

renames [arguments|command] [options]

Command Introduction

renames.js 和其它 cli 工具一样,也可以通过 -h 选项获取完整帮助信息,命令如下:

renames -h

renames.js 提供目前提供 1 个 arguments 参数和 3 个 subcommands 子命令:init、revoke、cache,以及 10 多个 options 配置选项。

Arguments:

  • dir-path - 执行重命名操作的目标文件夹(绝对或相对)路径,例如:"C:\Downloads"。

Options

renames.js 提供了较为丰富的 options 配置选项,用以控制重命名的操作细节处理方式:

| 参数名 | 参数说明 | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------- | | --dir, --dir-path <path> | 可选,执行重命名操作的目标文件夹(绝对或相对)路径 | | --files, --files-list <list> | 可选,文件名列表数组数据,例如:"C:\第01话:新的开始.mp4,D:\动画片-第01话:新的开始-1080p.mp4" | | --names, --names-list <list> | 可选,文件名列表数组数据,例如:"新的开始,完美结局"。或者文件名列表文件的路径,例如:"C:\Downloads\names.txt" | | --prefix <prefix> | 可选,文件名的前缀字符串,例如:"动画片-第01话:新的开始-1080p.mp4"中的"动画片" | | --suffix <suffix> | 可选,文件名的后缀字符串,例如:"动画片-第01话:新的开始-1080p.mp4"中的"1080p" | | --connector <connector> | 可选,文件名的前/后缀字符串间的连接字符串,例如:"动画片-第01话:新的开始-1080p.mp4"中的"-" | | --auto-index [enable] | 可选,是否自动生成索引编号(default:false) | | --start-index <startIndex> | 可选,索引编号起始值(default:0) | | --index-pad-zero [enable] | 可选,是否自动用"0"填充索引编号(default:true) | | --index-length [length] | 可选,自动编号自动补"0"的字符长度(default: "auto") | | --index-prefix <prefix> | 可选,索引编号的前缀字符串,例如:"第01话:新的开始.mp4"中的"第" (default: "第") | | --index-suffix <index-suffix> | 可选,索引编号的后缀字符串,例如:"第01话:新的开始.mp4"中的"话" (default: "集") | | --delimiter <delimiter> | 可选,索引编号和的前/后缀字符串间的连接符,例如:"第01话:新的开始.mp4"中的":" (default: ":") | | -f, --force [enable] | 可选,是否强制重命名(default:false) | | --ext, --extname <extname> | 可选,重命名后的扩展名,例如:".txt" | | --sort, --sort-by <by> | 可选,排序类型,可选项:name、extension、size、birthtime 和 modify-time (default: "name") | | --order <order> | 可选,排序方式,可选项:desc 和 asc (default: "asc") | | --sensitivity <sensitivity> | 可选,排序方式为 name 时,大小写/重音处理的方式,可选项:base、accent、case 和 variant (default: "base") | | --cache | 可选,缓存重命名操作结果。开启后会创建 renames.cache.json 文件记录重命名的数据 | | -h, --help | display help for command |

Basic Usage:

# 重命名 C:\Downloads 目录下的文件名
renames C:\Downloads --auto-index only

# 生成配置文件,指定必要的配置选项,并开启缓存重命名记录
renames init --dir C:\Downloads --names D:\names.txt --cache

# 列表显示所有缓存记录
renames cache -a -l

# 撤销所有重命名操作
renames revoke -a

renames.config.js

需要优先介绍一下配置文件 renames.config.js,可以通过 init 子命令生成,命令如下:

renames init

renames.config.js 文件的内容如下:

export default {
  dirPath: 'C:\\Downloads',
  filesList: '',
  namesList: 'C:\\Downloads\\names.txt',
  prefix: '',
  suffix: '',
  connector: '',
  autoIndex: false,
  startIndex: 0,
  indexPadZero: true,
  /**
   * 可以设置 auto 或者具体的数值:
   *
   * - Auto:会根据 dirPath 目录中文件的数量的数值的字符串长度生成自动索引的编码字符串;
   * - 具体数值:按指定的数值的字符串长度生成自动索引的编码字符串,如果具体数值值小于 dirPath 目录中文件的数量的数值的字符串长度,则按 auto
   *   的规则生成。
   */
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  // 指定过滤 dirPath 文件夹中的文件过滤方法
  filter: null,
  // 可以是排序方式的名称(可选项:name、extension、size、birthtime 和 modify-time),也可以是具体的处理函数
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  // 指定对最终文件名字的格式化处理函数
  format: null,
  cache: false,
};

可以看到配置文件 renames.config.js 中的内容就是 renames 主命令的 arguments 和 options 的信息。

特殊配置

在配置文件 renames.config.js 中,额外提供主命令没有的 3 个特殊的配置选项(在典型用例中会介绍具体用法):

  • filter - 过滤文件处理函数
  • sortBy - 排序方式,可以是排序的名称或者具体地处理函数
  • format - 文件名字的格式化处理函数

cache: true

当 renames.config.js 中的 cache 配置选项为 true,工具会生成 renames.cache.json 文件缓存重命名操作的数据,其格式如下:

{
  "dir-3c3139ac-873b-570e-8955-f7ac45595b22": [
    {
      "oldFilePath": "C:\\Users\\haixi\\Downloads\\壁纸\\01.jpg",
      "newFilePath": "C:\\Users\\haixi\\Downloads\\壁纸\\02.jpg",
      "updated": "2026-02-23 20:25:55"
    },
    {
      "oldFilePath": "C:\\Users\\haixi\\Downloads\\壁纸\\02.jpg",
      "newFilePath": "C:\\Users\\haixi\\Downloads\\壁纸\\05.jpg",
      "updated": "2026-02-23 20:25:55"
    },
    {
      "oldFilePath": "C:\\Users\\haixi\\Downloads\\壁纸\\03.jpg",
      "newFilePath": "C:\\Users\\haixi\\Downloads\\壁纸\\162285546526.jpg",
      "updated": "2026-02-23 20:25:55"
    }
  ],
  "group-822eab3e-c6d3-5867-af14-91a53ac8d033": [
    {
      "id": "ba46664d-79f3-574a-a8d2-ecf86fe38330",
      "oldFilePath": "C:\\Users\\haixi\\Downloads\\新建文本文档.txt",
      "newFilePath": "C:\\Users\\haixi\\Downloads\\1.txt",
      "source": "group",
      "updated": "2026-03-06 23:24:26"
    }
  ]
}

autoIndex: 'only'

将杂乱的图片库的文件名,批量重命名为自动生成数值(升序)索引(例如:1.jpg - 2x.jpg)的文件名,调整 renames.config.js 配置如下:

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  prefix: '',
  suffix: '',
  connector: '',
  // 自动生成数值(升序)索引
  autoIndex: 'only',
  startIndex: 0,
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  filter: null,
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

autoIndex-only

说明:执行 renames 命令,未配置任何参数和配置参数,则执行命令时完全使用配置文件的设置。

startIndex

如果你是一个爱收集壁纸的人,应该会陆续收集更多的图片,我们可以使用 startIndex 在原来的索引位置继续自动生成数值索引名称,配置如下:

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  prefix: '',
  suffix: '',
  connector: '',
  // 自动生成数值(升序)索引
  autoIndex: 'only',
  // 上图中文件名的索引值已经到 29.jpg,则 startIndex 的值就是 29
  startIndex: 29,
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  filter: null,
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

startIndex

indexPadZero

细心的朋友应该发现文件名 01.jpg,自动用‘0’填充。使用的就是 indexPadZero 这个配置参数。 现在将文件夹的图片文件数量增加到100以上,看看索引使用自动填充‘0’后的效果,配置如下:

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  prefix: '',
  suffix: '',
  connector: '',
  // 自动生成数值(升序)索引
  autoIndex: 'only',
  startIndex: 0,
  // 使用 '0' 自动填充
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  filter: null,
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

indexPadZero

当然,如果没有强迫症,不希望文件名的长度一致,我们也可以关闭 indexPadZero,配置如下:

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  prefix: '',
  suffix: '',
  connector: '',
  // 自动生成数值(升序)索引
  autoIndex: 'only',
  startIndex: 0,
  // 使用 '0' 自动填充
  indexPadZero: false,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  filter: null,
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

indexPadZero-false

可以看到,关闭后就不会使用‘0’自动填充了。

prefix、suffix、connector

接着我们可以对以上重命名好的文件名再继续调整,使用 prefix、suffix、connector 这3个配置参数,添加前缀和后缀,配置如下:

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  prefix: 'wallpaper',
  suffix: '1080p',
  connector: '-',
  // 关闭自动生成数值索引(升序)
  autoIndex: false,
  startIndex: 0,
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  filter: null,
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

prefix-suffix-connector

filter

接着我们使用 filter 配置参数,进一步对上面重命名的文件再操作,我们将图片中的 .png 格式的图片再批量处理以下,配置如下:

// renames.js 内部提供的功能函数
import getExtension from '@yaohaixiao/renames.js/lib/utils/get-extension';

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  prefix: 'wallpaper',
  // 添加 png 的后缀
  suffix: 'png',
  connector: '-',
  // 针对 png 图片生成自动索引的文件名
  autoIndex: 'only',
  startIndex: 0,
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  // 过滤 .png 图片
  filter: (files) => {
    return files.filter((filename) => {
      const extname = getExtension(filename);
      return extname === '.png';
    });
  },
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

filter

format

接下来,我们将使用 format 参数,将上面我们使用 filter 参数将 .png 格式的图片的后缀再改成 1080p,配置如下:

// renames.js 内部提供的功能函数
import getExtension from '@yaohaixiao/renames.js/lib/utils/get-extension';

export default {
  dirPath: 'C:\\Users\\robert\\Downloads\\壁纸',
  namesList: '',
  // 清空前后缀的配置,我们现在的操作是仅修改原来的文件名
  prefix: '',
  suffix: '',
  connector: '',
  // 关闭自动索引也是因为需要仅修改原始的文件名
  autoIndex: false,
  startIndex: 0,
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  // 过滤 .png 图片,也可以配置过滤,那工具会遍历所有的文件,
  // 为了性能,我们还是保留 filter 配置
  filter: (files) => {
    return files.filter((filename) => {
      const extname = getExtension(filename);
      return extname === '.png';
    });
  },
  sortBy: 'name',
  order: 'desc',
  sensitivity: 'base',
  format: (basename) => {
    return basename.replace('png', '1080p');
  },
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

format

nameList、sortBy

前面介绍的都是直接修改原来的文件名的方式来重命名,namesList 则可以通过外部数据将定义好的文件名结合 sortBy 将文件的顺序调整跟 namesList 中的数据一致,进行批量重命名。

例如,我下载了《达尔文游戏》这个动漫,但下载下来的文件名是这样的:

  • 1-E01-1 (1).mp4
  • 10-E09 (1).mp4
  • 11-E10 (1).mp4
  • 12-E11 (1).mp4
  • 2-E01-2 (1).mp4
  • 3-E02 (1).mp4
  • 4-E03 (1).mp4
  • 5-E04 (1).mp4
  • 6-E05 (1).mp4
  • 7-E06 (1).mp4
  • 8-E07 (1).mp4
  • 9-E08 (1).mp4

顺便说以下,如果直接用内置的 sortBy: 'name' 排序,就是以上的排序结果。而我通过 AI 获取到的《达尔文游戏》其 12集的名称如下:

  • 初战
  • 涉谷
  • 导火索
  • 火花
  • 记忆(特别篇)
  • 水葬
  • 金刚
  • 压碎
  • 平稳
  • 决斗
  • 旧王
  • 血盟

所以我需要通过自定义的 sortBy 函数处理以下,按 1-12 的索引值升序排序,配置如下:

// renames.js 内部提供的功能函数
import getBasename from './lib/utils/get-basename.js';

export default {
  dirPath: 'C:\\Users\\haixi\\Downloads\\达尔文游戏',
  namesList: 'C:\\Users\\haixi\\Downloads\\names.txt',
  // namesList: ',初战,涉谷,导火索,火花,记忆(特别篇),水葬,金刚,压碎,平稳,决斗,旧王,血盟'
  prefix: '达尔文游戏',
  suffix: '1080p',
  connector: '-',
  autoIndex: true,
  startIndex: 0,
  indexPadZero: true,
  indexLength: 'auto',
  indexPrefix: '第',
  indexSuffix: '集',
  delimiter: ':',
  force: false,
  extname: '',
  filter: null,
  // 使用自定义的排序方式
  sortBy: (files) => {
    return files.sort((prev, next) => {
      const pattern = /-(.*)/;
      // 保留文件名中的第一个字符,也就是索引值
      const prevIndex = getBasename(prev).replace(pattern, '');
      const nextIndex = getBasename(next).replace(pattern, '');

      // 升序排列
      return Number(prevIndex) - Number(nextIndex);
    });
  },
  // 使用自定义排序函数后 order 和 sensitivity 就没有作用了
  order: 'asc',
  sensitivity: 'base',
  format: null,
  cache: false,
};

然后在命令行工具执行 renames 命令,如下图:

namesList-sortBy

PS: 这是我当初开发 renames.js 的主要目的,重命名下载的视频文件名!

Subcommands

renames.js 目前提供了 3 个子命令:init、revoke 和 cache。

init 子命令

init 子命令是用来创建名为 renames.config.js 的配置文件,命令如下:

renames init

输入以上命令,renames.js 会提示输入 dir-path、files-list 和 names-list 3个重要的配置选项数据。

init 子命令也可以查看完整的 options 配置选项信息,命令如下:

renames init -h

init 子命令的 Options 配置选项

init 子命令提供 4 个重要的 options 配置选项:

| 参数名 | 参数说明 | | ---------------------------------- | --------------------------------------------------------------------------------------------------------------- | | --dir, --dir-path <path> | 可选,目标文件夹(绝对或相对)路径(注意:仅 init 命令支持) | | --files, --files-list <list> | 可选,文件名列表数组数据,例如:"C:\第01话:新的开始.mp4,D:\动画片-第01话:新的开始-1080p.mp4" | | --names, --names-list <list> | 可选,文件名列表数组数据,例如:"新的开始,完美结局"。或者文件名列表文件的路径,例如:"C:\Downloads\names.txt"。 |

以下展示通过传递 dirPath 和 namesList 配置选项生成配置文件的方法,命令如下:

# names 配置文件列表路径
renames init --dir C:\Downloads --names C:\Downloads\names.txt

以上命令的功能是将 C:\Downloads 文件夹下的文件名,已 names.txt 文件中的文件列表数据进行重命名。 或者调整 namesList 配置选项的值,命令如下:

# names 配置多个文件名数据
renames init --dir C:\Downloads --names 名称1,名称2

以上命令的功能是将 C:\Downloads 文件夹下的文件名,已 names 配置选项指定的文件名数据进行重命名。

revoke 子命令

revoke 子命令是用来恢复 renames.cache.json 文件记录的一个或者全部目录的重命名操作的。命令如下:

renames revoke

当然,revoke 子命令后添加 -h 配置选项也可以查看完整的 revoke 子命令的帮助信息:

renames revoke -h

revoke 子命令的 Arguments 参数

  • group-id - 指定缓存文件中的记录ID值,例如:dir-3c3139ac-873b-570e-8955-f7ac45595b22,命令如下:
renames revoke dir-3c3139ac-873b-570e-8955-f7ac45595b22

如不设置 group-id,则使用配置文件 renames.config.js 中的 dirPath 属性生成 dir-UUID 格式的 group-id,命令如下:

renames revoke

revoke 子命令的 Options 配置选项

| 参数名 | 参数说明 | | --------- | --------------------------------------------------------- | | -a, --all | 可选,是否恢复缓存中的所有数据 | | --dirs | 可选,撤销缓存文件中所有 source 类型为 dir 的重命名操作 | | --groups | 可选,撤销缓存文件中所有 source 类型为 group 的重命名操作 |

恢复全部记录,命令如下:

renames revoke -a

恢复缓存记录中 source 属性为 dir 的全部记录,命令如下:

renames revoke --dirs

恢复缓存记录中 source 属性为 group 的全部记录,命令如下:

renames revoke --groups

cache 子命令

cache 子命令就是专门用来处理缓存数据和缓存配置选项的,命令如下:

renames cache

同样,我们也可以使用 -h 参数查看 cache 子命令的参数和配置选项,命令如下:

renames cache -h

cache 子命令的 Arguments 参数

  • group-id - 指定缓存文件中的记录ID值,例如:dir-3c3139ac-873b-570e-8955-f7ac45595b22,命令如下:
renames cache dir-3c3139ac-873b-570e-8955-f7ac45595b22

如不设置 group-id,则使用配置文件 renames.config.js 中的 dirPath 属性生成 dir-UUID 格式的 group-id,命令如下:

renames revoke

cache 子命令的 Options 配置选项

| 参数名 | 参数说明 | | ----------- | --------------------------------------------------- | | -a, --all | 可选,是否显示缓存中的所有数据 | | -c, --clear | 可选,清除缓存中的重命名记录 | | --delete | 可选,删除缓存文件或者清除缓存中的重命名记录 | | --dirs | 可选,显示缓存文件中所有 source 类型为 dir 的数据 | | --groups | 可选,显示缓存文件中所有 source 类型为 group 的数据 | | --off | 可选,关闭缓存重命名记录 | | --on | 可选,开启缓存重命名记录 | | -l, --list | 可选,列表显示缓存的文件夹路径记录 | | -h, --help | display help for command |

我们可以使用 --off--on 配置选项用来开启或者关闭 renames.config.js 中的 cache 配置选项,命令如下:

# 开启
renames cache --on
# 关闭
renames cache --off

如果希望删除缓存文件 renames.cache.json,则可以使用 --delete 配置选项,命令如下:

# 删除缓存文件 renames.config.json
renames cache --delete

# 指定 dirPath 则清除指定目录的下的缓存数据,效果同 --clear 配置参数
reanmes cache  dir-3c3139ac-873b-570e-8955-f7ac45595b22 --delete

# 清理所有缓存记录
reanmes cache -a --delete

# 清理全部 source 属性为 group 的缓存记录
renames cache --groups --delete

# 清理全部 source 属性为 dir 的缓存记录ID
renames cache --dirs --delete

查看全部的缓存记录,则可以使用 --all 或者 -a 配置选项,命令如下:

# --all 与 -a 效果相同
renames cache --all

# -a 为 --all 的缩写
renames cache -a

查看全部 source 属性为 dir 的缓存记录,则可以使用 --dirs 配置选项,命令如下:

renames cache --dirs

查看全部 source 属性为 group 的缓存记录,则可以使用 --groups 配置选项,命令如下:

renames cache --groups

--all 配置选项显示的是 JSON 格式的数据,--list 或者 -l 配置选项则以有序列表的形式显示,命令如下:

# 不指定 dirPath 列表显示缓存的所有的目录数据
renames cache --list

# -l 与 --list 效果相同
renames cache -l

# 指定 dirPath 则显示该目录下的缓存数据
renames cache C:\Downloads -l

# 列表显示所有缓存记录
renames cache --a -l

# 列表显示全部 source 属性为 group 的缓存记录
renames cache --groups -l

# 列表显示全部 source 属性为 dir 的缓存记录
renames cache --dirs -l

# 列表显示全部 source 属性为 group 的缓存记录ID
renames cache -a --groups -l

# 列表显示全部 source 属性为 dir 的缓存记录ID
renames cache -a --dirs -l

我们就可以使用 --clear 或者 -c 配置选项删除缓存数据,命令如下:

# 不指定 dirPath 列表清除缓存文件中的所有的缓存数据
renames cache --clear

# -c 与 --clear 效果相同
reanmes cache -c

# 指定 dirPath 则清除该目录下的缓存数据
renames cache C:\Downloads -c

# 清理所有缓存记录
reanmes cache -a -c

# 清理全部 source 属性为 group 的缓存记录
renames cache --groups -c

# 清理全部 source 属性为 dir 的缓存记录ID
renames cache --dirs -c

API Documentation

renames.js 除了作为 cli 工具可以在命令行直接使用外,也额外提供了一些基础的处理获取文件信息的功能函数模块。

getBasename(filename) ⇒ string

getBasename() 方法用来获取文件名中不含扩展名的字符串。

Kind: global function Returns: string - - 返回文件名中去掉扩展名部分的字符串

| Param | Type | Description | | -------- | ------------------- | -------------------- | | filename | string | 文件名(路径)字符串 |

Usage

import getBasename from '@yaohaixiao/renames.js/lib/utils/get-basename.js';

const filename = '1-E01-1 (1).mp4';
const basename = getBasename(filename);

console.log(basename); // -> '1-E01-1 (1)'

getExtension(filename) ⇒ string

getExtension() 方法用来获取文件名中的扩展名部分字符串(含.)。

Kind: global function Returns: string - - 返回文件名中扩展名部分的字符串,例如:'.jpg'

| Param | Type | Description | | -------- | ------------------- | -------------------- | | filename | string | 文件名(路径)字符串 |

Usage

import getExtension from '@yaohaixiao/renames.js/lib/utils/get-extension.js';

const filename = '1-E01-1 (1).mp4';
const extname = getExtension(filename);

console.log(extname); // -> '.mp4'

isFileExists(filePath, [basePath]) ⇒ boolean

isFileExists() 方法用来同步检测文件是否存在,如果存在,返回 true,否则返回 false。

Kind: global function Returns: boolean - - 文件存在返回 true,否则返回 false

| Param | Type | Default | Description | | ---------- | ------------------- | ------------------------------------- | --------------------------------- | | filePath | string | | 检测的文件路径 | | [basePath] | string | "''" | 可选,基础路径。. Default is '' |

Usage

import isFileExists from '@yaohaixiao/renames.js/lib/utils/is-file-exists.js';

const filename = '1-E01-1 (1).mp4';
const basePath = 'C:\Users\haixi\Downloads\达尔文游戏';

// console.log(isFileExists('C:\Users\haixi\Downloads\达尔文游戏\1-E01-1 (1).mp4'))
console.log(isFileExists(filename, basePath)); // -> true

padZero(val, [length]) ⇒ string

padZero() 方法用来处理对数字/字符串补零,前置补‘0’,确保返回指定长度的字符串。

Kind: global function Returns: string - - 返回补零后的字符串

| Param | Type | Default | Description | | -------- | ------------------------------------------ | -------------- | ------------------------------------------------------------ | | val | number | string | | 要补零的数字或字符串(如 27、'27') | | [length] | number | 2 | 可选,目标总长度(如 3 → '027',4 → '0027'). Default is 2 |

Usage

import getBasename from '@yaohaixiao/renames.js/lib/utils/get-basename.js';
import getExtension from '@yaohaixiao/renames.js/lib/utils/get-extension.js';
import padZero from '@yaohaixiao/renames.js/lib/utils/pad-zero.js';

const filename = '1.mp4';
const finalFileName = `${padZero(getBasename(filename), 3)}${getExtension(filename)}`;

console.log(finalFileName); // -> '001.mp4'

stripNonDigit(str) ⇒ string

stripNonDigit(str) 方法用来移除文本中所有非数值的文本,返回移除纯数值的字符串。

Kind: global function Returns: string - - 返回移除非数值的字符串

| Param | Type | Description | | ----- | ------------------- | ------------------ | | str | string | 文件名的文本字符串 |

Usage

import getBasename from '@yaohaixiao/renames.js/lib/utils/get-basename.js';
import getExtension from '@yaohaixiao/renames.js/lib/utils/get-extension.js';
import stripNonDigit from '@yaohaixiao/renames.js/lib/utils/strip-non-digit.js';

const filename = '第01集:初战';
const basename = getBasename(filename);
const extname = getExtension(filename);

console.log(`${stripNonDigit(basename)}${extname}`); // -> '01.mp4'

License

Licensed under MIT License.