Split-Path: Невозможно привязать аргумент к параметру «Path», поскольку в конструкторе он пуст - PullRequest
0 голосов
/ 11 сентября 2018

В данный момент я пытаюсь овладеть классами в PowerShell.Я пытаюсь запустить следующий код:

class myClass{
    [String] $path

    myClass(){
        $this.path = Split-Path -Parent $MyInvocation.MyCommand.Definition
    }
}

$a = [myClass]::new()
#$a.tokenpath
#Split-Path -Parent $MyInvocation.MyCommand.Definition

Но я получаю следующую ошибку:

Split-Path : Cannot bind argument to parameter 'Path' because it is null.

Я не получаю ошибку, если я запускаю ту же строку кода за пределамикласс.Кто-нибудь знает, почему это так?

1 Ответ

0 голосов
/ 11 сентября 2018

$MyInvocation.MyCommand, похоже, не работает внутри классов.Однако $psscriptroot работает и работает так же, как Split-Path -Parent $MyInvocation.MyCommand.Definition

обновленный код:

class myClass{
    [String] $path

    myClass(){
        $this.path = $PSScriptRoot
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...