我正在尝试使用WinRar创建一个提取到"%USERPROFILE%\ Desktop"的自解压存档.但是,当我运行它时,它会提取到SFX的当前目录,而不是我的桌面.提取选项的路径是否有效?
我正在使用32位命令行模块.
我还检查了"隐藏所有"框以获取静默模式,该模式似乎完全没有任何内容,并且仍会显示命令提示符窗口,其中显示有关提取内容的信息.
我希望SFX存档将.exe和SFX文件中包含的文件夹提取到桌面,而不会弹出任何消息.
有什么建议?
可以创建SFX RAR存档直接提取所有文件和文件夹
"%USERPROFILE%\Desktop"而不显示窗口.
选择文件和文件夹并单击工具栏中的" 添加 "图标后,可以使用WinRAR完成此操作
"%USERPROFILE%\Desktop",这导致自动选择选项绝对路径是正确的,如果模块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)
在此批处理文件中必须修改以供使用:
Rar.exe以及SFX模块Default.sfx.使用的开关在WinRAR的程序文件文件夹中的文本文件Rar.txt中进行了说明.
还有一个关于开关的说明-ep1:
在将文件夹或文件添加到存档时,将从名称中删除要添加到存档的文件夹和/或文件名称中的最后反斜杠的所有内容.
在将文件夹添加到RAR存档时,如果在结尾处指定了带或不带反斜杠的文件夹,则会有所不同.
例:
像目录树一样
被压缩了
Rar.exe a -ep1 -r C:\Temp\Demo1.rar C:\Temp\MyFolder
Run Code Online (Sandbox Code Playgroud)
存档中包含以下文件和文件夹 C:\Temp\Demo1.rar
使用时
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