如何在 PowerShell 中将包含符号链接的文件夹结构扩展为真实文件和文件夹(无链接)?

How to expand folder structure including symbolic links into real files and folders (no links) in PowerShell?

我觉得必须有一个优雅的方法来解决这个问题,所以在我一起破解一个复杂的实现之前,我想问问你们所有聪明的人。 :) 在此先感谢您的任何想法!

我正在使用 PowerShell。在我的本地机器上,有一个包含一些符号链接的文件夹结构。我想用它们指向的真实内容替换那些符号链接,这样我就拥有了所有没有任何链接的文件夹结构和文件。如果我可以就地执行此操作(无需创建新的无链接副本),则可加分。

我知道我几乎可以通过 copy/pasting Windows 资源管理器中的一个文件夹来做我想做的事。我想在 PowerShell 中以编程方式完成该操作,最好不要创建新文件夹,然后我必须在删除原始文件夹之前与原始文件夹交换。

有什么建议吗? :)

我有办法!

您可以使用此代码:

$File_LST = Get-ChildItem -Path C:\example
foreach ($File in $File_LST) {
    if($File.Attributes -like "*ReparsePoint*"){
         $FIL_PAT =  $file.Target
         $FIL_DST = $File.Directory.FullName
         Remove-item $File.FullName -Force
         Copy-Item -Path $FIL_PAT -Destination $FIL_DST -Force
    }
}

我已经在我的计算机上进行了测试并且可以正常工作。当文件是符号 link 时,目标属性是“ReparsePoint”,您需要保存变量信息,因为当您删除 link 时, PowerShell 丢失了信息。