我正在尝试创建一个自解压存档,并使用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
在此批处理文件中,必须对其进行修改以供使用:Rar.exe
以及SFX模块Default.sfx的 WinRAR 程序文件文件夹的路径。
在 WinRAR 的程序文件文件夹中的文本文件 Rar.txt 中解释了所使用的开关。
关于-ep1
开关的另一条注释:
将文件夹或文件添加到存档时,名称和名称中要删除的文件夹和/或文件名称中最后一个反斜杠的所有内容都会从名称中删除。
在将文件夹添加到RAR归档文件时,如果指定的文件夹末尾带有反斜杠,则将有所不同。
例子:
像这样的目录树
被压缩Rar.exe a -ep1 -r C:\Temp\Demo1.rar C:\Temp\MyFolder
在存档C:\Temp\Demo1.rar
中包含以下文件和文件夹
在使用时Rar.exe a -ep1 -r C:\Temp\Demo2.rar C:\Temp\MyFolder\
或使用Rar.exe a -ep1 -r C:\Temp\Demo2.rar C:\Temp\MyFolder\*
导致存档C:\Temp\Demo2.rar
中的以下文件和文件夹
关于winrar - 如何创建自解压的RAR存档,在执行时不显示任何内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17698055/