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 に変換して保存しました。"
テキスト化されたファイルからバイナリファイルを復元するには、まず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"
変換側で以下のように変換し、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