[FAQ CENTER トップ]
[Powershell FAQ トップへ]



【Powershell】PowerShell の実行結果をファイルに記録する



更新日:2022/03/13


実行結果をログファイルに出力する


Powershell の実行結果をファイルに出力するコマンドを紹介します。

基本構文は以下の通りです。

Start-Transcript <出力ファイル名>

<処理内容、write-host "test"など>

Stop-Transcript



コマンドの実行結果以外にも以下のような情報が出力されます。主にデバッグとして使用してください。
以下は出力の例です。


**********************
Windows PowerShell トランスクリプト開始
開始時刻: 20190314213033
ユーザー名: PCNAME\<ユーザ名>
RunAs ユーザー: PCNAME\<ユーザ名>
構成名:
コンピューター: PCNAME (Microsoft Windows NT 10.0.17134.0)
ホスト アプリケーション: powershell -ExecutionPolicy ByPass -File <PS1へのパス>
プロセス ID: 15212
PSVersion: 5.1.17134.407
PSEdition: Desktop
PSCompatibleVersions: 1.0, 2.0, 3.0, 4.0, 5.0, 5.1.17134.407
BuildVersion: 10.0.17134.407
CLRVersion: 4.0.30319.42000
WSManStackVersion: 3.0
PSRemotingProtocolVersion: 2.3
SerializationVersion: 1.1.0.1
**********************
トランスクリプトが開始されました。出力ファイル: c:\temp\PowershellCommandOutput.txt
test
**********************
Windows PowerShell トランスクリプト終了
終了時刻: 20190314213033
**********************





デフォルトでは以下に出力されます。別途ファイルを出力することも可能です。

C:\Users\username\Documents\PowerShell_transcript.PCNAME.<中略>.YYYYMMDDmmhhss.txt


サンプルコード集

以下は Windows 10 環境におけるサンプルコードと実行結果です。


以下は write-host "test" の実行結果、及び環境が記録されます。出力ファイルはデフォルトです。

サンプルコード:


Start-Transcript

write-host "test"

Stop-Transcript


実行結果:

トランスクリプトが開始されました。出力ファイル: C:\Users\username\Documents\PowerShell_transcript.<中略>.20190314212231.txt
トランスクリプトが停止されました。出力ファイル: C:\Users\username\Documents\PowerShell_transcript.PCNAME.<中略>.20190314212231.txt






以下はデフォルトではなく指定したファイルに出力しています。既存のファイルがある場合は上書きされます。

サンプルコード:


Start-Transcript c:\temp\PowershellCommandOutput.txt

write-host "test"

Stop-Transcript


実行結果:

トランスクリプトが開始されました。出力ファイル: c:\temp\PowershellCommandOutput.txt
test
トランスクリプトが停止されました。出力ファイル: C:\temp\PowershellCommandOutput.txt




以下は既存のファイルに追記しています。


サンプルコード:


Start-Transcript -append c:\temp\PowershellCommandOutput.txt

write-host "test"

Stop-Transcript


実行結果:

トランスクリプトが開始されました。出力ファイル: c:\temp\PowershellCommandOutput.txt
test
トランスクリプトが停止されました。出力ファイル: C:\temp\PowershellCommandOutput.txt




指定したファイルに出力できない場合は以下のようなエラーが出力されます。(以下の例では H ドライブが存在しないため)

サンプルコード:

Start-Transcript h:\test.txt


実行結果:

Start-Transcript : トランスクリプションを開始できません。
発生場所 C:\temp\code.ps1:1 文字:1
+ Start-Transcript h:\test.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Start-Transcript]、PSInvalidOperationException
+ FullyQualifiedErrorId : CannotStartTranscription,Microsoft.PowerShell.Commands.StartTranscriptCommand




以下のように Runtime 例外が発生した場合でも Start-Transcript で指定したファイルに記録されています。

サンプルコード:

Start-Transcript c:\temp\PowershellCommandOutput.txt

$a = 1 / 0

Stop-Transcript


実行結果:

トランスクリプトが開始されました。出力ファイル: c:\temp\PowershellCommandOutput.txt
0 で除算しようとしました。
発生場所 C:\temp\code.ps1:3 文字:1
+ $a = 1 / 0
+ ~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException

トランスクリプトが停止されました。出力ファイル: C:\temp\PowershellCommandOutput.txt








[Powershell FAQ トップへ]
[FAQ CENTER トップ]


本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。) Copyright(c) tooljp.com 2007-2018