PowerShell快速修改多個檔案的名稱

疯狂学习GIS發表於2024-08-14

  本文介紹基於PowerShell語言,對資料夾中全部檔案的名稱加以批次替換、修改的方法。

  在之前的文章中,我們介紹了基於Python語言,批次修改大量檔案的名稱的方法。當時我們修改檔名的需求比較複雜,因此選擇了用Python語言來實現;而在我們的需求重新命名規則相對比較簡單時,則可以基於PowerShell語言來實現。本文就介紹基於PowerShell語言,批次修改資料夾中大量檔案的名稱的方法。

  首先,來看一下我們的需求。現有一個資料夾,如下圖所示,其中我們需要修改全部檔案的檔名;修改的規則是,將原有每一個檔案的名稱中的欄位CRO修改為GRA

  知道了需求,接下來我們即可開始具體操作。首先,在存放有這些需要修改的檔案的資料夾中,按下Shift鍵,同時在空白處點選滑鼠右鍵;隨後,在彈出的選擇列表中,選擇“在此處開啟Powershell視窗”選項,如下圖所示。

  接下來,將彈出如下所示的視窗。

  隨後,輸入如下所示的程式碼。

Get-ChildItem -Filter "*.csv" -File | ForEach-Object {
  $newname = $_.Name -replace "CRO", "GRA"
  Rename-Item $_.FullName $newname
}

  當執行此命令時,它將使用 Get-ChildItem cmdlet(命令列實用程式)獲取當前目錄中所有具有 .csv 副檔名的檔案的列表,並將其傳遞到管道中。然後,管道符號 | 將傳遞的物件傳遞到 ForEach-Object cmdlet 中,這個 cmdlet 會對每個檔案執行指定的操作。

  對於每個檔案,$newname = $_.Name -replace "CRO", "GRA" 這一行程式碼將建立一個新變數 $newname,其中包含了修改後的檔名,即將所有 CRO 替換為 GRA$_.Name 表示當前檔案物件的名稱。

  最後,Rename-Item $_.FullName $newname 將檔案的完整路徑名($_.FullName)與新的名稱($newname)一起傳遞給 Rename-Item cmdlet,以便將檔案重新命名為新名稱。

  按下回車鍵,即可執行這一程式。稍等片刻,即可完成程式碼的執行;其中,當出現如下所示的字樣,表明程式已經執行完畢(我這裡因為當時按下了兩次回車鍵,所以這段字樣出現了兩次)。

  此時,可以看到資料夾中的檔案都已經是重新命名之後的了。

  這一方法較之上述文章中提及的Python語言修改檔名,可以說相對更方便一些;尤其是在我們的檔案重新命名需求相對較為簡單的情況下,用這一方法可以說非常快速、方便了。

  至此,大功告成。

相關文章