批量重命名以截断和合并文件夹

批量重命名以截断和合并文件夹

我们迁移到 OneDrive,其中一台计算机复制了文件夹并将用户名添加到文件夹末尾,同时仍保留文件夹的某些部分。

现在我们剩下 600 个文件夹。我们的基础文件夹在这里:

C:\Users\Jason\OneDrive - 公司文件\Company Files

其中,我们有所有的项目文件夹,如下所示

\(Job Name)\
\(Job Name)-Dave-HP\

甚至子文件夹也受到影响

\(Job Name)\(Subfolder)
\(Job Name)-Dave-HP\(Subfolder)-Dave-HP

这两个文件夹中都有需要合并的数据。脚本将需要合并文件夹并覆盖任何存在的重复文件。

有谁有什么办法,不用手动删除每个文件夹的末尾,然后让资源管理器合并它们吗?运行 Windows 10。

答案1

## Q:\Test\2019\05\31\SU_1443421.ps1
$BaseDir = 'C:\' # 'A:\Test' # 
$Appendix= '-Dave-HP'

Get-ChildItem $BaseDir -Recurse -File | Where-Object Directory -Match $Appendix |
ForEach-Object{
    $DestDir = $_.Directory -Replace $Appendix
    if(!(Test-Path $DestDir -PathType Container)){MD $DestDir |Out-Null }
    $_ | Move-Item -Destination $DestDir\ -Force #-whatif
}

取消注释(删除#-WhatIf以首先检查 PowerShell 脚本将执行什么操作。

完全改变逻辑,脚本将保留尾随$Appendix不受影响的空目录。

相关内容