我们迁移到 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
不受影响的空目录。