11

我正在尝试创建一个使用 WinRar 提取到“%USERPROFILE%\Desktop”的自解压存档。但是,当我运行它时,它会解压到 SFX 的当前目录,而不是我的桌面。提取选项的路径是否有效?

我正在使用 32 位命令行模块。

我还检查了静音模式的“全部隐藏”框,它似乎完全没有做任何事情,命令提示符窗口仍然出现,显示有关提取内容的信息。

我希望 SFX 存档将 .exe 和 SFX 文件中包含的文件夹提取到桌面,而不会弹出任何消息。

有什么建议么?

4

1 回答 1

11

可以创建一个 SFX RAR 存档,将所有文件和文件夹直接提取到
"%USERPROFILE%\Desktop"而不显示窗口。

这可以在选择文件和文件夹并单击工具栏中的图标添加后使用WinRAR完成

  1. 检查选项卡General选项Create SFX archive
  2. 单击按钮SFX 选项上的高级选项卡,
  3. 在 SFX 选项卡General上输入Path 以提取字符串"%USERPROFILE%\Desktop",这会导致自动选择正确的选项Absolute path
  4. 在 SFX 选项卡模式上选择Hide all选项,
  5. 在 SFX 选项卡上选择SFX 模块Default.sfx WinRAR GUI SFX 模块),
  6. 用OK按钮关闭Advanced SFX options窗口,
  7. 在标签General上输入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. WinRAR的程序文件夹路径,包含控制台版本Rar.exe以及 SFX 模块Default.sfx
  2. 要创建的 SFX 存档的路径和名称。
  3. 要添加到存档的文件夹和/或文件的路径和名称。

使用的开关在WinRAR程序文件夹中的文本文件Rar.txt中有说明。

关于 switch 的另一个注意事项-ep1

在将文件夹或文件添加到存档时,从名称中删除要添加到存档的文件夹和/或文件名称中最后一个反斜杠的所有内容。

在将文件夹添加到 RAR 存档时,如果在末尾指定了带或不带反斜杠的文件夹,则会有所不同。

例子:

像这样的目录树

  • C:\温度
    • 我的文件夹
      • 子文件夹 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 回答