Можно ли сделать ярлык для относительного пути в Windows, который работает как администратор?

чтобы создать ярлык с относительным путем, установите цель следующим образом.

%windir%system32cmd.exe /c start your_relpathapp.exe [your_args]

это также просто сделать программу работать от имени администратора.

Properties > Advanced > Run as administrator

но два вместе не работают. Когда cmd.exe запускается как admin, он теряет текущий рабочий каталог и переходит в %windir%system32. Здесь начинается относительный путь, который не предназначен.

есть ли способ сделать ярлык, что это и относительная и работать как администратор?

3 ответов


Я не нашел простой способ, но это нормально. Я был обеспокоен тем, что ярлыки с абсолютными путями будут разрываться между компьютерами. Я не знал, что Windows автоматически исправляет их. Это кажется достаточным, хотя относительные пути были бы более элегантными.

хотя ярлыки при создании указывают на определенные файлы или папки, они могут сломаться, если цель перемещена в другое место. Microsoft Windows имеет стандартные алгоритмы для исправления ярлыков, когда они перемещаются. Windows 9x - версии Windows используют простой алгоритм поиска для исправления сломанных ярлыков.[1] в операционных системах под управлением Windows NT и файловой системе NTFS уникальный идентификатор целевого объекта хранится в файле ярлыков, и Windows может использовать службу отслеживания распределенных ссылок для отслеживания целей ярлыков, так что ярлык может быть автоматически обновлен, если цель перемещается на другой жесткий диск водить.[4]

http://en.wikipedia.org/wiki/File_shortcut#Microsoft_Windows


для переносимого ярлыка, который работает с относительным путем, используйте следующее:

просто поместите это в "цель" свойств ярлыка:

%COMSPEC% /C "start GoogleChromePortable.exe -enableextensions -incognito"

ожидаемое поведение: Краткое окно CMD появится и закроется непосредственно перед запуском chrome.

Примечание: параметр "Start in:" можно оставить пустым. Также обратите внимание ,что.exe находится в той же папке, что и ярлык, но переместите папку, и ярлык работает нормально.

Это подтверждено для работы в Win10 1607.

кредит: какое-то другое сообщение на stackoverflow некоторое время назад.


попробуй:

%windir%\system32\cmd.exe /c "cd your_relpath && start \app.exe [your_args]"

сначала изменяется относительный путь, затем запускается приложение. The && является разделителем команд.

кроме того, мне пришлось оставить "Start In" пустым.

Примечание: Я не получил эту работу полностью, мое приложение начнется, но сбой. Так что, возможно, я все еще что-то упускаю.

источник