Em vez de tentar modificar todos os seus links, você pode usar robocopy
em um prompt de comando para copiar o link simbólico em vez de seu destino.
ROBOCOPY source\path destination\path /E /SL
Este comando copiará recursivamente todos os diretórios e arquivos da sua origem para o seu destino ( /E
) e, em vez de copiar o destino do seu link simbólico, copiará o próprio link ( /SL
)
Você pode listar todos os seus links e alvos simbólicos com o powershell. Essa resposta no StackExchange mostra como.
dir 'Path\to\examine' -Recurse -Force | ?{$_.LinkType} | Select FullName,LinkType,Target
Você pode substituir os links existentes também usando o powershell.
New-Item -ItemType SymbolicLink -Path "Symbolic\Link\Path" -Target "New\Target\For\Link" -Force
Assim, um script para modificar todos os links em uma pasta seria assim:
$directory = 'Path\to\your\links'
$links = dir '$directory' -Force | ?{$_.LinkType}
foreach ($link in $links)
{
$target = $link.Target.Replace('C:\','G:\')
$path = $link.FullName
New-Item -ItemType SymbolicLink -Path "$path" -Target "$target" -Force
}
dir '$directory' -Force | ?{$_.LinkType} | Format-Table FullName,Target
Certifique-se de modificar o valor $directory
e executá-lo em um prompt do powershell admin. Você pode adicionar o -Recurse
flag ao comando dir
para procurar em subpastas também.