ファイルの文字コードを変える

ファイルの文字コードを変えるスクリプト(Change-Encoding.ps1)

param(
    [string[]]$fileNames,
    [Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding]$encoding="UTF8",
    [string]$toEncoding="Default")

if($args[0] -eq "-?") {
    $commandName = [IO.Path]::GetFileNameWithoutExtension($MyInvocation.MyCommand.Name)
    Write-Host @"

名前
    $commandName

概要
    指定したファイルのエンコードを変更します。

構文
    $commandName [-fileNames] <string[]> [-encoding] <string> [-toEncoding] <string>
    
"@ -foregroundColor Yellow
	exit 1
}
$fileNames += @($input)

$fileNames | % {
    $content = Get-Content $_ -encoding $encoding
    # そのままつなげると書き込みエラーが出るので間にワンクッション挟む。
    $content | Out-File $_ -encoding $toEncoding
}

使い方

PS > dir *.txt | Change-Encoding UTF8 Default