0

自己抽出には IExpress を使用しました。一時的な場所からファイルが削除されないようにしたい。それは可能ですか?

そうでない場合、他の自己抽出器は同じことを行うことができますか?

4

1 に答える 1

3

IExpress を直接使用することはできないようですが、面倒な方法で回避できます。これを直接実行できるアーカイバーは他にもあります。WinRAR が思い浮かびますが、他にもあると思います。

IExpress には 3 つのモードがあるようです。

  1. ファイルを一時ディレクトリ (のようなものと思われる%temp%\IXP000.TMP) に抽出し、インストール コマンドを実行し、オプションのインストール後のコマンドを実行し、一時ディレクトリを削除します。

  2. ファイルを抽出します。場所はコマンド ラインで指定する必要があります。そうしないと、ユーザーに場所の入力を求めるプロンプトが表示されます。(ウィザードまたはファイルで抽出ディレクトリを設定する方法がわかりませんでした.sed。)

  3. ファイルを作成し.cabます。(しかし、正直なところ、私は単にmakecabor cabarc… を使用します)

1 つの回避策は、IExpress アーカイブ内にIExpress アーカイブをバンドルすることです。内部アーカイブ (実際のファイルを含む) は抽出のみのタイプ (2) であり、外部アーカイブ (内部アーカイブのみを含む) はインストーラー タイプ (1) です。外側の IExpress アーカイブには、次のようなインストール コマンドがあります。

cmd /c innerArchive.exe /q /t:"%temp%\persistent"

それはにファイルを残します%temp%\persistent。(cmd /cで変数展開を実行するには、 が必要です%temp%。)

何かをインストールするために実際にコマンドを実行する必要がある場合は、それをインストール後のコマンドとして指定できます (%temp%\persistent内部アーカイブからファイルを実行しているかどうかを参照します)。繰り返しますがcmd /c、それを拡張する必要があるかもしれません。


おそらくもっと簡単な別の方法は、単純なバッチ ファイルです。

@echo off
xcopy /y * "%temp%\persistent\"
rem Execute any other commands here...

次に必要なのは、バッチ ファイルを実行するインストーラー タイプ (1) の IExpress アーカイブ 1 つだけです。のように実行するようにしてください。cmd /c persist.batそうしないと、 によって実行されてしまいcommand.com、良くありません。

于 2012-12-04T07:29:32.780 に答える