2016-01-29 26 views
1

經過一些測試,我已經縮小了問題的範圍,所以我修改了原來的這篇文章,只關注「真實」問題。也就是說,這個代碼在ISE中工作得很好,但是當作爲腳本運行時,寫主機將不正確地表示註冊的符號。在這兩種情況下,Test.txt都是正確的。這是PS 2和PS 4中的行爲。寫入主機中的註冊符號:ISE與腳本

+0

什麼是「OpenRemoteBaseKey」創建XML的方法? –

+0

FWIW,對PS 4.0的升級不能解決問題。我發現這個參考:[Console] :: OutputEncoding = [System.Text.Encoding] :: UTF8其中也沒有解決這種情況,但它以一種新的方式被破壞,r被替換爲一些其他符號當使用[Console] :: WriteLine()。所以,這似乎至少是一個富有成效的追求方向。交叉的手指有人有「只是做這個!」解決方案即將發佈;) – Gordon

+0

更新OP以更好地表示我現在看到的是「真實」問題。我在ISE中測試了一組代碼(OpenRemoteBaseKey方法),然後查看它的工作情況,然後運行使用本機PS cmdlet作爲腳本並看不到它的代碼。問題不在於代碼,而在於運行代碼的環境。 – Gordon

回答

0

因此,看起來控制檯的默認字體不包含某些符號,而ISE的默認字體確實如此。並且控制檯的字體不能用代碼設置。所以,這只是一個無法解決的錯誤。我想我使用的PowerShell不僅僅是一個「off label」,因爲我正在嘗試將格式良好的進度記錄到控制檯,這實際上超出了它的預期。