批量文件重命名 是一款在线的开源工具,它利用浏览器的新 API,实现了在浏览器里批量重命名文件,即开即用,支持正则表达式和自定义脚本。
在线体验:https://rename.jgrass.xyz/
源码仓库:https://github.com/JasonGrass/rename
实现原理与隐私问题
使用的是浏览器加载文件的相关 API,读取本地文件名称信息(不读取文件内容),同样使用浏览器提供的 API 来修改文件名称。
所有数据只保留在本地浏览器内存中,关闭页面时清空,不会上传服务器(这个工具不需要也没有服务器)。
并且每一次使用,都需要你的手动允许和授权(导入文件或文件夹时)。具体用到的浏览器 API 如下:
Window:showOpenFilePicker() 方法 - Web API 接口参考 | MDN
Window:showDirectoryPicker() 方法 - Web API 接口参考 | MDN
FileSystemFileHandle - Web API 接口参考 | MDN
开发者:自定义JS
以下是供开发者使用的JS脚本提示信息(有修改,仅供参考)
/**
* 参数说明: options 一个对象,包含单个文件的信息,
* name(string): 文件名,默认不包含后缀名,如果勾选了 "同时处理后缀名" 则包含后缀名
* nameWithoutExt(string): 文件名,不包含后缀名
* extension(string): 后缀名,包括 "."
* modifyTime(number): 文件修改时间,毫秒时间戳
* size(number): 文件大小,字节
* index(number): 文件在表格中显示的序号
*
* 返回值:新文件名(字符串类型),返回空值会忽略重命名操作
* 注意:默认应该返回不包含后缀名的文件名,如果勾选了 "同时处理后缀名" ,则返回包含后缀名的文件名
*/
function rename(options){
const {name, nameWithoutExt, extension, modifyTime, size, index} = options
// your code here. tips: 如果代码逻辑较为复杂,建议使用 vscode 编辑完成之后,复制粘贴过来
return name
}
/**
* 安全性声明
* 本网站是一个静态站点,所有操作都在本地运行,没有服务器,不会收集您的数据。
* 但是如果您使用了不安全的自定义重命名代码,则可能会造成数据泄漏。
* 如果您使用的是其他人提供的自定义重命名代码,请核实代码的安全性。
* 安全的代码应仅包含对文件名处理的字符串处理逻辑。
*/
/*
AI prompt
如果想要借助 AI 完成自定义重命名的操作,如下 prompt 供参考
尖括号 <> 中的内容,替换成你的具体需求与案例
我正在使用 JavaScript 进行文件的批量重命名工作,已经完成基础功能,请按照需求补充完成重命名函数。
需求1:<准确描述需求;举例:在文件名前方添加序号,并补零到三位,并在序号后面添加一个空格>
需求2:
需要填充的模板函数:
function rename(options){
const {name, nameWithoutExt, extension, modifyTime, size, index} = options
// your code here.
return name
}
rename 函数参数说明: options 一个对象,包含单个文件的信息
name(string): 文件名
nameWithoutExt(string): 文件名,不包含后缀名
extension(string): 后缀名,包括 "."
modifyTime(number): 文件修改时间,毫秒时间戳
size(number): 文件大小,字节
index(number): 文件在表格中显示的序号
rename 函数返回值:新文件名(字符串类型),返回空值会忽略重命名操作
*/
💡
如果您使用了不安全的自定义重命名代码,则可能会造成数据泄漏;如果您使用的是其他人提供的自定义重命名代码,请核实代码的安全性;安全的代码应仅包含对文件名处理的字符串处理逻辑。
浏览器兼容问题
因该网站使用了实验性的 API,浏览器兼容会有问题。如果发现功能有问题,请使用最新版 Edge/Chrome
浏览器。
全文完。