Powershell $ MyInvocation.MyCommand.Path возвращает ноль при преобразовании скрипта в exe - PullRequest
0 голосов
/ 03 ноября 2018

Я создал свой скрипт ps1 и для динамического получения пути я использовал эту команду

$ScriptPath = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

Все работает нормально, когда я использую консоль ISE, но когда я пытаюсь преобразовать свой скрипт ps1 в exe с помощью ps2exe, я получаю сообщение об ошибке, когда выполняю свой exe-файл, потому что $ ScriptPath возвращает нулевое значение.
Я пробовал таким образом, но безуспешно

$ScriptPath = Split-Path -Parent $PSCommandPath

Я бы хотел, чтобы скрипт был совместим с версией 2.
Как я мог решить это?
Спасибо

1 Ответ

0 голосов
/ 03 ноября 2018

Вы можете получить путь с помощью следующего скрипта:

if ($MyInvocation.MyCommand.CommandType -eq "ExternalScript")
{ 
   $ScriptPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition 
}
else
{ 
   $ScriptPath = Split-Path -Parent -Path ([Environment]::GetCommandLineArgs()[0]) 
   if (!$ScriptPath){ $ScriptPath = "." } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...