お世話になっております。
VB6,XPです。
makecabを使って、cabファイルを作成しようと思います。
Shell "makecab c:\test.txt c:\test.cab"
だと、1つのファイルから1つのcabファイルができますが、複数のファイルで1つのcabファイルを作るには、どうしたらよいのでしょうか?
調べてところ、/F を使うとありましたが、使い方がよく分かりませんでした。
よろしくお願いします。
> VB6,XPです。
> makecabを使って、cabファイルを作成しようと思います。
どのバージョンの MakeCab なのかちょっと気になります。
まぁ、どれを使っても使い方はほぼ一緒なのですけれども。
> 複数のファイルで1つのcabファイルを作るには、どうしたらよいのでしょうか?
「ファイルの一覧」を記したテキストファイルを作り、それを /F で読み込ませる事になります。
(一覧の拡張子は伝統的に *.lst にする事が多いですが、ファイル名は何でも OK です)
> 調べてところ、/F を使うとありましたが、使い方がよく分かりませんでした。
下記が参考になるかと思います。
http://www.syuhitu.org/other/makecab.html
ありがとうございます。
教えていただいたサイトを参考に次のような処理してみました。
c:\にtest.jpgという画像ファイルを置きました。
次にファイルtest.lstを、c:\に作成し、
"c:\test.jpg"
という内容にして保存しました。
VB6で、
Shell "makecab /F c:\test.lst"
を実行しましたが、cabファイルが作成されませんでした。
もしかしたらどこかに作成されているのかもしれませんが、cabファイルを作成する場所を指定できないようなので、どこに作成されたのか分かりません。
処理に間違えがあれば教えてください。
すみませんがよろしくお願いします。
「makecab /F c:\test.lst」の場合、出力先は MsgBox CurDir() で
示される「カレントディレクトリ」になります。
(カレントディレクトリは、ChDrive & Chdir ステートメントで変更できます)
実行後は、カレントディレクトリを「.」で表すと、
.\disk1\1.cab … 生成されたキャビネット
.\setup.inf … セットアップ情報
.\setup.rpt … MAKECAB の処理結果レポート
のように出力されることになります。
もし、inf/rptファイルが不要なら、/D オプションを用いて、
/D RptFileName=NUL /D InfFileName=NUL などを指定することもできます。
出力されるキャビネット ファイル名を "sample.cab" にしたいなら、
/D CabinetNameTemplate=sample.cab を指定することもできます。
出力先のフォルダを変更したければ、/D DiskDirectoryTemplate=C:\test\ と
指定することもできます。
なお分割指定時には、連番部に "*" を含めてください(先述の URL を参照)。
# もはや VB とは無関係の内容になってしまいましたが。
ありがとうございます。
/F と /D MaxDiskSize を使って、無事に複数のファイルでcabファイルを作成することができました。
ありがとうございました。