#windows #batch-file #command #alias
#Windows #пакетный файл #команда #псевдоним
Вопрос:
У меня есть папка (в Windows), содержащая множество ярлыков разных файлов в разных подкаталогах папки «Important» на диске C:.
Теперь мне нужно перенести всю папку «Важно» на диск D:.
Как изменить все псевдонимы, чтобы они указывали на новые назначения?
(В путях назначения не будет изменено ничего, кроме буквы диска.)
Комментарии:
1. Что вы имеете в виду псевдонимы? Макросы Doskey? Символические ссылки? Ярлыки? Что-то еще?
2. Ярлыки — я прошу прощения за плохой термин.
Ответ №1:
Если вы работаете в системе NTFS, существует служба Windows, называемая клиентом отслеживания распределенных ссылок. Короче говоря, он отслеживает, куда вы перемещаете файлы, так что, если у вас есть ярлыки, указывающие на файл, который был перемещен, ярлык обновляется автоматически.
Другими словами, вы можете просто переместить свою важную папку, и ярлыки должны продолжать работать.
Комментарии:
1. Ваш ответ был таким многообещающим, оба диска (исходный C: и конечный D:) являются NTFS, клиент отслеживания распределенных ссылок (TrkWks) постоянно запущен (тип автоматического запуска), но на практике ни одна ссылка не обновлялась.
2. Вы пробовали запустить его? Фактически он не обновляется до тех пор, пока не будет получен доступ.
3. Да, я делаю, я переместил полный каталог в D: и попробовал дважды щелкнуть по исходным ярлыкам, все они (я попробовал около 10) выдали мне окно сообщения о том, что целевой элемент был изменен или удален, и спросил меня, хочу ли я удалить этот ярлык. Примерно через 15 минут я снова попробовал дважды щелкнуть с тем же результатом, поэтому я переместил этот полный каталог обратно в C:, и все ярлыки снова заработали.
4. Хм. Это сработало для меня. Возможно, это разница в ОС. Я на Windows 10. Вы?
5. Windows 7. Я даже попытался переместить одну цель ярлыка на тот же диск (C: на C:) в другой каталог с тем же результатом (безуспешно). Я дважды проверил, что клиент отслеживания распределенных ссылок запущен, и все 3 службы, от которых он зависит, тоже. Что-то плохое на моей стороне. Тем не менее, я благодарю вас, ваш ответ очень хорош, и я голосую за него (несмотря на то, что у меня недостаточно репутации, чтобы его увидеть).
Ответ №2:
Команда быстрого доступа была удалена в Windows 98. Для ярлыков нет интерфейса командной строки. Вы можете написать свою собственную команду. Это печатает информацию о ярлыке.
'on error resume next
set WshShell = WScript.CreateObject("WScript.Shell")
Set Ag=Wscript.Arguments
set lnk = WshShell.CreateShortcut(Ag(0))
wscript.echo Ag(0) amp; vbcrlf amp; lnk.hotkey amp; vbcrlf amp; lnk.TargetPath
Для использования
cscript //nologo c:foldersc.vbs c:foldershortcut.lnk
Комментарии:
1. Извините, но ваш ответ не решает мою проблему — он выводит только целевой путь для данной ссылки.