PowerShell でかいバイナリファイルを分割したい
前回テキストファイルを分割する記事を書きました
今回は、大きなバイナリファイルを小分けするときのメモです。
バイナリ形式ファイルtest.pdfを30kbづつ分けるときのコマンド例
$originalfile = "test.pdf" #分割したいファイル
$bunkatsugyo = 30kb #分割するファイルサイズ
$cnt=0;Get-Content $originalfile -Encoding Byte -ReadCount $bunkatsugyo | % {$_ | Set-Content "$(([string]$cnt).PadLeft(5, '0')).div" -Encoding Byte; $cnt++}
これを実行するとファイルが連番で分割します。
解説:
Get-ContentのReadCountオプションで分割サイズを指定して、パイプ処理でSet-Contentに渡しています。Set-Contentでは連番のファイル名を付けて出力しています。
連番ファイル名は5桁で0埋めしました。このようなコマンド例はネット上にありますが、0埋めしていないのでファイルを開くとき面倒になるので0埋めにしています。
連結するには
一番簡単に連結する方法はコマンドプロンプトでこうします。
copy /b *.div ketugou.pdf
powershell でも結合できるハズなんですけども出来ないですね。
また調べて追記します
#PowerShell #コマンドレット #バイナリファイル #ファイル分割 #独自コマンド #0埋め #ゼロパディング #プログラミング学習