無論您需要重命名單個文件還是整個批次,PowerShell 都能使任務變得更輕鬆。使用 PowerShell 腳本中的變量,您可以按順序重命名單個或多個文件、用下劃線替換空格以及更改文件擴展名。在本教程中,我們將在 Windows 10 和 11 上使用 PowerShell 腳本查看一系列文件重命名技巧。
複製、移動、重命名或在 Windows 上,您需要目標文件和文件夾的路徑。右鍵單擊文件或文件夾並選擇複製為路徑從 Windows 上下文菜單。
這是一個術語表本 PowerShell 教程中使用的、參數、運算符和通配符。
- 獲取子項目:檢索指定位置內所有項目(文件和文件夾)的列表。
- “C:\技術”:我們的文件所在的示例路徑。您需要將其替換為您想要的路徑。
- | (管道符號):此符號用於將一個 cmdlet 的輸出傳遞到另一個 cmdlet。
- ForEach-對象:此 cmdlet 作用於集合中的每個元素。
- 重命名項目:用於重命名文件的 PowerShell cmdlet。
- $_:當前正在處理的項目的佔位符。
- -新名稱:此參數指定我們要分配給您的文件的新名稱。
- “新文件名”:這是我們要使用的新文件名的示例。您可以將其替換為您想要的文件名。
- *.docx:這是一個通配符示例,用於過濾目錄中擴展名為“.docx”的所有文件。
- 時間戳:獲取文件的時間戳。
本教程使用變量和字符串操作來重命名文件。通過一些練習,您將學會組織和管理文件。
1. 重命名單個文件
PowerShell 允許您快速有效地重命名單個文件。您可以使用Rename-Itemcmdlet 後跟文件的當前名稱和新名稱。
Rename-Item "OldFileName.ext" -NewName "NewFileName.ext"
例如,如果桌面上名為“Technastic”的文件夾中有一個名為“ADB Commands”的文件,請打開該文件夾,與文件夾路徑,並執行以下命令:
要從桌面而不是從文件所在的文件夾重命名同一文件,您需要在命令中提及文件路徑。
Rename-Item -Path "Path-of-the-file" -NewName "NewFileName.ext"
導航到目標文件,右鍵單擊它,然後選擇複製為路徑。在桌面上啟動 PowerShell 並執行以下命令:
您可以使用Rename-Itemcmdlet 的參數如下-PassThru,-WhatIf, 和-Force。例如,以下命令將在命令窗口中提供輸出。
Rename-Item "Path-of-the-file" -NewName "NewFileName.ext" -PassThru
您甚至可以使用 Rename-Item cmdlet 重命名註冊表項。
Rename-Item -Path "HKLM:\Software\AngryBirds\Policies\Advertising" -NewName "Advertisement"
通過使用Move-Itemcmdlet,您可以重命名文件並將其同時移動到定義的位置。
Move-Item -Path "Document _1.docx" -Destination "D:\New folder\My Document _1.docx" -Force
2. 重命名文件夾中的所有文件
儘管Rename-Item能夠單獨重命名單個文件;它需要以下方面的幫助Get-ChildItemcmdlet 獲取要重命名的文件列表。此外,我們還必須添加-Recurse,-Include, 和-NewName將參數傳遞給 PowerShell 命令以重命名多個文件。
Get-ChildItem -Path "Path-to-Folder" -Recurse -Include "*file-extension" | Rename-Item -NewName { $_.Name -replace "OldName","NewName" }
例如,要重命名 C 盤中名為“Technastic”的文件夾中所有擴展名為“.docx”的文件,您必須使用上述命令,如下所示:
如果您使用目標文件所在文件夾的路徑啟動 PowerShell,則可以刪除-Path從上面的命令。
Get-ChildItem -Recurse -Include "*file-extension" | Rename-Item -NewName { $_.Name -replace "OldName","NewName" }
3. 按升序順序重命名
PowerShell 還可以幫助您以遞增的數量或順序重命名具有相同擴展名的文件。使用命令,您可以在重命名文件時在文件名之前或之後添加數字計數器。
在開頭添加遞增的數字
要使用 PowerShell 順序重命名文件時添加遞增的數字,請使用此命令。
Get-ChildItem "Folder-Path" -Recurse -Include "*.extension" | ForEach-Object -Begin { $Counter = 1 } -Process { Rename-Item $_.FullName -NewName ("{0}_{1}" -f $Counter, $_.Name) ; $Counter++ }
例如,如果要按順序重命名特定文件夾中擴展名為“.docx”的所有文件,請在上述命令中添加文件夾路徑和文件擴展名。
結果會是這樣的:
在末尾添加遞增的數字
同樣,您可以在重命名文件名時在文件名末尾添加編號。
Get-ChildItem -Path "Folder-Path" -Recurse -Include "*.extension" | ForEach-Object -Begin { $Counter = 1 } -Process { Rename-Item $_ -NewName "NewFileName_$Counter.docx" ; $Counter++ }
文件將被重命名,如屏幕截圖所示。
4. 添加擴展和案例
保留文件名但更改其擴展名
要保持文件名不變但僅重命名文件擴展名,請執行以下命令。
Get-ChildItem *.current-extension | Rename-Item -NewName { $_.Name -replace '.current-extension','.new-extension' }
以下帶有文件夾路徑的命令將在任何地方運行。
Get-ChildItem -Path "C:\Technastic" -Recurse -Include *.docx | Rename-Item -NewName { $_.Name -replace '.docx','.txt' }
如果要列出具有特定擴展名的所有文件,請使用Get-Children首先是 cmdlet。然後,您可以使用上述命令將當前擴展名重命名為所需的擴展名。最後,您可以再次使用 Get-Children cmdlet 檢查更改的擴展。
重命名文件和擴展名
PowerShell 腳本可以使批量重命名任務變得更加容易。您可以使用以下腳本使用 PowerShell 在 Windows 中批量重命名多個文件。它不僅可以讓您過濾具有特定擴展名的所有文件並更改其名稱和擴展名。
因此,如果您想將所有擴展名為“.docx”的文件重新命名為“File.txt”,請嘗試以下腳本。
Get-ChildItem -Path C:\Technastic\*.docx | ForEach-Object { Rename-Item $_ -NewName "File$i.txt" $i++ }
將文件夾中的所有文件更改為小寫
要將文件夾中具有特定擴展名的所有文件重命名為小寫,請使用以下腳本。
Get-ChildItem *.jpeg | Rename-Item -NewName { $_.Name.ToLower() }用下劃線替換空格
如果您的文件名稱中包含空格(My Word 文檔),則可以用下劃線 (My_Word_Document) 或連字符 (My-Word-Document) 替換空格。該腳本將適用於目標文件夾中的所有文件,無論其擴展名如何。
Get-ChildItem -Recurse -Force -Filter "* *" | Rename-Item -NewName { $_.Name -replace " ","_" }要了解更多PowerShell的強大功能,可以參考微軟官方網站。
