2014-10-26 46 views
0

我有一個特定的場景,我必須在Powershell中使用調用表達式來記錄一個批處理文件,但我的日誌正在保存與「UCS-2小端」編碼,我想用UTF-8或其他編碼保存。Powershell記錄從調用表達式與編碼

這是什麼,我試圖做一個簡單的例子:

批處理文件(test.bat的):

echo Test 

Powershell的文件(test.ps1):

Invoke-Expression "c:\test.bat > log.txt" 

有沒有辦法可以改變log.txt的編碼?

回答

1

你可以試試這個:

C:\test.bat | Out-File C:\log.txt -Encoding UTF8 

或者,如果出於某種原因,你真的要使用Invoke-Expression

Invoke-Expression "C:\test.bat" | Out-File C:\log.txt -Encoding UTF8 

注意,這將覆蓋log.txt的每次。如果要追加到文件做到這一點:

Invoke-Expression "C:\test.bat" | Out-File C:\log.txt -Encoding UTF8 -append 

Invoke-Expression "C:\test.bat" | Add-Content C:\log.txt -Encoding UTF8 
+0

出文件的伎倆感謝做到了。順便說一句,如果您使用添加內容日誌將無法訪問,直到蝙蝠完成。如果你想使用Out-File追加,你可以添加-Append選項。調用表達式「c:\ test.bat」| Out-File c:\ log.txt -Encoding UTF8 -Append – 2014-10-29 17:18:44

+0

顯然,我一定是盲目的,因爲我很確定我檢查了out-file是否有一個-append參數(因爲我確定它有一),我沒有看到它:o – Paul 2014-10-29 20:30:13