我試圖創建ROBOCOPY一個日誌文件,我在腳本中使用同步兩個文件夾。 這些文件夾包含希臘字符的文件名。 在我的工作站的DEF代碼頁是希臘這兩個以下命令創建一個可讀的日誌文件:上ROBOCOPY日誌獲取Unicode文件名從PowerShell中
ROBOCOPY \\app-srv\D\DocumentFiles\2012\10\8\ \\hyper-v9\W\DocumentFiles\2012\10\8\ /IA:AO /FP /NP /E /L /V /TEE /UNILOG:myfiles.txt
ROBOCOPY \\app-srv\D\DocumentFiles\2012\10\8\ \\hyper-v9\W\DocumentFiles\2012\10\8\ /IA:AO /FP /NP /E /L /V | Tee-Object myfiles.txt
上,我想運行此我得到的服務器(US-EN代碼頁)「??」或者中國的字符或控制字符(含各種測試..)
我曾試圖/LOG:myfiles.txt, /UNICODE /LOG:myfiles.txt, /UNICODE /UNILOG:myfiles.txt, | Out-File myfiles.txt -Encoding utf8, | Out-File myfiles.txt -Encoding unicode
並沒有運氣的所有變化。
Withdir
/ls
我可以看到文件正確。
PC:
PS C:\tmp> $OutputEncoding
IsSingleByte : True
BodyName : us-ascii
EncodingName : US-ASCII
HeaderName : us-ascii
WebName : us-ascii
WindowsCodePage : 1252
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 20127
PS C:\tmp> [Console]::OutputEncoding
IsSingleByte : True
BodyName : ibm737
EncodingName : Greek (DOS)
HeaderName : ibm737
WebName : ibm737
WindowsCodePage : 1253
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : False
IsMailNewsSave : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 737
服務器:
PS C:\sw> $OutputEncoding
IsSingleByte : True
BodyName : us-ascii
EncodingName : US-ASCII
HeaderName : us-ascii
WebName : us-ascii
WindowsCodePage : 1252
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : True
IsMailNewsSave : True
EncoderFallback : System.Text.EncoderReplacementFallback
DecoderFallback : System.Text.DecoderReplacementFallback
IsReadOnly : True
CodePage : 20127
PS C:\sw> [Console]::OutputEncoding
IsSingleByte : True
BodyName : IBM437
EncodingName : OEM United States
HeaderName : IBM437
WebName : IBM437
WindowsCodePage : 1252
IsBrowserDisplay : False
IsBrowserSave : False
IsMailNewsDisplay : False
IsMailNewsSave : False
EncoderFallback : System.Text.InternalEncoderBestFitFallback
DecoderFallback : System.Text.InternalDecoderBestFitFallback
IsReadOnly : True
CodePage : 437
我甚至試圖與修改控制檯編碼:
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("IBM737")
..和靜像N o運氣(還有chcp 65001)。
任何意見將不勝感激!
奇怪。你以哪種方式獲得「??」或漢字或控制字符_?你的第一個'ROBOCOPY .../UNILOG:myfiles.txt'爲我創建帶有'UTF-16 LE'字節順序標記的'myfiles.txt' Unicode(沒有希臘語,但捷克語系統,即默認的拉丁字體/腳本)。 – JosefZ
嗨, /LOG:myfiles.txt - > 10 \ 8 \כ?אב?באוח??? ד??? ?כמ(來自ISO 8859-8記事本++) /UNILOG:myfiles.txt - >獥㉜尲〱㡜ㅜ㜰瀮晤ऊ††††瑡牴擴उ†(屏幕OK) /UNICODE |出文件myfiles.txt -Encoding UTF8 - >䴠㼿㿠㿧㼠㼿㼠㼿㼿㼿㼿㼿㼿㿧㼿㼿搮捯ऊ†† ..等 你能告訴我robocopy的版本,你必須檢查一些東西? – tfonias74
'/UNILOG:myfiles.txt - >獥㉜尲〱㡜ㅜ㜰瀮晤ऊ††††瑡牴擴उ†'給我一個位senseful文本片斷'上課\ 2012 \ 10 \ 8 \ 107。 pdf attrib'使用'type myfiles.txt'或使用'powershell -c $ x =''; Get-Content「myfiles.txt」-encoding byte^| ForEach-Object {$ x + = [char] $ _};在'chcp 852'或'chcp 1250'下打開'cmd'窗口的$ x';也許你會在希臘代碼頁「chcp 737」或「chcp 1253」下嘗試。然後,強制在記事本++中打開正確的編碼。我的'robocopy'是ResourceHacker的''ProductVersion',「6.3.9600.17415」'windows 8.1 64bit English。 – JosefZ