Изменить местоположение на ярлык - PullRequest
0 голосов
/ 04 марта 2019

Я запускаю скрипт с ярлыком powershell (C: \ Windows .... \ powershell.exe -file 'D: \ powershell \ script.ps1').

Есть ли способ заставить скрипт изменить свое текущее местоположение на местоположение указанного ярлыка?

Пример: сам скрипт находится в D: \ powershell \, а ярлык - в C: \ Work \ Project1.Мне нужен сценарий для перехода на "C: \ Work \ Project1 \".

Спасибо

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Вы можете использовать свойство TargetPath ярлыка (возможно, сделайте get-childitem $ psscriptroot, где имя похоже на имя сценария, а расширение похоже на .lnk) с командлетом set-location

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/set-location?view=powershell-6

0 голосов
/ 04 марта 2019

Вы можете создать ярлык, который запускается в любом каталоге, в котором он находится. Все, что вам нужно сделать, - это изменить свойство ярлыка «Запуск в» и очистить его.Вот так.Установите его в ничего.

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

0 голосов
/ 04 марта 2019

Полезный ответ Уолтера Митти предоставляет эффективное решение, при условии, что файл ярлыка открывается из рабочего стола или Проводника .

Этот ответ содержит справочную информацию .


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

Следовательно, для необходимо настроить определенный рабочий каталог (например, C:\Work\Project1), укажите его в диалоговом окне «Свойства» файла ярлыка в поле Start in:.

Если вы хотите обновить рабочий каталог файла ярлыка (*.lnk) программным способом , используйте методикуиз этот ответ со свойством .WorkingDirectory.

Примечание. В обоих случаях в качестве рабочего каталога можно настроить только абсолютный путь : File Explorer позволяет только ввестиbsolute path в любом случае, и хотя программный метод позволяет назначить относительный путь, он мгновенно разрешается до абсолютного относительно местоположения ярлыка.

Чтобы сделать ярлык собственного каталога рабочим каталогом , вы можете очистить свойство Start in: field / .WorkingDirectory, но учтите ограничения :

  • Работает только только когда такой ярлык либо открывается из рабочего стола или из файлаExplorer .

  • В отличие от этого, открыв его из панели задач или (только до Windows 10) Меню Пуск , рабочий каталог $env:windir\System32 (обычно C:\Windows\System32).


Если ярлык предназначен для приложения (а не документа), как в этом случае,что приложение , вызываемое ярлыком, включая cmd.exe и powershell.exe, запускается в настроенном / подразумеваемом рабочем каталоге.

Предупреждение cmd.exe: если рабочий каталог указан как UNC-путь , cmd.exe не сможет изменить его накаталог;в качестве обходного пути используйте вместо этого путь с подключенным диском (но, очевидно, этот диск должен быть сопоставлен в момент открытия ярлыка).

...