RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [分享]在 Windows 中更改大量檔案名稱,批次修改檔名,快速又省力!   字型大小:||| 
geo
鐵驢友〔初級〕
等級: 4


 . 積分: 26
 . 文章: 20
 . 收花: 243 支
 . 送花: 6 支
 . 比例: 0.02
 . 在線: 17 小時
 . 瀏覽: 1161 頁
 . 註冊: 654
 . 失蹤: 21
#1 : 2021-4-15 02:39 PM     只看本作者 引言回覆

Windows 其實內建許多可以更改大量檔案名稱的方法,有時候熟悉這些小技巧可以節省您很多時間。

有時候我們會從網路上下載許多圖片與檔案,通常檔案的名稱也是亂七八糟的,為了讓檔案看起更整齊,我們通常會將同一系列的檔案重新依照自己的規則來命名,但是如果檔案數量很多時,要手動更改每個檔案的名稱也是很累的。

所幸在 Windows 中本身就有內建一些更改大量檔案名稱的功能,只是一般人不曉得如何使用,以下分別介紹以檔案總管、命列提示字元與 PowerShell 的改檔名方法。

檔案總管
檔案總管是一個最方便的工具,不需要學習任何指令即可使用,不過功能就比較陽春,以下是使用檔案總管更改多個檔案名稱的步驟。

STEP 1
首先開啟檔案總管,找到要更改檔名的檔案。

點擊查看全圖

STEP 2
選取要更改檔名的檔案。

點擊查看全圖

STEP 3
在第一個檔案上按下右鍵,選擇「重新命名」。輸入新的檔名。

點擊查看全圖  


STEP 5
輸入完之後,按下 Enter 鍵。

點擊查看全圖
STEP 6
這樣檔案總管就會將所有選取的檔案重新命名為指定的檔案名稱,並且依照原本的順序編號。


命令提示字元
在 Windows 的命令提示字元之中,我們可以使用 rename 或 ren 指令配合萬用字元(*)來一次更改多的檔案的檔名。

STEP 1
若要開啟命令提示字元重新命名檔案,可以按著 Shift 鍵,並在資料夾的空白處點選滑鼠右鍵,選擇「在此處開啟命令式窗」。

  點擊查看全圖

STEP 2
使用 rename 或 ren 指令批次更改檔案名稱,最常見的使用方式就是更改副檔名:

ren *.html *.txt
點擊查看全圖

STEP 3
這樣就完成了。

點擊查看全圖

PowerShell
Windows 的 PowerShell 的功能比命令提示字元還要強大,他可以使用管(pipe)的功能將多個指令結合起來使用,就像在 Linux shell 中一樣。

假設我沒有一些檔案,檔名中包含許多空白,以下示範將所有檔案名稱中的空白字元置換為減號(-)。

點擊查看全圖

STEP 1
在主選單中找到 Windows PowerShell,並開啟它。

點擊查看全圖
Windows 主選單

STEP 2
切換至檔案所在目錄後,使用 Dir 指令將所有的檔案名稱列出來,然後交給 Rename-Item 指令進行更改檔名的動作。

Dir | Rename-Item -NewName { $_.name -replace " ", "-" }
點擊查看全圖
PowerShell 視窗

STEP 3
這樣就完成了。

點擊查看全圖

以下補充一些比較複雜的 PowerShell 範例。

這一個是把所有的 jpg 圖檔重新命名為 image_編號.jpg,而編號的起始數字可以自己設定:

# 把所有的 JPG 檔案重新命名為 image_編號.jpg
Get-ChildItem *.jpg | ForEach-Object -Begin {
  $count = 1
} -Process {
  Rename-Item $_ -NewName "image_$count.jpg"
  $count++
}
這一段指令是將所有的 *.jpeg 檔案的副檔名改為 jpg,讓副檔名規則統一:

# 將所有 *.jpeg 檔案的副檔名改為 jpg
Get-ChildItem *.jpeg | Rename-Item -NewName {
  [System.IO.Path]::ChangeExtension($_.Name, ".jpg")
}
這一段指令稿是從所有的 *.jpg 檔案中,找出含有 oldstring 字眼的檔案,然後把 oldstring 這個字眼全部改為 newstring:

# 從所有的 *.jpg 檔案中,找出含有 oldstring 字眼的檔案,
# 把 oldstring 改為 newstring
Get-ChildItem *.jpg -Filter "*oldstring*" | ForEach {
  Rename-Item $_ -NewName $_.Name.Replace("oldstring","newstring")
}
事實上 Windows 的 PowerShell 的功能不只這些,它提供了豐富的控制與自動化的系統管理能力,若您對於 PowerShell 有興趣,可以參考微軟官方的教學文件。

[geo 在  2021-4-15 02:57 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2021-5-7 10:24 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.018244 second(s), 7 queries , Qzip disabled