MyInvocation.MyCommand.Path в ISE против обычного PS - PullRequest
0 голосов
/ 04 января 2019

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

$spath = $script:MyInvocation.MyCommand.Path
$FilePathWithQuotes = '"{0}"' -f $spath 
powershell -file $FilePathWithQuotes -NestedCall @ExtraArgs

, но если оно запускается через ISE, я получаю эту ошибку.

powershell: Add-Type: Невозможно привязать параметр 'Path' к цели.Параметр исключения «Путь»: «Не удается найти путь в D: \ Deploy \ File Deploy.ps1: 39 char: 5 + powershell -file $ FilePathWithQuotes -NestedCall @ExtraArgs + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CategoryInfo: NotSpecified:(Add-Type: Cann ... nnot find path: String) [], RemoteException + FullyQualifiedErrorId: NativeCommandError

Я добавил вторую строку, чтобы убедиться, что пробелы не являются проблемой, но это все ещене получается в ISE. Мысли? Я на PS 5.1

1 Ответ

0 голосов
/ 04 января 2019

Да, проверьте $PSISE и используйте его, если это возможно.

$spath = If($PSISE){$psISE.CurrentFile.FullPath}else{$script:MyInvocation.MyCommand.Path}
$FilePathWithQuotes = '"{0}"' -f $spath 
powershell -file $FilePathWithQuotes -NestedCall @ExtraArgs
...