Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

lnk (ярлык) с относительными путями

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Tue Jun 17, 2014 03:35    Post subject: lnk (ярлык) с относительными путями Reply with quote

Задача.
Создать ярлык на папку в пределах жесткого диска.
Ярлык должен лежать в одной папке, указывать на другую и не иметь жесткую привязку к диску (т.е. пути должны быть относительные)

Целеполагание.
Проще всего объяснить на примере музыкальной коллекции.
Есть собрание оцифрованной музыки в одной папке. Куча альбомов, разделённые в свою очередь по разделам.
К некоторым альбомам прилагается видео-контент. Это не удобно когда открываешь в плеере (видео добавляется в плейлист тоже).
Поэтому всё видео перемещается в отдельную от музыки папку.
И вот как раз для того, что бы концептуально связать альбом и прилагающийся к нему видеоряд, требуется создать ярлык в альбоме на папку с видео.

Относительность путей требуется на случай, если вся коллекция музыки будет перемещена (другое место, другой компьютер), переделывать все ссылки это по крайней мере бесчеловечно. Поэтому фактор принципиальный.

Было бы очень замечательно, если бы создание ярлыка обходилось без скриптов по возможности, средствами Total Commander + плагин (по необходимости)
Было бы вовсе замечательно, если бы ярлык работал на любой файловой системе (win, lin, mac)

Алгоритм.
Code:
 стартовый каталог
C:\музыка\исполнитель\альбом\ссылка.lnk
 целевой каталог
C:\видео\альбом\


Трудности.
Создавая обычный ярлык, с последующим редактированием путей (заменой их на относительные), ярлык перестаёт работать.
Может быть я не правильно задаю относительный путь.

P.s.
Тему
Массовое создание ярлыков LNK с относительными путями
видел. Но ничего не понял в ней, ни о чём шла речь меж просвещённых мужей, ни плоды их соискательств.
Думаю моя постановка вопроса несколько проще, потому как групповых операций я не преследую.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Jun 17, 2014 10:06    Post subject: Reply with quote

Ярлык как LNK-файл - штука весьма капризная. Где-то предлагалась утилита для создания ярлыков с относительными путями, можно попробовать её. Кроме того, это исключительно виндовская штука, другие оси понятия о ней не имеют, на других платформах ярлыки если и есть, то в своих особенных форматах, поэтому о кроссплатформенности тут речи быть не может.

Не уточнено, что планируется с ярлыком делать. Переходить к папке по Enter? Открывать в другой панели по Ctrl+Влево/Вправо?

В рамках тотала роль такого ярлыка может играть и голый текстовый файл, содержащий относительный путь, при этом переход к папке может осуществляться по хоткею, запускающему утилитку или батник для перехода к указанной в файле папке.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Tue Jun 17, 2014 10:17    Post subject: Reply with quote

MVV wrote:
Не уточнено, что планируется с ярлыком делать. Переходить к папке по Enter? Открывать в другой панели по Ctrl+Влево/Вправо?

Переходить к папке по Энтер (открываться должна в панели тотала есессно, а не в проводнике)
MVV wrote:
В рамках тотала роль такого ярлыка может играть и голый текстовый файл, содержащий относительный путь

Интересно!
MVV wrote:
при этом переход к папке может осуществляться по хоткею, запускающему утилитку или батник для перехода к указанной в файле папке.

Если можно подробнее.
Вообще идеальный вариант не хоткей, а именно переход к папке по энтеру, с возможностью открыть в соседней панели по Ctrl+Влево/Вправо.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Jun 17, 2014 10:33    Post subject: Reply with quote

По Ctrl+Влево/Вправо с текстовым файлом не получится, тотал их обрабатывает только для папок и ярлыков папок. А батник, открывающий папку из текстового файла, может иметь следующий вид:
Code:
@echo off
if -%1==- echo Parameters: %%P%%N & pause & goto :EOF
for /f "usebackq delims=" %%t in (`type 1.txt`) do set relpath=%%t
if "%relpath:~1,1%" == ":" (
   set fullpath=%relpath%
) else if "%relpath:~0,1%" == "\" (
   set fullpath=%~d1%relpath%
) else (
   set fullpath=%~dp1%relpath%
)
%COMMANDER_EXE% /O /S /T /L=%fullpath%

Поддерживает полные и относительные пути, записанные в текстовом файле. В параметрах файла необходимо указать %P%N. В текущем варианте открывает папку в новой вкладке активной панели. Если заменить /L на /R, будет в неактивной, если убрать /T - будет без создания новой вкладки. Для назначения хоткея нужно сделать юзер-команду и задать ей хоткей на странице Разное настроек тотала.

Чтобы работало по Enter, текстовый файл нужно заменить батником вида:
Code:
@echo off
set relpath=..\music\albums\aaa
%COMMANDER_EXE% /O /S /T /L=%~dp0%relpath%


Можно вместо запуска экзешника самого тотала использовать, например, TCFS2, чтобы посылать ту же команду запущенному тоталу, должно работать быстрее, т.к. на загрузку экзешника в память будет уходить меньше времени.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…


Last edited by MVV on Tue Jun 17, 2014 10:39; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Jun 17, 2014 10:38    Post subject: Reply with quote

MVV
Странно, что ты не предложил симлинки с относительными путями.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Jun 17, 2014 10:40    Post subject: Reply with quote

Flasher,
Симлинки очень неудобно переносить с места на место, они не работают в системах до висты, для их создания нужны права администратора, да и к папке по ним не перейдёшь.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Jun 17, 2014 11:15    Post subject: Reply with quote

MVV wrote:
Симлинки очень неудобно переносить с места на место
Если относительные пути не менялись, то всё удобно.
MVV wrote:
да и к папке по ним не перейдёшь
Это чего вдруг? Всегда переходили, а тут - нет. Smile
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Tue Jun 17, 2014 11:35    Post subject: Reply with quote

Flasher wrote:
Если относительные пути не менялись, то всё удобно.

Ты много способов копирования структуры каталогов с сохранением симлинков знаешь?

Flasher wrote:
Это чего вдруг? Всегда переходили, а тут - нет. Smile

Я имею в виду по Ctrl+Влево/Вправо. В симлинк можно зайти и увидеть содержимое папки, но к самой папке перейти нельзя.

Батник же легко скопировать, Enter откроет папку, плюс можно по хоткею прописать другой батник, который из этого прочтёт строку relpath= и откроет папку в другой панели.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6151
Location: Москва

Post (Separately) Posted: Tue Jun 17, 2014 13:59    Post subject: Reply with quote

MVV wrote:
В симлинк можно зайти и увидеть содержимое папки, но к самой папке перейти нельзя.

Можно воспользоваться трюком: выставить ей полный запрет на переход, тогда Тотал будет её резолвить и переходить в целевой каталог. Это было сделано как обходной путь для стандартных вистовских ссылок, у некоторых из которых такие странные ограничения прав.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Jun 17, 2014 14:29    Post subject: Reply with quote

MVV wrote:
Ты много способов копирования структуры каталогов с сохранением симлинков знаешь?
А надо ли много? Smile
MVV wrote:
В симлинк можно зайти и увидеть содержимое папки, но к самой папке перейти нельзя
Так же как и к обычной папке.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group