我有一些程序的 RAR SFX。根据某些条件(命令行参数是我可以做的),SFX 应该提取到 TEMP 文件夹或当前文件夹。
它基本上是软件的新版本。如果是从网上下载的,解压应该进入temp文件夹,然后安装搜索SW所在的地图。如果从程序内部下载,那么我知道相对于下载路径的程序位置,并且提取应该进入当前文件夹......
有什么方法可以使用 RAR SFX 实现这一点?
TNX。
在您的程序中,您可以跳过文件的 SFX 标头并将其作为常规 RAR 文件提取到您想要的文件夹中。它需要少量代码或嵌入 Winrar 或 7zip 库。
此批处理代码向您展示了我们如何创建受密码保护的SFX(S el F -e X跟踪),如果您当然想添加它们,也可以使用自定义图标
@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%"