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 при запуске скрипта? Или как надежно остановить его в конце? Спасибо

612   4  

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}
try { 
     Start-Transcript -path $myOutLog

} catch { 

       stop-transcript

       Start-Transcript -path $myOutLog 
} 

Comments

    Ничего не найдено.