Рассмотрим, например,
Код: Выделить всё
$job =
Start-ThreadJob {
1/0 # error line
}
$job | Wait-Job | Out-Null
$job | Receive-Job
< /code>
, который выводит < /p>
RuntimeException:
Line |
2 | 1/0 # error line
| ~~~
| Attempted to divide by zero.
< /code>
Обратите внимание, что оригинальная линия ошибок отображается. Вывод номера строки неверен (что является совсем другим вопросом), но, по крайней мере, оспариваемый код, показанный в сообщении по позиции, является правильным. < /P>
Я также хотел бы написать ошибки из задания потока Из моего собственного скомпилированного cmdlet Код: Выделить всё
Add-Type @'
using System.Management.Automation;
[Cmdlet(VerbsCommunications.Receive,"JobFancy")]
public class ReceiveJobFancy : PSCmdlet {
[Parameter(Mandatory = true,ValueFromPipeline = true)]
public Job Job {get; set;}
protected override void ProcessRecord() {
foreach (var e in Job.Error) WriteError(e);
}
}
'@ -PassThru |
% Assembly |
Import-Module
$job =
Start-ThreadJob {
1/0 # error line
}
$job | Wait-Job | Out-Null
$job | Receive-JobFancy
< /code>
Выходы < /p>
Line |
22 | $job | Receive-JobFancy
| ~~~~~~~~~~~~~~~~
| Attempted to divide by zero.
Как я могу написать ошибку с задания, чтобы показать оригинал Положение сообщений, например, получение Job ?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ut-burying
Мобильная версия