En lugar de intentar modificar todos tus enlaces, puedes usar robocopy
desde un símbolo del sistema para copiar el enlace simbólico en lugar de su destino.
ROBOCOPY source\path destination\path /E /SL
Este comando copiará recursivamente todos los directorios y archivos desde su origen a su destino ( /E
) y en lugar de copiar el destino de su enlace simbólico, copiará el enlace en sí ( /SL
)
Puede enumerar todos sus enlaces simbólicos y objetivos con powershell. Esta responder en StackExchange te muestra cómo.
dir 'Path\to\examine' -Recurse -Force | ?{$_.LinkType} | Select FullName,LinkType,Target
Puedes sobrescribir los enlaces existentes también usando powershell.
New-Item -ItemType SymbolicLink -Path "Symbolic\Link\Path" -Target "New\Target\For\Link" -Force
Así que un script para modificar todos los enlaces en una carpeta se vería así:
$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
Asegúrese de modificar la $directory
valor y ejecútelo desde un indicador de PowerShell de administración. Puedes agregar el -Recurse
bandera a la dir
comando para buscar en subcarpetas también.