14

スクリプトが正しく終了せず、stop-transcriptが実行されないたびに、このメッセージが表示されます。

Start-Transcript : Transcription has already been started. Use the stop-transcr
ipt command to stop transcription.
At C:\ps\003desifrovanie.ps1:4 char:17
+ start-transcript <<<<  -path c:\_LOG\sfrbdesifrovanie.log -append
+ CategoryInfo          : NotSpecified: (:) [Start-Transcript], InvalidOpe
rationException
+ FullyQualifiedErrorId : System.InvalidOperationException,Microsoft.Power
Shell.Commands.StartTranscriptCommand

トランスクリプトが実行されているかどうかを確認し、スクリプトの開始時にif-thenで停止することはできますか?または、最後に確実に停止する方法は?ありがとうございました

4

5 に答える 5

15

try-catch転記を停止するためのPowerShellスクリプトの先頭にある空のブロックはどうですか?

try{
  stop-transcript|out-null
}
catch [System.InvalidOperationException]{}
于 2012-04-16T08:02:05.140 に答える
10

このようなものはうまくいきませんか?

try
{
    Start-Transcript
    # Do my stuff
}

finally
{
    Stop-Transcript
}

ドキュメントから:Finallyブロックステートメントは、Tryブロックで終了エラーが発生したかどうかに関係なく実行されます。Windows PowerShellは、スクリプトが終了する前、または現在のブロックがスコープ外になる前に、Finallyブロックを実行します。CTRL+Cを使用してスクリプトを停止しても、Finallyブロックが実行されます。ExitキーワードがCatchブロック内からスクリプトを停止した場合も、Finallyブロックが実行されます。

于 2012-04-16T08:10:10.537 に答える
2

ここで利用可能なテスト転写機能を試してください:http://poshcode.org/1500

 if(Test-Transcribing) {Stop-Transcript}
于 2012-04-16T08:05:22.953 に答える
1
try { 
     Start-Transcript -path $myOutLog

} catch { 

       stop-transcript

       Start-Transcript -path $myOutLog 
} 
于 2014-12-01T18:11:45.913 に答える
-1
$erroractionpreference="Silentlycontinue"
start-transcript c:\file.txt
$transcriptrunning=$?
$erroractionpreference="Continue"
if($transcriptrunning) {stop-transcript}
于 2020-02-12T17:58:59.537 に答える