如何创建自解压RAR存档而不显示执行中的任何内容?

mag*_*nie 8 sfx winrar

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

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

我还检查了"隐藏所有"框以获取静默模式,该模式似乎完全没有任何内容,并且仍会显示命令提示符窗口,其中显示有关提取内容的信息.

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

有什么建议?

Mof*_*ofi 9

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

选择文件和文件夹并单击工具栏中的" 添加 "图标后,可以使用WinRAR完成此操作

  1. 选中选项卡常规选项创建SFX存档,
  2. 单击按钮SFX选项上的高级选项卡,
  3. 在SFX选项卡上输入一般用于路径提取字符串"%USERPROFILE%\Desktop",这导致自动选择选项绝对路径是正确的,
  4. 在SFX选项卡上选择模式选项隐藏全部,
  5. 在SFX选项卡上选择模块 SFX模块Default.sfx(WinRAR GUI SFX模块),
  6. 关闭高级SFX选项窗口,按钮确定,
  7. 在选项卡上输入常规 SFX存档的名称,
  8. 并使用按钮确定开始压缩.

如果模块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
Run Code Online (Sandbox Code Playgroud)

在此批处理文件中必须修改以供使用:

  1. 包含控制台版本的WinRAR的程序文件文件夹的路径Rar.exe以及SFX模块Default.sfx.
  2. 要创建的SFX存档的路径和名称.
  3. 要添加到存档的文件夹和/或文件的路径和名称.

使用的开关在WinRAR的程序文件文件夹中的文本文件Rar.txt中进行了说明.

还有一个关于开关的说明-ep1:

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

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

例:

像目录树一样

  • C:\ TEMP
    • MyFolder文件
      • 子文件夹1
      • 子文件夹2
        • 档案X.
      • 档案Y.

被压缩了

Rar.exe a -ep1 -r C:\Temp\Demo1.rar C:\Temp\MyFolder
Run Code Online (Sandbox Code Playgroud)

存档中包含以下文件和文件夹 C:\Temp\Demo1.rar

  • MyFolder文件
    • 子文件夹1
    • 子文件夹2
      • 档案X.
    • 档案Y.

使用时

Rar.exe a -ep1 -r C:\Temp\Demo2.rar C:\Temp\MyFolder\
Run Code Online (Sandbox Code Playgroud)

或使用

Rar.exe a -ep1 -r C:\Temp\Demo2.rar C:\Temp\MyFolder\*
Run Code Online (Sandbox Code Playgroud)

导致存档中的以下文件和文件夹 C:\Temp\Demo2.rar

  • 子文件夹1
  • 子文件夹2
    • 档案X.
  • 档案Y.