7zip - 指定された抽出パスで自己解凍アーカイブ (sfx) を作成します

7zip - 指定された抽出パスで自己解凍アーカイブ (sfx) を作成します

実行ファイルを作成するために、7zip SFX アーカイブを取得しようとしています。実行ファイルを取得することはできます。しかし、実行すると、のダウンロード パスが表示されますExtract to:。 をデフォルトで に変更したいと思います%AppData%\Roaming。以下のスクリーンショットは、私が何をしようとしているかを示しています。

7zip設定

抽出先: ダイアログボックス

setup.exeアーカイブ内には何も入っておらず、Roamingフォルダーに移動する必要があるファイルがいくつかあります。これは、パスを指定せずにこの更新を取得できる多くのユーザー向けです。(ユーザーがパスを指定する必要がない場合は常に簡単ですが、そうでない場合は、ユーザーが最も珍しいパスを選択できるというのが私の経験です!!)

アップデート

これまで試してみたのは以下のとおりです。私の設定ファイルの内容は

;!@Install@!UTF-8!
InstallPath="%AppData%\\Roaming\\Notepad++"
;!@InstallEnd@!

これはコマンドライン呼び出しです。

copy /b 7zS.sfx + config.txt + Installer.7z myinstaller.exe

残念ながら機能しません. 次のパスが与えられます。 のはずです%AppData%\\Roaming\\Notepad++

![パスを抽出]

答え1

試す7z SFX ビルダー無料で、コマンドラインパラメータをサポートしており、また、GUIメインタブ:

メインタブ

答え2

%AppData%\Roaming抽出パスをデフォルトでに変更したいと思います。

「修正モジュール」をダウンロードする必要があります7z SFX ビルダー(ソースフォージ)。

チェックしてください左側のリンクドキュメントについては(これらのリンクと以下のテキストはhttps://web.archive.org/

設定ファイル内:

InstallPath="%AppData%\Roaming"

設定ファイルのパラメータ

InstallPath="抽出先のパス"

抽出パスを設定します。抽出後も抽出フォルダは削除されません。

設定ファイルに値が存在しないかInstallPath、対話型抽出ダイアログからパスが削除された場合、アーカイブは一時フォルダーに抽出されます。この一時フォルダーは、すべてのコマンドの抽出と実行後に削除されます。

%%T環境変数は許可されます (および で定義された変数 (がそのいずれかで使用されているSetEnvironment場合)を除く%%T)。パスには必ず二重のバックスラッシュを使用する必要があります。例:

InstallPath="C:\\Windows\\system32\\test"

または

InstallPath="%PROGRAMFILES%\\test"

相対パスが許可されます。現在のフォルダは、SFXアーカイブを起動するプログラムが実行されたフォルダです。たとえば、

InstallPath="test"

SFXアーカイブを起動するプログラムが実行されたフォルダに「test」という名前のフォルダを作成します。すべてのファイルは「test」フォルダに抽出されます。一方、

InstallPath="."

SFXアーカイブを起動するプログラムが実行されたフォルダにアーカイブの内容を抽出します。また、

InstallPath="%%S"

アーカイブの内容を SFX が配置されているフォルダーに抽出します。

アーカイブ コンテンツを特定のフォルダーに抽出するだけの場合は、InstallPath構成ファイルで の値を指定する必要があります。

この場合、設定ファイルでRunProgramまたは を指定しないでください。または は設定ファイルで指定できますが、コマンドラインまたは [SHIFT] キーで呼び出さないでください。ExecuteFileAutoInstallAutoInstallX

または を指定するかRunProgramExecuteFileおよび を呼び出すAutoInstallAutoInstallX、指定した実行可能ファイルが抽出後に起動されます。

ソース設定ファイルのパラメータ

答え3

次のように使用します-y -o<PathToExtract>:Setup.exe -y -oc:\abc

答え4

(誰かがまだこれをやろうとしている場合に備えて)

setup.exe または同様のファイルを指定せずに、SFX アーカイブを特定の場所に抽出する方法がわかりません。

"-y -oPATH"表示されているスイッチを使用して目標を達成することができましたここ通常のSFXアーカイブをバッチファイル内に格納する(バッチファイル内にファイルを保存する

結果はEXEではなくCMDファイルです。(ただしただCMDファイル)

方法

  • 作成するソース.exe
  • 作成と編集スクリプト.cmd
  • 作成する結合.cmd
  • 実行する結合.cmd

結合.cmd名前が示すように、script.cmdとsource.exeを組み合わせて出力.cmd

output.cmdは結果であり、実行するとコピーされますソース.exe自身を一時的な場所に移動し、場所を指定する引数を付けて実行してから、一時ファイルを削除します。

ソース.exe

これは、「make sfx archive」オプションを使用して作成された 7z SFX アーカイブです。抽出するすべてのファイルが含まれています。

スクリプト.cmd

{target} を目的の場所に置き換える必要があります。例: C:\Example

あなたしなければならないexit /bこのファイルを保存する前に、空の新しい行を追加します。

;;;===,,,@echo off
;;;===,,,findstr /v "^;;;===,,," "%-f0" > "%temp%\tempdata.exe"
;;;===,,,start /wait "" "%temp%\tempdata.exe" -y -o"{target}"
;;;===,,,del /f /q "%temp%\tempdata.exe"
;;;===,,,exit /b

結合.cmd

copy /a script.cmd  /b source.exe /b output.cmd

関連情報