====== Base64変換によるバイナリファイルのテキスト化と復元 ====== [[:powershell|一つ上へ]] ===== バイナリファイルからテキスト化する ===== 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