Windows

大量自動修改檔名教學與範例

介紹 Windows 大量檔案批次重新命名的各種方法,並提供實用的範例。

在 Windows 中如果想要一次更改大量檔案的檔案名稱,有好多種方式,以下是各種批次更改檔案的操作方式以及實際範例。

檔案總管

檔案總管除了以手動更改單一檔案的名稱之外,也可以將多個檔案選取後,一次修改多個檔名。
Step 1
按住 CtrlShift 鍵,再用滑鼠選擇要修改檔名的檔案。若要直接選擇所有檔案,可以使用 Ctrl + A 快速鍵。

選取檔案

Step 2
按下滑鼠右鍵,在右鍵選單中選擇「重新命名」。

重新命名

除了從右鍵選單中選擇「重新命名」之外,也可以直接按下 F2 快速鍵來重新命名檔案。

Step 3
輸入新的檔案名稱。

輸入檔名

Step 4
這樣檔案總管就會將所有的檔名改為新的名稱,並且自動加上編號。

新檔名

命令提示字元

若要使用命令提示字元來更改檔名,首先要開啟命令提示字元,並切換至檔案所在目錄,最快的做法就是直接在檔案總管中啟動命令提示字元。
Step 1
在檔案總管的位址列中,直接輸入 cmd 然後按下 Enter 鍵。

輸入 cmd

Step 2
在檔案總管中直接開啟命令提示字元,其預設路徑就會自動設定為目前所在的目錄,接著即可執行更改檔案名稱的指令了。

命令提示字元

在命令提示字元中,要更改檔名可以使用 ren 指令,以下是一些範例。

保留前三個字母

若要將所有的 JPG 圖檔(*.jpg)保留原檔案名稱的前三個字母,然後再加上 -new-name.jpg 做為新的檔案名稱,可以執行:

ren *.jpg ???-new-name.jpg
更改檔案名稱

執行後的結果會像這樣:

更改檔案名稱結果

縮短檔案名稱

如果有許多的檔案名稱太長,就可以執行類似這樣的指令,只保留前面幾個字母:

ren *.* ?????.*

這樣就可以只保留原檔名的前五個字母,讓檔名更精簡:

更改檔案名稱結果

保留連字線之前的名稱

如果要保留檔名中連字線之前的名稱,將後方改為 -orig.jpg 結尾,可以執行:

ren *-*.jpg *-orig.jpg
更改檔案名稱結果

更改副檔名

若要將所有的 JPG 檔案的副檔名更改為 JPEG,可以執行:

ren *.jpg *.jpeg
更改檔案名稱結果

PowerShell

在檔案總管中也可以直接啟動 PowerShell,是一種很實用的隱藏功能。
Step 1
在檔案總管的目錄中,先按住 Shift 鍵,然後在空白處按下滑鼠右鍵,在選單中點選「在這裡開啟 PowerShell 視窗」。

在這裡開啟 PowerShell 視窗

Step 2
這樣開啟的 PowerShell 視窗,其預設路徑就會是目前所在的目錄。

PowerShell 視窗

在 PowerShell 中,若要大量更改檔名通常都會使用 Dir 指令列出檔案名稱,再交給 Rename-Item 指令來更改檔名,以下是一些範例。

大量更改檔名

若要將所有的 JPG 檔案更改為相同的檔名,並自動加上編號,可以執行:

# 將檔名自動編號
Dir *.jpg | %{Rename-Item $_ -NewName ("new-name-{0}.jpg" -f $c++)}
大量更改檔名

執行的結果會像這樣:

更改檔案名稱結果

若要讓數字統一為三位數,不足則補 0,可以這樣寫:

# 將檔名自動編號(三位數,不足則補 0)
Dir *.jpg | %{Rename-Item $_ -NewName ("new-name-{0:000}.jpg" -f $c++)}

保留檔名前四個字母

若想要將太長的檔案名稱縮短,只保留每個檔名的前四個字母,可以執行:

# 僅保留檔案名稱的前四個字母,以及副檔名
Dir | Rename-Item -NewName {$_.Name.Substring(0,4) + $_.Extension}
更改檔案名稱結果

更改副檔名

若要將所有的 JPG 檔案的副檔名改為 jpeg,可以執行:

# 更改副檔名
Dir *.jpg | Rename-Item -NewName { [io.path]::ChangeExtension($_.name, "jpeg") }

取代檔名中的關鍵字

若要將檔案名稱中特定的字詞取代成新的文字,可以執行:

# 取代檔名中的關鍵字
Dir | Rename-Item -NewName {$_.Name -replace "old","new"}

若將新的字串設定為空字串,就等於刪除關鍵字的效果:

# 刪除檔名中的關鍵字
Dir | Rename-Item -NewName {$_.Name -replace "keyword",""}

將檔名中的空白字元,以下底線來取代也是很常用的指令:

# 將空白字元以下底線取代
Dir | Rename-Item -NewName { $_.Name -replace " ","_" }

參考資料:Windows CentralG. T. Wang

Share
Published by
Office Guide

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

1 年 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

1 年 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

1 年 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

1 年 ago