powershell-как проверить, работает ли transcript?
Я получаю это сообщение каждый раз, когда мой сценарий не заканчивается должным образом и stop-transcript не выполняется:
Start-Transcript : Transcription has already been started. Use the stop-transcr
ipt command to stop transcription.
At C:ps03desifrovanie.ps1:4 char:17
+ start-transcript <<<< -path c:_LOGsfrbdesifrovanie.log -append
+ CategoryInfo : NotSpecified: (:) [Start-Transcript], InvalidOpe
rationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Power
Shell.Commands.StartTranscriptCommand
Можно ли проверить, работает ли транскрипт, и остановить его с помощью if-then при запуске скрипта? Или как надежно остановить его в конце? Спасибо
4 ответов:
Как насчет пустого блока
try-catchв начале вашего сценария powershell, чтобы остановить транскрибирование?try{ stop-transcript|out-null } catch [System.InvalidOperationException]{}
Разве что-то вроде этого не сработает?
try { Start-Transcript # Do my stuff } finally { Stop-Transcript }Из документации: Блок finally операторы выполняются независимо от того, в блоке try возникает неустранимая ошибка. Windows PowerShell запускает блок Finally до завершения работы скрипта или до выхода текущего блока из области видимости. Блок Finally работает, даже если вы используете CTRL+с чтобы остановить сценарий. Блок Finally также запускается, если ключевое слово Exit останавливает сценарий из блока Catch.
Попробуйте воспользоваться функцией транскрибирования тестов, доступной здесь: http://poshcode.org/1500
if(Test-Transcribing) {Stop-Transcript}
Comments