Один из компьютеров вышел из дыма, и я подключил HD к USB-адаптеру, чтобы извлечь все пользовательские данные.
USB-накопитель отображается как диск G: но все символические ссылки указывают на исходный диск C: поэтому, когда я копирую все файлы и перехожу на символические ссылки, я в конечном итоге копирую данные со своего собственного диска C:
Есть ли команда (или способ) изменить все символические ссылки на другой диск? Пример, изменение символической ссылки, C:\Users\Administrator\fileX.yчтобы указать G:\Users\Administrator\fileX.yвместо этого?
Нет. Вы можете заменить символические ссылки одну за другой, но я бы просто сделал резервную копию файлов оригинального диска C, и пусть копия не будет следовать символическим ссылкам.
LPChip 6 лет назад
0
Просто для пояснения: ваши данные находятся на диске G. Вы копируете эти данные на диск C. Есть символические ссылки, которые указывают на диск C, и вы хотите, чтобы они работали должным образом после задания копирования. Это ситуация, или вы копируете данные на третий диск?
sippybear 6 лет назад
0
2 ответа на вопрос
1
harrymc
Я не думаю, что можно изменить символическую ссылку, только воссоздать ее. Это потребует написания скрипта или программы для сканирования диска и воссоздания символических ссылок.
Вот идея, которая может быть проще: создайте виртуальную машину и установите этот физический диск G: как его диск C :.
И VMware, и VirtualBox поддерживают физические / необработанные диски:
Ну, я достаточно опытен в Win32 API, использующем C / C ++, и у меня также была идея написать небольшую программу для этого. Я просто надеялся, что для этого найдется инструмент.
Max Kielland 6 лет назад
0
К сожалению, я не знаю ни одного такого инструмента. Мне также нравится программирование, но в вашем случае я бы попробовал решение для виртуальной машины по одной причине: оно не может уничтожить диск из-за любой моей ошибки. В любом случае я бы посоветовал сделать резервную копию образа диска и, если возможно, использовать его вместо этого.
harrymc 6 лет назад
0
0
sippybear
Вместо того, чтобы пытаться изменить все ваши ссылки, вы можете использовать robocopyиз командной строки, чтобы скопировать символическую ссылку вместо ее цели.
ROBOCOPY source\path destination\path /E /SL
Эта команда рекурсивно скопирует все каталоги и файлы из вашего источника в пункт назначения ( /E) и вместо того, чтобы копировать цель вашей символической ссылки, она сама скопирует ссылку ( /SL)
Вы можете перечислить все свои символические ссылки и цели с PowerShell. Этот ответ на StackExchange показывает, как.
dir 'Path\to\examine' -Recurse -Force | ?{$_.LinkType} | Select FullName,LinkType,Target
Вы можете перезаписать существующие ссылки также с помощью powershell.
Обязательно измените $directoryзначение и запустите его из командной строки admin powershell. Вы можете добавить -Recurseфлаг к dirкоманде, чтобы посмотреть и в подпапках.
Да, но мне нужно скопировать и символическую ссылку, так как исходный диск будет уничтожен позже.
Max Kielland 6 лет назад
0
@MaxKielland Данные, на которые указывают символические ссылки, существуют на том же диске, что и символические ссылки, или они где-то еще?
sippybear 6 лет назад
0
Да, целью всех символьных ссылок является тот же физический раздел (что и C: когда он использовался), но в моей системе, как и на USB-накопителе, он находится на G: но все символические ссылки по-прежнему указывают на C: (не на реальные ссылки). , но абсолютные ссылки).
Max Kielland 6 лет назад
0
@MaxKielland Пожалуйста, дайте мне знать, если этот сценарий сработает.
sippybear 6 лет назад
0