題 如何批量重命名文件?


我有一堆以模式命名的文件 99 - DescriptiveName.txt 我想從前面刪除號碼,所以我只是 DescriptiveName.txt

我怎樣才能做到這一點?我可以從命令行執行此操作,還是可以執行此操作的實用程序?


117


起源




答案:


我知道在你的標題中你說“在dos中”,但我得到的印像是你只是在尋找一種方法來做到這一點並且想知道這是否是最好的方法。

我找到的絕對最好的工具是 批量重命名實用程序

Bulk Rename Utility

它不是命令行工具,但確實有 命令行版本 如果你真的想以這種方式使用它。

我經常使用GUI版本,它非常強大,非常快速且非常易於使用。

哦,是的 自由 供個人使用。


91



不幸的是,該工具不能免費用於商業用途:( - AntonK
這就是我說它可以免費供個人使用的原因。 - Jim McKeeth
這是超級快速的工具。它使用多個搜索和替換邏輯在幾秒鐘內解決了我的6.000文件問題。就像使用Notepad ++但編輯成千上萬的文件一樣。很好的解決方案,謝謝! - Peanuts


一個小的PowerShell腳本:

$args | Rename-Item -NewName { $_.Name.ToLower() -replace '\d+ - ' }

結合更複雜的正則表達式,這可能會變成:

ls | Rename-Item -NewName {$_ -replace '(\d+) - (.*).mp3', '$2 - $1.mp3' }

這將'01 - Beginning.mp3'變成了'Beginning - 01.mp3'。

使用 -WhatIf 參數on Rename-Item 在發布之前檢查重命名。


55



@sysrqb,請多研究一下。 - Joey
替換不需要兩個字符串表達式嗎?第二個有兩個,第一個沒有。 ... -replace '\d+ - ',''。另外,我相信第一個更好,只是使用正則表達式剝離開頭。雖然我相信你應該在表達式的開頭包含^錨點,所以它只匹配以數字開頭的名稱。 - Xalorous
@Xalorous:嗯,你可以簡單地嘗試一下。 -replace 在右側只能有一個參數,在這種情況下,第二個參數是隱含的空字符串。 - Joey
這節省了我..批量重命名工具現在崩潰了,我嘗試了很多其他的解決方案。這對於那些對regexp感到滿意的人來說更好。非常感謝 !! - Inkh Su Tesou


如果你真的想使用windows命令行(如果你不想下載的東西),你可以這樣做:

dir /B > fileList.txt
for /f "tokens=1,2,3" %i in (fileList.txt) DO ren "%i %j %l" %l

第一行將文件列表輸出到名為fileList.txt的文件中。第二行將列表中的每個名稱分成3個部分,#,“ - ”和名稱的其餘部分。對於其中的每一個,它都執行重命名命令。


24



刪除第一行以簡化它並執行: for /f "tokens=1,2,3" %i in ('dir /B') DO ren "%i %j %l" %l
我知道這已經過時但它仍然是一個可靠的答案 - 只有%l(%L)應該是%k(%K)[代幣從%i(%I)增加所以我,J,K ......] - ongle


AntRenamer 這使得定義重命名模式變得非常容易;有很多已經準備好的(並且它預覽了行動):

AntRenamer

免費用於個人和商業用途。


24





老套:

您可以執行DIR並將輸出重定向到文件,如DIR * .TXT> TEMP.BAT

然後使用編輯器取出您不需要的內容並修改您需要的部件。 添加“@echo off”作為頂行,保存並運行它。


19



我從這個老學校博士學位獲得了這個頁面參考: dostips.com/DosCommandIndex.htm;你能做些什麼(好的?)老DOS真是太神奇了! - nik


另外一個選項: 大規模文件重命名

它允許輕鬆 改名 多 文件和文件擴展名。它非常快速而簡單!

對於高級用戶和開發人員,可以使用 常用表達

看到它在行動:

enter image description here


16



順便問一下,如何選擇它來打開子文件夾中的所有文件?我有一個根文件夾,大約有50個子文件夾(遞歸)和其中的多個文件。 - Pacerier
@Pacerier我認為Java文件選擇器不允許這樣做。我有想法允許選擇文件夾,並且可以包括遞歸搜索。我會注意到並在將來的版本中添加它! - IvanRF


我用 總指揮官用於這樣的事情的多重命名工具(ctrl + M)。他們的有用工具,太多無法計算,易於使用,並且如果需要也可以使用正則表達式和模板。哦,它顯然會在進行任何更改之前為您提供預覽。

這是我回答推薦Total Commander的第三個或第四個問題......我應該從他們那裡獲得佣金;-)


13





我滿意的工具是 更名。它還支持保存重命名規則,這對我來說很有用,因為我經常做同樣的重命名。

下面是如何在第一個破折號之前刪除文本的示例,但是您可以定義其他規則。

enter image description here


11





我用過 免費指揮官便攜式 (免費軟件)為此效果良好:

  1. 選擇或導航到要重命名的文件或目錄
  2. 按[Ctrl-M](或文件>多重命名)
  3. 根據您的情況填寫字段
  4. 驗證預覽顯示您的期望
  5. 走!

5





對於高級用戶和開發人員,我建議 RegexRenamer

RegexRenamer screenshot

Pro的:

  • 非常簡單的UI;
  • 開發人員熟悉的正則表達式;
  • GPLv2許可;

反對的:

  • 這不是命令行! :)

4



無法使所選文件夾的所有子文件夾遞歸工作! - Luckylooke