V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
JasonGrass
V2EX  ›  程序员

本地文件批量重命名,现在可以用 web 实现了

  •  2
     
  •   JasonGrass ·
    JasonGrass · 2023-12-18 22:46:37 +08:00 · 6154 次点击
    这是一个创建于 372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    批量重命名是一个低频但时不时又会遇到的需求,非常适合在线工具的形式,然后还真发现了相关的 API 。

    FileSystemFileHandle.move() for local files - Chrome Platform Status

    chrome 于 111 版本添加的 move API ,可以直接对本地文件进行重命名,目前 MDN 上还没有文档,应该还不是标准。

    在线体验: Rename - 批量文件重命名工具

    Github: JasonGrass/rename: 在线文件批量重命名

    功能还不是很丰富,等之后有空了再完善吧。不过,正则表达式替换,已经可以覆盖很多高级场景了。

    感叹于浏览器的能力边界越来越大了,加上 webassembly ,估计以后很多功能都可以直接在浏览器上实现了,多方便。🤣

    50 条回复    2023-12-20 10:32:48 +08:00
    Anubisks
        1
    Anubisks  
       2023-12-18 23:35:27 +08:00
    其实 Windows 的 powertoy 是一个不错的选择
    tool2d
        2
    tool2d  
       2023-12-19 00:31:45 +08:00
    我也写了一个,但我是生成 bat 后,再本地运行的。

    原因是一些下载的 mp4 ,文件名实在太长了。
    dianso
        3
    dianso  
       2023-12-19 00:39:56 +08:00
    我都不用工具,直接问 gpt ,把要求描述下,基本一次性就能给我个 win11 用的 ps1 批处理。
    ab
        4
    ab  
       2023-12-19 00:52:38 +08:00   ❤️ 1
    如果是 mac 的话,automator 自带一个批量重命名的服务
    kkwa56188
        5
    kkwa56188  
       2023-12-19 03:16:06 +08:00
    PowerToys 里有个 PowerRename 挺好用的,
    要是我自己做轮子的话, 个人会使用 python,
    手里有一个锤子 看什么都像钉子
    fox0001
        6
    fox0001  
       2023-12-19 07:57:36 +08:00 via Android
    shell 脚本不会写吗?
    fox0001
        7
    fox0001  
       2023-12-19 08:00:22 +08:00 via Android
    我觉得,重点不是“能不能”,而是“该不该”。如果权限控制出 bug ,就等于你的电脑能被网站(利用浏览器)控制…
    jisuowei
        8
    jisuowei  
       2023-12-19 08:27:33 +08:00
    我也写过一个类似的,但不是用的这个 API ,我是读到浏览器里改完再下载回来 https://jisuowei.com/app/RenameMan
    JasonGrass
        9
    JasonGrass  
    OP
       2023-12-19 08:47:52 +08:00
    @fox0001 #7 浏览器不会允许网站直接读取你的文件的,每次使用都需要授权。这个跟你使用网页上传文件一样,需要你手动授权,在正常的浏览器上,没有哪个网页可以偷偷摸摸地读取你的文件。
    JasonGrass
        10
    JasonGrass  
    OP
       2023-12-19 08:51:35 +08:00
    @tool2d 这个思路棒诶,而且举一反三的话,确实很多事情,都可以用可视化界面做配置,然后生成脚本再执行
    JasonGrass
        11
    JasonGrass  
    OP
       2023-12-19 08:53:52 +08:00
    @fox0001 #6 照您这么说,很多工具都没有存在的必要。只能说,这些工具的受众不是您这种大神,是咱这种只想点点鼠标的普通人。
    webs
        12
    webs  
       2023-12-19 08:56:41 +08:00
    命令行有个 rename 命令可以直接用。。。
    JasonGrass
        13
    JasonGrass  
    OP
       2023-12-19 08:58:35 +08:00
    @dianso 当代最新高级玩法 😂
    JasonGrass
        14
    JasonGrass  
    OP
       2023-12-19 08:59:25 +08:00
    @Anubisks 你不说我都忘了电脑上装了这个软件,果然还是没用习惯 😥
    JasonGrass
        15
    JasonGrass  
    OP
       2023-12-19 09:00:02 +08:00
    @ab thanks, 新技能 GET
    davin
        16
    davin  
       2023-12-19 09:20:59 +08:00
    几乎不怎么用额外的软件/命令行,新手也比较适合的

    Windows 系统批量重命名:
    1. Ctrl+A 全选或鼠标选中需要批量重命名的文件;
    2. 在第一个文件旁点击鼠标右键,在菜单栏中选择 “重命名”;
    3. 输入命名方式,按下 Enter 键后,所有文件都会以这一方式自动重命名,并在后面加上序号。

    macOS 系统批量重命名:
    https://support.apple.com/zh-cn/guide/mac-help/mchlp1144/mac
    fox0001
        17
    fox0001  
       2023-12-19 09:21:02 +08:00 via Android
    @JasonGrass #9 所以我说是出 bug 的情况下。但是也不排除一些魔改版本,做恶意功能。
    wangtian2020
        18
    wangtian2020  
       2023-12-19 09:26:27 +08:00
    又从 nodejs 上偷功能了
    mainjzb
        19
    mainjzb  
       2023-12-19 09:28:09 +08:00
    这类需求适合 python+gpt
    JasonGrass
        20
    JasonGrass  
    OP
       2023-12-19 09:42:22 +08:00
    @fox0001 #17 那确实,所以还是大厂的浏览器比较靠谱
    JasonGrass
        21
    JasonGrass  
    OP
       2023-12-19 09:44:43 +08:00
    @wangtian2020 😂 竟然是从 nodejs 上来的功能,有点意思
    Byzliu
        22
    Byzliu  
       2023-12-19 12:43:40 +08:00 via Android
    可以试试 Advanced Renamer 这个挺好用的
    JasonGrass
        23
    JasonGrass  
    OP
       2023-12-19 12:50:05 +08:00
    @Byzliu thanks ,复杂的重命名需求,现在确实还是本地工具比较好用。一开始的想法,是弄个即用即走的工具,不用下载不用安装,就想到了网页版本的。
    ns09005264
        24
    ns09005264  
       2023-12-19 13:15:05 +08:00
    我用 vim 做文件[批量]重命名的,配合 lf 之类的终端文件管理器选择文件,然后在 vim 中进行操作就可以了,想用正则用正则,想用 V-Block 多行编辑就用。
    由于它是基于 mv 命令进行命名的,所以可以做到给不同文件夹里的文件们同时重命名,或者将一个文件夹里的文件分发到不同的文件夹。
    laqow
        25
    laqow  
       2023-12-19 17:56:27 +08:00
    浏览器有这种功能可怕的一比啊,随便写点东西诱导一下或者把哪个广告窗口的关闭按钮放到 确定 气泡的位置就可以诱导操作本地文件,甚至 chrome 蹩脚中文本身的迷惑性带来的误操作
    ccxuy
        26
    ccxuy  
       2023-12-19 17:58:58 +08:00
    这个看起来很不错啊,是不是能加一个记录重命名规则,多个规则顺序处理的功能?
    sub166
        27
    sub166  
       2023-12-19 18:05:05 +08:00
    @laqow 网页权限请求的弹窗是用浏览器自带的,页面无法覆盖
    SilencerL
        28
    SilencerL  
       2023-12-19 18:17:07 +08:00
    所以 https://vscode.dev/ 才能实现功能
    chnwillliu
        29
    chnwillliu  
       2023-12-19 20:00:29 +08:00 via Android
    网页授权设备后串口烧固件写镜像到 U 盘这种都可以在 web 页面里完成,相当方便。

    Web Bluetooth ,Web Serial ,Web USB ,Web GPU 一大波系统级 API 慢慢开放给 Web 了。
    chnwillliu
        30
    chnwillliu  
       2023-12-19 20:19:27 +08:00 via Android
    @laqow 浏览器在这方面确实要克制,但本质还是用户要自己甄别网页是否可信。好比安卓上你下小软件,不论三七二十一,联系人短信相册甚至屏幕权限都一通授权,钱没了才发现上当了,回头说手机中毒了。只能教育大众别瞎装小软件,你能说安卓开放这些 API 危险吗?
    JasonGrass
        31
    JasonGrass  
    OP
       2023-12-19 20:38:17 +08:00
    @ccxuy 现在功能还比较初级,得等有空再弄了,我先记到 issue 中
    JasonGrass
        32
    JasonGrass  
    OP
       2023-12-19 20:43:30 +08:00
    @chnwillliu #29 这些 API 都在路上了吗?浏览器要变成操作系统了…… 😂
    netme
        33
    netme  
       2023-12-19 20:46:35 +08:00
    Bulk Rename Utility
    JasonGrass
        34
    JasonGrass  
    OP
       2023-12-19 20:49:16 +08:00
    @netme 666 ,看官网截图,这个软件甚至还能自定义 js 代码实现重命名,感觉这个我可以学,哈哈哈
    [Bulk Rename Utility - Free File Renaming Software]( https://www.bulkrenameutility.co.uk/ )
    shinsekai
        35
    shinsekai  
       2023-12-19 21:04:04 +08:00   ❤️ 1
    @ccxuy 菲菲更名宝贝,这个软件很老就有了。
    akira
        36
    akira  
       2023-12-19 21:22:20 +08:00
    那以后电脑里面 内置 语音接收,然后 AI 识别,然后自动执行,这样应该更合理吧
    JasonGrass
        37
    JasonGrass  
    OP
       2023-12-19 21:35:12 +08:00
    @ccxuy 哦,确实,如果你现在就有一些比较复杂的需求,可以考虑本地批量重命名工具,这里有一些网页的推荐收集:
    https://github.com/JasonGrass/rename/discussions/3
    JasonGrass
        38
    JasonGrass  
    OP
       2023-12-19 21:36:24 +08:00
    @akira 突然想到了老罗的 TNT ,老罗还是太超前了
    james122333
        39
    james122333  
       2023-12-19 22:10:13 +08:00 via Android
    @laqow

    的确十分恐怖 洞越来越大
    james122333
        40
    james122333  
       2023-12-19 22:13:28 +08:00 via Android
    @chnwillliu

    这不可能的 一个网页资源很多 你不可能全都知道的
    chromium 系市场占有率又极高 这么複杂的工具有什么洞也不意外
    sjtulyj
        41
    sjtulyj  
       2023-12-19 22:21:01 +08:00
    vidir
    SHF
        42
    SHF  
       2023-12-19 22:48:05 +08:00
    xyplorer 文件管理器自带的功能,而且有两种模式,很方便



    DOLLOR
        43
    DOLLOR  
       2023-12-20 01:04:13 +08:00
    关键是 showDirectoryPicker 这个接口吧,选定某个目录后,就可以读写里面的文件。很多以前需要 python 、node 才能干的活,现在只需 chrome (及其套壳浏览器)就能干了。
    不过目前 firefox 、safari 还未实现。
    geomancy
        44
    geomancy  
       2023-12-20 04:33:19 +08:00 via iPhone
    我一直用 acdsee2.4 单文件版 做各种批处理更名 批处理图像转换 非常好用 还支持模式匹配
    yuzo555
        45
    yuzo555  
       2023-12-20 06:44:33 +08:00
    MDN 上的兼容性表格说 Chrome 还不支持 FileSystemFileHandle.move (但 Firefox 支持了),应该是没更新
    FaiChou
        46
    FaiChou  
       2023-12-20 08:47:09 +08:00 via iPhone
    记得 emacs 有个模式,可以把所有文件列表当作文本处理,保存即可重命名或标记 delete 之类的。
    paopjian
        47
    paopjian  
       2023-12-20 09:20:16 +08:00
    浏览器大一统操作系统指日可待
    param
        48
    param  
       2023-12-20 09:40:20 +08:00 via Android
    这个接口得有访问范围吧,要求用户先将某个目录加入访问范围,再允许某个域去修改,不然那么危险。
    laqow
        49
    laqow  
       2023-12-20 10:04:27 +08:00
    @chnwillliu 危险的一比好吗,安卓就谷歌一脉相承的,本来设计上就是服务服务商的,用户屁权利没有,一通授权哪里是用户能选择的,本身作为 linux 系统权限控制都是现成的逻辑,偏要自己搞一个看起来严密其实全是漏洞的逻辑
    JasonGrass
        50
    JasonGrass  
    OP
       2023-12-20 10:32:48 +08:00
    @param 这个授权是一次性的,每次使用浏览器都会询问是否允许访问 XXX 文件夹。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3607 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 04:23 · PVG 12:23 · LAX 20:23 · JFK 23:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.