我正在尝试批量替换多个文件夹中的符号链接及其指向的原始文件。我遇到的唯一解决方案是 Linux/Unix/Bash 脚本,如下所示:用文件替换符号链接
现在我一直在使用 WSL2(Ubuntu)来处理这个过程。
下面的代码完美地完成了这个工作:
for f in $(find -type l);do cp --remove-destination $(readlink $f) $f;done;
但我确实需要一个可以完成相同操作的本机 Windows 方法,以便我可以在不打开 WSL 的情况下调用(批处理多个文件夹等)。
最终我想要一个可以处理这个问题的 PowerShell 函数。
有人能给我指明正确的方向吗?
非常感谢。
答案1
这对我有用
$links = Get-ChildItem -Path C:\Test -Attributes ReparsePoint -Recurse
foreach ($link in $links)
{
$source = $link.Target;
$destination = $link.FullName;
& cmd.exe /C del $destination /F
& cmd.exe /C copy $source $destination /Y
}