11

WinRar で「%USERPROFILE%\Desktop」に解凍する自己解凍型アーカイブを作成しようとしています。ただし、実行すると、デスクトップではなく、SFX の現在のディレクトリに抽出されます。オプションを抽出するパスはまったく機能しますか?

32 ビット コマンド ライン モジュールを使用しています。

また、まったく何もしないように見えるサイレントモードの「すべて非表示」ボックスをチェックしましたが、コマンドプロンプトウィンドウには、抽出されたものに関する情報が表示されたままです。

SFX アーカイブが、メッセージがポップアップすることなく、SFX ファイルに含まれる .exe とフォルダーをデスクトップに抽出することを望みます。

助言がありますか?

4

1 に答える 1

11

ウィンドウを表示せずに、すべてのファイルとフォルダーを直接展開する SFX RAR アーカイブを作成することができ
"%USERPROFILE%\Desktop"ます。

これは、ファイルとフォルダーを選択し、ツールバーの[追加] アイコンをクリックした後、 WinRARで実行できます。

  1. タブでチェックGeneralオプションCreate SFX archive
  2. ボタンSFX options のAdvancedタブをクリックし、
  3. [SFX] タブで [パス] の[一般] に入力して文字列を抽出し、その結果、[絶対パス"%USERPROFILE%\Desktop"] オプションが自動的に選択されます。
  4. [SFX] タブで [ Modes ] オプションを選択し、[ Hide all ] 、
  5. SFX タブモジュールで SFX モジュールDefault.sfx (WinRAR GUI SFX モジュール) を選択し、
  6. [ OK ] ボタンで [高度な SFX オプション] ウィンドウを閉じます。
  7. タブ全般に SFX アーカイブの名前を入力し、
  8. ボタンOKで圧縮を開始します。

モジュールWinCon.sfxが SFX アーカイブに使用されている場合、コマンド プロンプト ウィンドウが常に表示されます。この場合、Windows は SFX アーカイブの開始時にこれがコンソール アプリケーションであることを自動的に検出し、コンソール SFX が含まれるコマンド プロンプト ウィンドウを開きます。実行されました。

このような SFX アーカイブの作成は、バッチ ファイルでも実行できます。

@echo off
echo ;The comment below contains SFX script commands>"%TEMP%\SfxOptions.txt"
echo/>>"%TEMP%\SfxOptions.txt"
echo Path="%%USERPROFILE%%\Desktop">>"%TEMP%\SfxOptions.txt"
echo Silent=^1>>"%TEMP%\SfxOptions.txt"
"%ProgramFiles%\WinRAR\Rar.exe" a -c -cfg- -ep1 -idq -m5 -mdg -r -s -sfx -y "-z%TEMP%\SfxOptions.txt" "Path\Name of your SFX.exe" "Path\Folder to add" "Path\File to add"
if errorlevel 1 goto Failure
del "%TEMP%\SfxOptions.txt"
goto :EOF

:Failure
del "%TEMP%\SfxOptions.txt"
echo/
echo Error on creation of "Path\Name of your SFX.exe"
echo/
pause

このバッチ ファイルでは、使用するために変更する必要があります。

  1. コンソール バージョンと SFX モジュールDefault.sfxを含むWinRARのプログラム ファイル フォルダーへのパス。Rar.exe
  2. 作成する SFX アーカイブのパスと名前。
  3. アーカイブに追加するフォルダーやファイルのパスと名前。

使用するスイッチは、 WinRARの program files フォルダー内のテキスト ファイルRar.txtで説明されています。

スイッチに関するもう 1 つの注意事項-ep1:

アーカイブに追加するフォルダーやファイルの名前の最後のバックスラッシュまでのすべてが、フォルダーまたはファイルをアーカイブに追加するときに名前から削除されます。

フォルダーを RAR アーカイブに追加する際に、フォルダーが最後にバックスラッシュ付きで指定されているかどうかで違いが生じます。

例:

のようなディレクトリツリー

  • C:\Temp
    • マイフォルダー
      • サブフォルダー 1
      • サブフォルダー 2
        • ファイルX
      • ファイル Y

で圧縮されます

Rar.exe a -ep1 -r C:\Temp\Demo1.rar C:\Temp\MyFolder

アーカイブ内の次のファイルとフォルダーC:\Temp\Demo1.rar

  • マイフォルダー
    • サブフォルダー 1
    • サブフォルダー 2
      • ファイルX
    • ファイル Y

使用中

Rar.exe a -ep1 -r C:\Temp\Demo2.rar C:\Temp\MyFolder\

または使用して

Rar.exe a -ep1 -r C:\Temp\Demo2.rar C:\Temp\MyFolder\*

アーカイブ内の次のファイルとフォルダーになりますC:\Temp\Demo2.rar

  • サブフォルダー 1
  • サブフォルダー 2
    • ファイルX
  • ファイル Y
于 2014-07-06T16:40:26.293 に答える