批次重新命名
依照指定格式重新命名資料夾裡的所有檔案,需要 Chrome 或 Edge。檔案不會離開你的磁碟,重名也會在寫入前就被擋下。
在你的瀏覽器中執行
{name} 原檔名 · {ext} 副檔名 · {n} 編號 · {n:03} 補零 · {i} 位次
| 目前 | 之後 |
|---|
只能在 Chrome、Edge 等 Chromium 瀏覽器上使用
這是這裡唯一一個不是每個瀏覽器都能用的工具,值得把原因說清楚。
要重新命名磁碟上的檔案,需要 File System Access API——它讓網頁能對你明確選定的 資料夾請求寫入權限。目前只有 Chromium 系的瀏覽器實作了它:桌面版的 Chrome、Edge、 Opera、Arc 和 Brave。
Firefox 和 Safari 明確選擇不實作。這不是可以繞過去的疏漏:網頁沒有別的方法能就地改掉 一個檔案的名字,所以沒有替代方案,也沒有什麼可以拿來頂替。在那些瀏覽器上,這一頁會直接 說明情況,而不是擺出一堆按了也沒用的控制項。
在任何瀏覽器上都沒有上傳。你選的資料夾是由瀏覽器直接開啟的,檔案的讀寫都發生在你自己的 磁碟上。
所有新檔名都在寫入前就算好了
批次重新命名最危險的失敗,是兩個檔案最後叫同一個名字。後面那個會覆蓋前面那個,原本的 檔案就消失了。
所以這裡會先把整份改名結果算成一張表,在動到任何一個檔案之前檢查完畢。如果有兩個檔案會 撞名,按鈕根本不會變成可按——預覽會把出問題的列標成紅色並說明原因。檔名含有檔案系統 不接受的字元時也一樣。
撞名檢查是不分大小寫的,因為 macOS 和 Windows 會把 Photo.jpg 和 photo.jpg 當成
同一個檔案,即使字串不同。只比對完全相同的字串,會判定這一對是安全的,然後毀掉其中一個。
命名格式
| 代號 | 會變成 |
|---|---|
{name} | 原本的檔名,不含副檔名 |
{ext} | 副檔名,不含那個點 |
{n} | 流水號 |
{n:03} | 補零到三位的流水號 |
{i} | 在清單中的位次,一律從 1 開始 |
**副檔名會自動保留。**格式寫 holiday-{n},DSC0042.jpg 會變成 holiday-1.jpg
——你不需要記得加 .{ext},而且忘了加也不會把整個資料夾的副檔名都砍掉。只有當你想把副
檔名放在別的位置時,才需要自己寫 {ext}。
**記得幫流水號補零。**一個有 120 個檔案的資料夾用 {n} 會產生 1、2……120,而
幾乎所有檔案管理員都會把 10 排在 2 前面。用 {n:03} 會得到 001、002……
120,在哪裡排序都正確。
當你改了起始值或間隔之後,{i} 和 {n} 就不一樣了:{i} 永遠是清單中的位次,{n}
則是你設定的那個流水號。
尋找與取代
尋找與取代作用在展開格式之前的原檔名上,而且只作用在副檔名以前的部分——所以把 txt
取代掉,不會把 .txt 變成 .doc。
預設是字面搜尋,IMG. 就是比對 IMG. 這四個字元,不會有別的解釋。勾選正規表示式
就會改用樣式比對,此時 . 代表任意字元,取代字串裡的 $1 代表第一個擷取群組:尋找
^IMG_(\d+)$,取代為 photo-$1。
這裡的「重新命名」實際上做了什麼
這個 API 沒有重新命名的操作,所以每個檔案都是複製成新檔名,再刪掉舊的。內容完全相同, 但有兩點和真正的重新命名不一樣:
- 新檔案會有新的建立日期。
- 如果過程中被中斷,會有一部分改好、一部分沒改。這一頁會明確回報成功了幾個,而不是含糊 地說整個失敗。
檔案的處理順序與你的檔案管理員顯示的順序相同——依檔名排序,數字以數值比較——所以 {n}
會跟著你看得到的順序走。
建議先拿副本試一次
不是因為預覽不可靠,而是因為這樣做的成本是零,而且這是這裡唯一一個會改動你既有檔案的 工具。