簡體   English   中英

在PowerShell中批量重命名多個文件夾中的多個文件

[英]Batch rename multiple files in multiple folders in PowerShell

我想批量重命名多個目錄(20 個目錄,每個目錄 20 個文件)中的文件,我希望每個文件都獲得其文件夾名稱的前綴。

我可以使用以下代碼為單個目錄執行此操作:

dir | Rename-Item -NewName {$_.Directory.Name + "_" + $_.Name}

但是如何將其應用於其中的所有文件夾和文件?

主文件夾

  • 文件夾 1
    • 文件 1
    • 文件 2
  • 文件夾 2
    • 文件 1
    • 文件 2

所需的輸出:

主文件夾

  • 文件夾 1
    • 文件夾 1_文件 1
    • 文件夾 1_文件 2
  • 文件夾 2
    • 文件夾 2_文件 1
    • 文件夾 2_文件 2

我認為您可以通過目錄簡單地將-Recurse添加到 Recurse (也感謝@infosecb 指出還添加-File開關以僅重命名文件,而不是目錄):

Get-ChildItem * -File -Recurse | Rename-Item -NewName {$_.Directory.Name + "_" + $_.Name}

除了HAL9256的建議,你應該包括-File在獲取ChildItem cmdlet來只選擇文件開關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM