Я запускаю задание PowerShell с помощью следующей команды:
start-job -filename my_script.ps1 -argumentlist ($v1, $v2, $v3)
Этот скрипт, однако, должен знать, где он находится, потому что он запускает другие команды, основываясь на их расположении относительно него. При запуске непосредственно из командной строки такие конструкции работают так:
join-path (split-path (& { $myinvocation.scriptname })) "relative path\filename"
join-path (split-path $myinvocation.mycommand.definition) "relative path\filename"
Это не работает вообще, когда запускается как работа, как в первом примере, однако. Как я могу определить, откуда я бегу, когда я начинаю работать?