54789


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

■ログ出力の関数

[code]

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

■プログラム

[code]

    $msg = "処理開始: " + (Get-Date -Format G)
    .\OutputLog.ps1
    fn_OutputLog $logFile $msg
    
    処理途中でもfn_OutputLogを呼び出す　
    
    $msg = "処理終了: " + (Get-Date -Format G)
    .\OutputLog.ps1
    
[/code]


CC BY-SA 4.0
2019-05-07T03:01:19.607
54787
2019-05-07T04:43:19.037
2019-05-07T03:45:06.357
3060
33013
question
powershell
Powershellのout-fileで追記ができない


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

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

[code]

    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
    #>
    
[/code]


CC BY-SA 4.0
2019-05-07T04:43:19.037
54789
2019-05-07T04:43:19.037
9820
54787
answer