2017-05-12 63 views
1

如何將文件夾中的所有文件轉換爲Windows-1257編碼?我有這個代碼,它對UTF8編碼:通過電源外殼將文件轉換爲Windows-1257編碼

$Dir="D:\Data\eip_orders\new_utf8\" 
$Dir2="D:\Data\eip_orders\new_test\" 

foreach($item in (dir $Dir "*.eip")){ 
    "Converting $item..." 
    $MyFile = Get-Content $Dir$item 
    $Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding($False) 
    [System.IO.File]::WriteAllLines(($Dir+$item.name), $MyFile, $Utf8NoBomEncoding) 
} 

foreach($item in (dir $Dir "*.eip")){ 
    "Moving $item..." 
    Move-Item $Dir$item $Dir2$item 
} 

Read-Host -Prompt "Press Enter to exit" 

我需要類似的Windows-1257。

$Utf8NoBomEncoding = New-Object System.Text.windows-1257($False) 

不工作。

也試過:$Utf8NoBomEncoding = New-Object System.Text.GetEncoding(1257) 但是,然後我得到「無法找到類型[System.Text.GetEncoding]:驗證包含此類型的程序集加載。」

+0

您是否檢查了[MSDN文檔的System.Text](https://msdn.microsoft.com/en-us/library/system.text(v = vs.110).aspx),並且特別針對[子類System.Text.Encoding](https://msdn.microsoft.com/en-us/library/system.text.encoding(v = vs.110).aspx) –

+0

Encoding.Convert特別方便 – Joey

+0

是的,我想使用Encoding.GetEncoding(1257)獲得編碼,不知道如何獲得特定的編碼。 – The50

回答

0
$Dir="D:\Data\eip_orders\new_utf8\" 
$Dir2="D:\Data\eip_orders\new_test\" 

foreach($item in (dir $Dir "*.eip")){ 
    "Converting $item..." 
    $MyFile = Get-Content $Dir$item 
    $Utf8NoBomEncoding = [System.Text.Encoding]::GetEncoding(1257) 
    [System.IO.File]::WriteAllLines(($Dir+$item.name), $MyFile, $Utf8NoBomEncoding) 
} 

foreach($item in (dir $Dir "*.eip")){ 
    "Moving $item..." 
    Move-Item $Dir$item $Dir2$item 
} 

Read-Host -Prompt "Press Enter to exit" 

這似乎工作正常,謝謝!