PowerShellでファイルをBase64エンコード・デコードする

最近必要になったので備忘録。

PowerShellでBase64エンコードされた値をデコードする必要があったのですが、その時のコマンドを備忘録として残しています。
よくBase64の値を直接デコードするようなコードが公開されていますが、一旦ファイルに出力し、それを復元する方法をとっています。


  • ファイルをBase64エンコードし、値をファイルに出力する
[Convert]::ToBase64String([System.IO.File]::ReadAllBytes('エンコード対象ファイルパス')) > '出力先ファイルパス'
  • Base64エンコードされた値が出力されたファイルから、Base64デコードしてファイルを復元する
[System.IO.File]::WriteAllBytes('復元先のパス', [Convert]::FromBase64String([System.IO.File]::ReadAllText('Base64ファイルのパス')))

例)bitmap.bmpをBase64エンコード・デコードする

bitmap.bmpをBase64エンコードし、値を一旦ファイルに出力(出力ファイルは拡張子無し)

[Convert]::ToBase64String([System.IO.File]::ReadAllBytes('C:\Users\xxx\base64\bitmap.bmp')) > 'C:\Users\xxx\base64\base64Bitmap'

base64BitmapをBase64デコードし、ファイルを復元

[System.IO.File]::WriteAllBytes('C:\Users\xxx\base64\base64Bitmap.bmp', [Convert]::FromBase64String([System.IO.File]::ReadAllText('C:\Users\xxx\base64\base64Bitmap')))