Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Относительный путь в ярлыке. Возможно?

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Igor99999

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Делаю ярлык на папку или файл в корневой директории, кладу ярлык в корень.
Возможно в свойствах ярлыка поменять абсолютный путь на относительный, чтобы ярлык остался рабочим при изменении местоположения всей корневой директории?
То есть в свойствах ярлыка не будет указан путь вида: диск/папка/папка/файл, а будет: /папка/файл с какими-то символами. Какими?
 
Добавлено:
Вышел из положения так:
Создал в Переменные среды новую переменную с указанием пути диск/папка/
Теперь в ярлыке %переменная%/папка/файл. Все работает!
 
1. Может есть вариант выхода из положения без создания переменной?
2. Как сделать чтобы при создания ярлыка подставлялась созданная переменная. А то приходится вручную менять?

Всего записей: 41 | Зарегистр. 22-09-2004 | Отправлено: 18:46 14-05-2007
veryom



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igor99999
 

Цитата:
Как сделать чтобы при создания ярлыка подставлялась созданная переменная. А то приходится вручную менять?
Напиши скрипт.


----------
Как обойти административные ограничения

Всего записей: 1242 | Зарегистр. 24-03-2006 | Отправлено: 22:40 15-05-2007
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подниму старую тему. У меня такая же проблема возникла, но решение, предложенное Igor99999, не подходит, так как ярлык и папка находятся на флешке и будут запускаться на разных (чужих!) компах.
На флешке находится файл \editors\plaintxt\Akelpad.exe, и надо в корень этой же флешки поместить ярлык на этот файл. Если у меня эта флешка сейчас подкдключена под именем D: , и я пропишу в свойствах ярлыка путь D:\editors\plaintxt\Akelpad.exe, а в следующий раз эта флешка подключится как E:, то ярлык, естественно, не найдет своего файла и выдаст ошибку.
 
