如何在 Windows 10 上用它们指向的文件替换符号链接?

如何在 Windows 10 上用它们指向的文件替换符号链接?

我正在尝试批量替换多个文件夹中的符号链接及其指向的原始文件。我遇到的唯一解决方案是 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
}

相关内容