ByteScope

Bulk Rename

選一個磁碟上的資料夾,疊一串改名規則,把每個舊名字和新名字看過一遍,確認後就地改——從網頁做,什麼都不上傳。

資料夾是瀏覽器直接在你自己的電腦上開啟的。檔名讀取、重新命名、寫回硬碟都在本機完成——不會上傳任何東西,內容也不會離開這個分頁。

資料夾

選一個資料夾。重新命名只會處理裡面的檔案,子資料夾不會被動到——要處理子資料夾就直接打開它。

資料夾
檔案
0
已勾選
0

規則

規則由上往下依序套用,每一條都吃上一條處理過的結果。想加幾條都可以,預覽會即時更新。

還沒有規則。點上面加一條,預覽就會出現。

要遵守的命名規則

通用模式是兩邊規則的聯集。瀏覽器沒辦法知道這個資料夾今晚會不會同步到 Windows 電腦,而一個被 Windows 默默改掉的檔名,就是一個消失的檔案。

預設是開啟,因為 macOS 和 Windows 出廠就是這樣。只改字母大小寫的重新命名,會先經過一個暫時檔名再改回來,所以畫面上會多一個步驟。

瀏覽器支援度

要原地重新命名和刪除檔案,需要 File System Access API,目前只有 Chromium 系列瀏覽器支援。不管支不支援,下面的操作都在你自己的電腦上完成——絕不會上傳任何東西。

功能ChromeEdgeFirefoxSafari
從硬碟開啟資料夾window.showDirectoryPicker——Chrome/Edge 86 以上,僅限桌面版支援支援不支援不支援
原地重新命名檔案FileSystemFileHandle.move——Chrome/Edge 111 以上支援支援不支援不支援
原地刪除檔案FileSystemDirectoryHandle.removeEntry支援支援不支援不支援
記住資料夾供下次使用控制代碼會存在這台裝置的 IndexedDB 裡;權限每次還是要重新授權支援支援不支援不支援

在這個瀏覽器偵測到

  • window.showDirectoryPicker
  • FileSystemFileHandle.move
  • indexedDB

在 Firefox、Safari,或任何手機、平板上,這個頁面能說明怎麼做,但沒辦法實際執行。請用桌面版 Chrome 或 Edge 開啟。

關於這個工具

批次改檔名一直以來都得先裝點什麼——Bulk Rename Utility、PowerRename,或是 shell 一行指令——因為網頁只有在你把檔案上傳之後才看得到它們。File System Access API 改變了這件事:這一頁用 showDirectoryPicker 跟你要一個資料夾,你授權寫入,它就在原地改你的檔名。不複製到任何地方、不上傳,也沒有東西要安裝或登入。限制先講在前面,而不是讓你做到最後才發現:這個 API 只存在於桌面版的 Chromium 系瀏覽器——Chrome 和 Edge——Firefox 和 Safari 都沒有,頁面會直接告訴你,不會默默壞掉。

規則疊成一條鏈,照順序生效

改名是用一顆顆小規則疊成的管線:尋找取代、加前綴後綴、可補零的連號、大小寫轉換,還有一個支援擷取群組的正規表示式模式,留給簡單規則寫不出來的工作。照片有一顆專用規則,會讀出檔案的 EXIF 拍攝日期插進名字裡——用的是真正的 DateTimeOriginal,不是每複製一次就變一次的檔案修改時間。每顆規則的輸出餵給下一顆,所以 IMG_0231.jpg 一趟就能變成 2024-06-14_holiday_001.jpg

預覽就是合約

你在組規則的期間,什麼都不會被改。每個檔案都列出「現在的名字」和「將會變成的名字」,每改一次規則就重算一次;衝突在你能按下套用之前就會被插旗:兩個檔案改向同一個新名字、新名字撞上既有檔案、檔案系統不接受的字元。整批要你明確確認才執行,而且預覽裡那份清單就是實際執行的那份——預覽和磁碟之間沒有驚喜。

復原,以及它誠實的極限

一批跑完之後,一鍵就能把全部改回去:工具會把這批的新舊名字對照記下來,存在瀏覽器的 local storage 裡,所以復原撐得過重新整理——關掉分頁、改天再回來、重新打開同一個資料夾,這批還是改得回去。反過來這件事也要講明白:你改了哪些名字的紀錄,會一直留在瀏覽器裡,直到下一批把它蓋掉為止。復原也不是魔法——只有在原名字還空著的時候才改得回去,而且遇到只是同名的另一個資料夾,它會拒絕動手。它設計上的使用方式是:改、看結果、不對就復原。

常見問題

哪些瀏覽器可以用?

桌面版的 Chromium 系瀏覽器:Chrome、Edge,以及 Brave、Opera 這類 Chromium 衍生品。就地改檔名需要帶寫入權限的 File System Access API,Firefox 和 Safari 沒有實作——在那些瀏覽器上,頁面會給你一份誠實的說明,而不是一個壞掉的工具。行動瀏覽器同樣不行,包括 Android 版 Chrome 和 iOS 上的全部瀏覽器。「從網頁改自己磁碟上的檔名」這招只存在於有這個 API 的地方,這就是它的代價。

我的檔案會被上傳嗎?

不會——而且就改名這件事來說,連內容都幾乎不會被讀。改名字是瀏覽器代你在磁碟上做的本機檔案系統操作,檔案裡的 byte 跟它無關。唯一的例外是 EXIF 日期規則:它會在本機讀每張照片開頭的幾 KB 找 DateTimeOriginal,在你的分頁裡讀,哪裡都不去。這一頁是背後沒有 API 的靜態檔案——就算想收,也沒有伺服器可以收上傳。

兩個檔案改出同一個名字會怎樣?

在任何事發生之前,預覽就會插旗:兩個改名後的檔案互撞,或是撞上一個本來就存在的檔案,都會被標出來,而且在你修好規則或把那個檔案排除之前,整批套用都會被擋住。絕對不會有東西被默默覆蓋——一個會毀掉檔案的改名被當成錯誤處理,不會用猜的解決。至於批次內互換名字——兩個檔案對調,或三個以上繞一圈輪換——那不算衝突:工具會先把其中一個停到暫時的名字上,再照順序執行,什麼都不會被蓋掉。

改完可以復原嗎?

可以——工具記著這一批裡每一組新舊名字,一鍵全部改回去。這份紀錄存在瀏覽器的 local storage 裡,重新整理、改天再開都還在——反過來說,你改過哪些檔名的清單也會一直留在瀏覽器裡,直到被下一批取代。誠實的限制還是有:一個名字要還空著才改得回去,中間被別的東西佔走就沒辦法;而只是同名的另一個資料夾,復原不會對它動手。留著的只有最近一批,所以復原是對上一次執行的反悔,不是歷史批次的保險櫃。

外接硬碟或網路資料夾可以用嗎?

只要作業系統把它掛載成一般目錄就選得到,所以外接 USB 硬碟沒問題。掛載成磁碟機的網路共享通常也能用,但每一次改名都是一趟到共享的來回,大批次會比較慢,而且復原的前提是共享還掛著。Chromium 出於安全會拒絕授權某些系統資料夾;Dropbox 或 Google Drive 的同步資料夾則完全沒問題——同步程式看到的就是普通的改名。