А как написать скрипт (наверное, VBS имеется в виду)? Я от программирования человек, ну, очень далёкий (или, точнее оно от меня  Вот если бы кто на пальцах объяснил
 
Кстати, батник понимает относительные пути. Но в данном случае нужен именно ярлык Windows.

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 15:43 10-09-2012
Alleras

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Делаю ярлык на папку или файл в корневой директории, кладу ярлык в корень.  
 Возможно в свойствах ярлыка поменять абсолютный путь на относительный, чтобы ярлык остался рабочим при изменении местоположения всей корневой директории?  
 То есть в свойствах ярлыка не будет указан путь вида: диск/папка/папка/файл, а будет: /папка/файл с какими-то символами. Какими?

 

Цитата:
На флешке находится файл \editors\plaintxt\Akelpad.exe, и надо в корень этой же флешки поместить ярлык на этот файл. Если у меня эта флешка сейчас подкдключена под именем D: , и я пропишу в свойствах ярлыка путь D:\editors\plaintxt\Akelpad.exe, а в следующий раз эта флешка подключится как E:, то ярлык, естественно, не найдет своего файла и выдаст ошибку.

 
Возможно. Откройте ярлык в Hex-эдиторе, посмотрите как сделан путь, и замените абсолютный путь на относительный, начиная с ./
./папка/файл - если ярлык расположен в корне съемного диска.
 
 

Всего записей: 161 | Зарегистр. 18-01-2012 | Отправлено: 15:52 10-09-2012
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Кстати, батник понимает относительные пути. Но в данном случае нужен именно ярлык Windows.

А батник в ярлыке пойдет

Код:
%comspec% /c cd /d "\editors\plaintxt\"&& start "" Akelpad.exe

в рабочей папке ничего.
 
В Windows XP и так работает:

Код:
%windir%\system32\RunDll32.exe shell32.dll,ShellExec_RunDLL ".\editors\plaintxt\Akelpad.exe"

В семерке нет, что-то изменили... кто нашел чиркните.
 
Добавлено:
или

Код:
%windir%\explorer.exe ".\editors\plaintxt\Akelpad.exe"

Всего записей: 11054 | Зарегистр. 12-10-2001 | Отправлено: 10:27 11-09-2012
oshizelly



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KLASS 09:27 11-09-2012
Цитата:
А батник в ярлыке пойдет

Код:
%comspec% /c cd /d "\editors\plaintxt\"&& start "" Akelpad.exe

В Windows XP и так работает:  

Код:
%windir%\system32\RunDll32.exe shell32.dll,ShellExec_RunDLL ".\editors\plaintxt\Akelpad.exe"

Прошу извинить за тупость, не уверен, что правильно понял Эти две строки - она взаимозаменяемы в пределах Windows XP? А для Windows 7 годится только первый вариант? Так?

Всего записей: 6524 | Зарегистр. 18-09-2004 | Отправлено: 21:25 11-09-2012 | Исправлено: oshizelly, 21:38 11-09-2012
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XP щас нет под рукой, но вы сами проверьте что да как. А для 7 не работает

Код:
%windir%\system32\RunDll32.exe shell32.dll,ShellExec_RunDLL ".\editors\plaintxt\Akelpad.exe"
остальное работает.

Всего записей: 11054 | Зарегистр. 12-10-2001 | Отправлено: 08:26 13-09-2012
evgmim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
Добавлено:
или

Код:
%windir%\explorer.exe ".\editors\plaintxt\Akelpad.exe"

 

Не сочтите за некропостинг, но возник вопрос. Можно ли в этом методе передавать параметры запуска программы?
Т.е. есть запуск программы, он работает:

Код:
 
%windir%\explorer.exe ".\TOTALCMD.EXE"
 

Однако как передать параметры запуска программы TOTALCMD?

Код:
 
/i=".\USERS\DEFAULT\wincmd.ini" /f=".\USERS\DEFAULT\ftp.ini"
 

 
P.S. Через bat файл не хочу делать, поскольку ненадолго на экране появляется окно командной строки.

Всего записей: 96 | Зарегистр. 16-09-2008 | Отправлено: 13:47 10-05-2017
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
запускайте bat в сыёрнутом виде через ярлык

----------
Мы все умрём. (-:

Всего записей: 4878 | Зарегистр. 23-04-2009 | Отправлено: 16:16 10-05-2017
boi1eI

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня так:
Код:
%PA%\hidcon.exe cmd /c start /b OTConvertIt.exe
start in: %PA%\Registry

Иконку тоже можно через переменную.
 
Добавлено:
TOTALCMD.EXE /i="USERS\DEFAULT\wincmd.ini" /f="USERS\DEFAULT\ftp.ini"
Через ком строку имеет смысл запускать, если строка запуска больше 255 символов, или нужно запустить /detach from explorer, или с параметрами (приоритет и т.д.)

Всего записей: 1645 | Зарегистр. 02-10-2014 | Отправлено: 16:47 10-05-2017 | Исправлено: boi1eI, 17:04 10-05-2017
evgmim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
запускайте bat в сыёрнутом виде через ярлык

Жуткий изврат, конечно, но работает. Спасибо!
---
boi1eI
Ваше сообщение я не понял... Вероятно используются какие-то сторонние приложения?

Всего записей: 96 | Зарегистр. 16-09-2008 | Отправлено: 17:27 10-05-2017
boi1eI

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evgmim
Цитата:
Вероятно используются какие-то сторонние приложения?
Окно консоли скрывает. Есть такое (опции - запустить без параметров).

Всего записей: 1645 | Зарегистр. 02-10-2014 | Отправлено: 17:31 10-05-2017 | Исправлено: boi1eI, 17:35 10-05-2017
evgmim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
запускайте bat в сыёрнутом виде через ярлык

Но созданный ярлык в этом случаи получается с абсолютными путями, относительные приводят к тому, что запуск происходит из windir.
 
---
 
boi1eI
Что-то я делаю не так. Если не указать в bat параметр hide у "runwait" получается аж 2 окна консоли. Иначе всё равно одно есть.

Всего записей: 96 | Зарегистр. 16-09-2008 | Отправлено: 18:09 10-05-2017
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
запуск происходит из windir

это легко поправить в коде bat

----------
Мы все умрём. (-:

Всего записей: 4878 | Зарегистр. 23-04-2009 | Отправлено: 18:57 10-05-2017
evgmim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Каким образом?..

Всего записей: 96 | Зарегистр. 16-09-2008 | Отправлено: 19:30 10-05-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Переделал, вроде как работает через %comspec% в ярлыке без указания рабочей папки, а окно поставить "Свернутое в значок"

Код:
%comspec% /c cd /d "\TC\"&& start "" Totalcmd64.exe /i=..\USERS\DEFAULT\wincmd.ini /f=..\USERS\DEFAULT\ftp.ini


Блин на диск C файлы конфига сохранил... надо еще поиграться

Всего записей: 11054 | Зарегистр. 12-10-2001 | Отправлено: 04:25 11-05-2017 | Исправлено: KLASS, 05:27 11-05-2017
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тогда уже так должно быть
%comspec% /c cd /d TC && for %d in (%ALLUSERSPROFILE%\) do start "" TOTALCMD.EXE /i=%dwincmd.ini /f=%dftp.ini

----------
Мы все умрём. (-:

Всего записей: 4878 | Зарегистр. 23-04-2009 | Отправлено: 09:04 11-05-2017
boi1eI

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evgmim
Цитата:
Что-то я делаю не так.
Выкладывайте, посмотрим.

Цитата:
Если не указать в bat параметр hide у "runwait" получается аж 2 окна консоли. Иначе всё равно одно есть.
А вот и ответ. )

Всего записей: 1645 | Зарегистр. 02-10-2014 | Отправлено: 09:51 11-05-2017
evgmim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так ладно. Давайте с самого начала.
 
Задача: Создать файл, который бы запускал программу с параметрами, используя относительные пути. Программа может располагаться на любом диске, в любой папке и т.п. Поэтому нужны ОТНОСИТЕЛЬНЫЕ пути.
Для конкретики: программа TOTALCMD.EXE, располагается в папке с файлом.
Параметры командной строки: /i="USERS\DEFAULT\wincmd.ini" /f="USERS\DEFAULT\ftp.ini" для запуска настроек по адресам .\USERS\DEFAULT\wincmd.ini и .\USERS\DEFAULT\ftp.ini
 
В WinXP был трюк shell32.dll, который не работает в Win7x64+
 
В теме было предложено изначально два варианта.
1.    Через %windir%\explorer.exe – не понимаю, как передать параметры для запуска TOTALCMD.EXE.
2.    Через bat-file (%comspec% /c cd /d "" start). Здесь можно передать параметры, но проблема в том, что мне не нравится окно с командной строкой, которое появляется на секунду.
 
Предложенные модификации после моего сообщения.
1.    Запуск bat файла через ярлык, с параметром «в свёрнутое в значок». Просто так это не сделаешь, поскольку по-умолчаню ярлык создает АБСОЛЮТНЫЕ пути, а запуск через %windir%\explorer.exe что «TOTALCMD.EXE» не найден, поскольку адресация идет относительно %windir% если я правельно понимаю.
2.    Вызов не командной строки, а runwait. Через bat-файл

Код:
 
@echo off
runwait.exe /hide cmd /c start /b TOTALCMD.EXE /i=".\USERS\DEFAULT\settings.ini" /f=".\USERS\DEFAULT\internet.ini"
 

Окно при запуске bat файла всё равно появляется.
(Если запускать через ярлык, то найти runwait.exe не получится, потому как запуск опять из %windir%)
3.
Код:
 
%comspec% /c cd /d TC && for %d in (%ALLUSERSPROFILE%\) do start "" TOTALCMD.EXE /i=%dwincmd.ini /f=%dftp.ini
 

Явно не позволяет запустить из любой папки/диска...

Всего записей: 96 | Зарегистр. 16-09-2008 | Отправлено: 13:50 11-05-2017
KLASS



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evgmim
Хранение файлов конфигурации вне папки тотала является обязательным условием?

Всего записей: 11054 | Зарегистр. 12-10-2001 | Отправлено: 14:43 11-05-2017
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Относительный путь в ярлыке. Возможно?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru