ユーザ用ツール

サイト用ツール


powershell:base64

Base64変換によるバイナリファイルのテキスト化と復元

バイナリファイルからテキスト化する

PowerShellをすべてカレントディレクトリで作業しているとする。 ReadAllBytes コマンドでバイナリファイルを読み込み、ToBase64Stringコマンドでテキストに変換する。 その後、'Set-Content'でファイルに出力することができる。

# ZIP ファイルのパス
$zipPath = ".\original.zip"
# Base64 保存先
$base64File = ".\original_base64.txt"
 
# ZIP を読み込んで Base64 に変換
$bytes = [System.IO.File]::ReadAllBytes($zipPath)
$base64 = [System.Convert]::ToBase64String($bytes)
Set-Content -Path $base64File -Value $base64
 
Write-Output "ZIP を Base64 に変換して保存しました。"

Base64からバイナリファイルを復元する

テキスト化されたファイルからバイナリファイルを復元するには、まずGet-Contentコマンドでファイルを読み込み FromBase64Stringコマンドでバイナリに変換し、そのバイナリからWriteAllBytesコマンドでファイルに出力する。

$base64File = ".\original_base64.txt"
$restoredFile = ".\restored.zip"
$base64FromFile = Get-Content -Path $base64File -Raw
$bytes = [System.Convert]::FromBase64String($base64FromFile)
[System.IO.File]::WriteAllBytes($restoredZip, $bytes)
 
Write-Output "ZIP を復元しました: $restoredFile"

クリップボードを経由してBase64変換と復元を行う

変換側で以下のように変換し、Set-Clipboardコマンドを実行する。

$inputFile = ".\input.zip"
 
# ZIP を読み込んで Base64 に変換
$bytes = [System.IO.File]::ReadAllBytes($inputFile)
$base64 = [System.Convert]::ToBase64String($bytes)
 
Set-Clipboard -Value $base64

復元したいマシン側で以下のように実行する。

$base64FromClipboard = Get-Clipboard
 
$bytes = [System.Convert]::FromBase64String($base64FromClipboard)
[System.IO.file]::WriteAllBytes(".\fukugen.zip", $bytes)

正常に復元されているかどうかをMD5ハッシュなどで確認する。

Get-FileHash .\original.zip -Algorithm MD5
Get-FileHash .\restored.zip -Algorithm MD5
powershell/base64.txt · 最終更新: 2025/08/24 16:46 by mikoto