WinRar SFX,解压到动态文件夹

Posted

技术标签:

【中文标题】WinRar SFX,解压到动态文件夹【英文标题】:WinRar SFX, extract to dynamic folder 【发布时间】:2016-03-08 11:47:30 【问题描述】:

我有一些程序的 RAR SFX。根据某些条件(命令行参数是我可以做的),SFX 应该提取到 TEMP 文件夹或当前文件夹。

它基本上是软件的新版本。 如果是从网上下载的,解压应该进入temp文件夹,然后安装搜索SW所在的地图。 如果从程序内部下载,那么我知道相对于下载路径的程序位置,并且提取应该进入当前文件夹......

我有什么方法可以使用 RAR SFX 实现这一点?

TNX。

【问题讨论】:

我不清楚你想做什么,但我认为这是可能的。但是您的问题与 Stack Overflow 的任务描述无关,请参阅帮助主题 What topics can I ask about here? WinRAR 有一个帮助,其中详细解释了所有可用的 SFX 选项。您应该从阅读有关这些选项的帮助开始。 【参考方案1】:

在您的程序中,您可以跳过文件的 SFX 标头并将其解压缩为您想要的文件夹中的常规 RAR 文件。 它需要少量代码或嵌入 Winrar 或 7zip 库。

【讨论】:

嗯,我从来没有使用过 rar 或 7zip 库,有关于这部分的说明吗?【参考方案2】:

此批处理代码向您展示了我们如何创建 SFXSelF-eX ) 受密码保护,如果您当然想添加它们,还可以使用自定义图标

@echo off
Set SFX_Name=TestSFX.exe
Set SfxOptions=SfxOptions.txt
Set AddFile=MyBatchFile.bat
Set Icon=HackooIcon.ico
Set Winrar="%ProgramFiles%\WinRAR\WinRar.exe"
Set ExtractedPath=%tmp%\hackoo
Set Setup=%ExtractedPath%\MyBatchFile.bat
Set Password=hackoo123

(
    echo ;The comment below contains SFX script commands
    echo Path="%ExtractedPath%"
    echo Silent=1
    echo OverWrite=1
    echo Setup="%Setup%"
)> "%SfxOptions%"

%Winrar% a -c -cfg- -ep1 -idq -m5 -mdg -r -s -sfx -y -iicon"%Icon%" -hp"%Password%" "-z%SfxOptions%" "%SFX_Name%" "%AddFile%"
if errorlevel 1 goto Failure
::del "%~dp0SfxOptions.txt"
goto :EOF

:Failure
::del "%~dp0SfxOptions.txt"
echo.
echo Error on creation of "%~dp0%SFX_Name%"
echo.
pause

对于其他的开关和命令,你可以执行这个批处理来打开Winrar的帮助文件:

@echo off
Set WinrarHelp=%ProgramFiles%\WinRAR\WinRAR.chm
Start "" "%WinrarHelp%"

【讨论】:

以上是关于WinRar SFX,解压到动态文件夹的主要内容,如果未能解决你的问题,请参考以下文章

WinZip用CMD脚本压缩文件,但文件夹也压缩进去了,为啥?

04.exe程序打包

如何在exe中执行bat文件? (使用 WinRAR sfx 创建的 exe)

rar自解压格式如何不让人解压

强制从 php 打开和读取 zip 文件

如何设置文件属性 7zS.sfx 自解压可执行文件