質問: 差分のlzhファイルの作り方 win2000のdosコマンドから実行する方法を模索しています。 指定するディレクトリの中身全部を圧縮するとき、別の場所に作ってある「a.lzh」と比較して差分ファイルだけを「b.lzh」の名前で圧縮するという方法はありませんか? つまり、これから圧縮しようとするファイルに対し「a.lzh」の中に無い物だけを「b.lzh」として圧縮したいのです。 差分のバイナリファイルを作るフリーウェアが存在するようなのですが、どうしても差分のlzhを作りたいので。 通常はlhmeltを使っています。
回答: 1)a.lzhの内容をテンポラリファイルに書き出し 2)ディレクトリの内容をテンポラリファイルに書き出し 3)二つのテンポラリファイルのファイル名部分を抜き出す 4)ソートする 5)ファイル比較して差分をテンポラリファイルに書き出し 6)差分テンポラリファイルを整形してlhaのコマンド列として認識できる形にする 7)lhaをaオプションで起動して圧縮 lhaとdos標準コマンドだけでもバッチファイルが組めそうです。grepがあれば便利でしょう。