Powershellのout-fileで追記ができない

投稿者: Anonymous

out-fileでログ出力しようとしています。
オプションの-Appendを使っているのに追記にならず上書きになってしまします。

■ログ出力の関数

function fn_OutputLog($logFile, $msg){
    Out-File -FilePath $logFile -InputObject $msg -Encoding default -Append
}

■プログラム

$msg = "処理開始: " + (Get-Date -Format G)
.OutputLog.ps1
fn_OutputLog $logFile $msg

処理途中でもfn_OutputLogを呼び出す 

$msg = "処理終了: " + (Get-Date -Format G)
.OutputLog.ps1

解決

下記のスクリプトを試したところ、現象が再現できず追記が正しく行われました。(複数回実行しても問題なく追記が行われています)

質問以外のコードで "" > $logFile のように上書き形式のリダイレクトなどを行っている箇所はないでしょうか。
また下記のコードをそのまま実行した結果は、下記でコメントアウトされた出力結果と同一の内容になっているでしょうか。

Get-Content .OutputLog.ps1
<# 出力結果
function fn_OutputLog($logFile, $msg){
    Out-File -FilePath $logFile -InputObject $msg -Encoding default -Append
}
#>
$logFile = "hogefuga.log" 
$msg = "処理開始: " + (Get-Date -Format G)
. .OutputLog.ps1
fn_OutputLog $logFile $msg
# 処理途中でもfn_OutputLogを呼び出す
. .OutputLog.ps1 # この行が無くても動きます
$msg = "処理終了: " + (Get-Date -Format G)
fn_OutputLog $logFile $msg
Get-Content $logFile
<# 出力結果
処理開始: 2019/05/07 13:33:33
処理終了: 2019/05/07 13:33:33
#>
回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *