windowsで該当フォルダの文字コードを一括で変換させる方法

一括で変換したい時はpowershellがおすすめ

※ファイル:FileConvert.ps1

    # スクリプトファイルのパラメータを宣言(先頭から「変換対象のフォルダ」
    # 「変換後のファイルの保存先」「変換前の文字コード」「変換後の文字コード」)
param(
  [String]$in = "c:\tmp\convert",
  [String]$out = "c:\tmp\converted",
  [String]$from = "Shift-JIS",
  [String]$to = "EUC-JP"
)

    # 引数$from、$toから、文字コードを表すEncodingオブジェクトを生成
$enc_f = [Text.Encoding]::GetEncoding($from)
$enc_t = [Text.Encoding]::GetEncoding($to)
    # 与えられたパス(c:\tmp\convert)から合致するファイルリストを再帰的に取得
  Get-ChildItem $in -recurse |
    # 取得したファイルを順番に処理
    ForEach-Object {
    # 取得したオブジェクトがファイルの場合のみ処理(フォルダの場合はスキップ)
      if($_.GetType().Name -eq "FileInfo"){
    # 変換元ファイルをStreamReaderオブジェクトで読み込み
        $reader = New-Object IO.StreamReader($_.FullName, $enc_f)
    # 保存先のパス、保存先の親フォルダのパスを生成
        $o_path = $_.FullName.ToLower().Replace($in.ToLower(), $out)
        $o_folder = Split-Path $o_path -parent
    # 保存先のフォルダが存在しない場合にフォルダを自動生成
        if(!(Test-Path $o_folder)){
          [Void][IO.Directory]::CreateDirectory($o_folder)
        }
    # 保存先ファイルをStreamWriterオブジェクトでオープン
        $writer = New-Object IO.StreamWriter($o_path, $false, $enc_t)
    # 変換元ファイルを順に読み込み、保存先ファイルに書き込み
        while(!$reader.EndOfStream){$writer.WriteLine($reader.ReadLine())}
    # ファイルをすべてクローズ
        $reader.Close()
        $writer.Close()
      }
    }