У меня один и тот же файл profile.ps1 в WindowsPowerShell и PowerShell. Он включает команды, которые вызывают Windows Text-To-Speech. Однако эти команды не выполняются при запуске в PowerShell 7.
Ошибки возникают, когда я пытаюсь использовать объект $ PomrptTTS, который я создаю со следующим кодом:
Add-Type -AssemblyName System.speech
$PromptTTS = New-Object System.Speech.Synthesis.SpeechSynthesizer
В PowerShell 7 любая попытка доступа или использования моего объекта $ PormptTTS приводит к следующему:
SetValueInvocationException: ....\profile.ps1:82
Line |
82 | $PromptTTS.Rate = 0 ; $PromptTTS.Speak("Time for the $((Get-Date).DayofWeek) shuffle")
| ~~~~~~~~~~~~~~~~~~~
| Exception setting "Rate": "Object reference not set to an instance of an object."
MethodInvocationException: ....\profile.ps1:82
Line |
82 | … e = 0 ; $PromptTTS.Speak("Time for the $((Get-Date).DayofWeek) shuffle")
| ~~~~~~~~~~~~~~~~~~~~
| Exception calling "Speak" with "1" argument(s): "Object reference not set to an instance of an object."