我有一些程序的RAR SFX。根据某些条件(命令行参数是我可以做的事情),SFX 应该提取到 TEMP 文件夹或当前文件夹。
它基本上是该软件的新版本。如果从 Web 下载,提取应进入临时文件夹,然后安装搜索 SW 所在的地图。如果从程序内部下载,那么我知道相对于下载路径和提取的程序位置应该进入当前文件夹......
有什么方法可以使用RAR SFX来实现这一点吗?
天呐。
在程序中,您可以跳过文件的SFX标头并将其提取为文件夹中的常规RAR文件。它需要很少的代码或嵌入Winrar或7zipliraries。
此批处理代码向您展示了我们如何创建受密码和自定义图标保护的 SFX(SelF-eX牵引),当然如果您想添加它们,也可以使用自定义图标
@echo off
Set SFX_Name=TestSFX.exe
Set SfxOptions=SfxOptions.txt
Set AddFile=MyBatchFile.bat
Set Icon=HackooIcon.ico
Set Winrar="%ProgramFiles%WinRARWinRar.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%WinRARWinRAR.chm
Start "" "%WinrarHelp%"