我觉得必须有一种优雅的方法,所以在我一起破解一个复杂的实现之前,我要问所有聪明的人。 :)预先感谢您的任何想法!
我正在使用PowerShell。在我的本地计算机上,有一个包含一些符号链接的文件夹结构。我想将这些符号链接替换为它们所指向的真实内容,以便我拥有所有文件夹结构和文件,而没有任何链接。如果我可以就地执行此操作(不创建新的无链接副本),将获得加分。
我知道我只需在Windows资源管理器中复制/粘贴文件夹就可以完成几乎所有我想做的事情。我想在PowerShell中以编程方式完成此操作,最好不要创建一个新文件夹,然后在删除原始文件夹之前必须与原始文件夹交换。
有什么提示吗? :)
答案 0 :(得分:0)
我有解决办法!
您可以使用以下代码:
$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
}
}
我已经在计算机上进行了测试,并且可以正常工作。当文件是符号链接时,目标的属性为其“ ReparsePoint ”,并且您需要将信息保存在变量中,因为在删除链接时,PowerShell会丢失信息。