Я использовал метод с классом и без него, и, похоже, ошибка записи дает разные результаты. В случае класса, он не определяет функцию , а номер строки всегда 1,1
function oper1() {
Try {
[string] $cmd = ".\some_exe_which_does_not_exist.exe"
iex $cmd
}
Catch {
Write-Error $_.Exception.Message
}
}
oper1
Вывод для выше:
oper1 : термин '. \ Some_exe_which_does_not_exist.exe' не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку. В F: \ debug \ encryption_concat_tests \ Untitled1.ps1: 11 char: 1 + oper1 + ~~~~~ + CategoryInfo: NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId: Microsoft.PowerShell.Commands.WriteErrorException, oper1
Когда я вложил одну и ту же функцию в класс, я получил это:
class Operator {
[void] oper1() {
Try {
[string] $cmd = ".\some_exe_which_does_not_exist.exe"
iex $cmd
}
Catch {
Write-Error $_.Exception.Message
}
}
}
[Operator] $operator = New-Object Operator
$operator.oper1()
Термин «. \ some_exe_which_does_not_exist.exe» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку. В строке: 1 символ: 1 + F: \ debug \ encryption_concat_tests \ Untitled1.ps1 + ~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [Write-Error], WriteErrorException + FullyQualifiedErrorId: Microsoft.PowerShell.Commands.WriteErrorException
В чем может быть причина такого поведения методов внутри классов?