自解压路径

在使用winrar打包时,需要将文件复制到系统根目录,但是为了保证兼容性,需要使用系统变量,在网上查了下,得到以下资料,发于此以备后用。

WINRAR 的帮助文件中没有对自解压路径和系统的环境变量之进行说明,所以,很多人只知道,其自解压路径可以智能定位到系统的 Program Files 目录

而不知道它其实还可以智能定位到系统的任何地方:

%SystemDrive%
操作系统所在的分区号。如 C:

%SystemRoot%
操作系统根目录。如 C:\WINDOWS

%windir%
操作系统根目录。如 C:\WINDOWS

%ALLUSERSPROFILE%
相当于 C:\Documents and Settings\All Users

%APPDATA%
相当于 C:\Documents and Settings\用户目录\Application Data

%ProgramFiles%
相当于 C:\Program Files%CommonProgramFiles%
或者 C:\Program Files\Common Files

%HOMEDRIVE%
操作系统所在的分区号。如:C:%HOMEPATH%
相当于 \Documents and Settings\用户目录

%USERPROFILE%
相当于 C:\Documents and Settings\用户目录

有了上面这些变量值,我们就好办了,几乎可以向系统的任何地方拷贝文件了。

比如:

字体目录 %WINDIR%\FONTS

帮助目录 %WINDIR%\Help

输入法目录 %WINDIR%\IME

桌面 %USERPROFILE%\桌面

右键菜单“发送到” %USERPROFILE%\SendTo

收藏夹 %USERPROFILE%\Favorites

快速启动 %APPDATA%\Microsoft\Internet Explorer\Quick Launch

「开始」菜单 %USERPROFILE%\「开始」菜单

当前系统盘符 %systemdrive%%HOMEDRIVE% C:\

当前系统目录 %systemroot%%Windir% C:\WINDOWS

当前用户文件夹 %UserProfile%%HOMEPATH% C:\Documents and Settings\Administrator

所有用户文件夹 %AllUsersProfile% C:\Documents and Settings\All Users

临时文件夹1 %temp% C:\Documents and Settings\Administrator\Local Settings\Temp

临时文件夹2 %SystemRoot%\TEMP C:\WINDOWS\Temp

程序文件夹 %ProgramFiles% C:\Program Files

还有:

%WINDIR%\SYSTEM32\config

%ProgramFiles%\Adobe

%CommonProgramFiles%\Macromedia

……等等。所以,用好系统的环境变量, WINRAR 的自解压功能就如虎添翼了。

自解压命令

Title
设置自解压的窗口标题。

Title=标题

Delete
在解压到目标文件夹之前删除指定的文件,允许数个 Delete 命令。

Delete=文件名

License
当运行自解压文件时显示指定的作为软件许可协议文本。用户既可以接受它并继续解压或者拒绝它并退出。(可以使用 HTML )
License=许可协议对话框标题
{
许可协议文本 1
许可协议文本 2

}

Overwrite
如果[n]为 0,在覆盖文件之前用户将会被先询问。这是 覆盖 命令的默认动作,可以不需要指定。如果[n]不存在或是等于[1],文件将在没有确认的状况下全部覆盖。如果[n]等于[2],所有已存在的文件将不会被覆盖。

Overwrite=n

Silent
开始解压时不显示开始对话框。
参数 可以是 1 或 2。如果 参数 是 1,开始解压对话框会完全隐藏,包含进程指示和文件名。如果 参数 是 2,则跳过开始解压的确认,但用户仍然可以看到压缩文件的解压进程。

Silent=参数

Path
设置默认的目标路径。路径的绝对使用起始点在不更改的情况下为<驱动器号>:,如果 <路径> 只包含了名称,它将会被附加到“Program Files”文件夹下,如果你希望关闭如此的作用,请从“.\”字符开始定义起始 <路径>。

Path=路径

Presetup
自解压在解压之前将试着运行 <程序>,在运行 <程序> 之前必须先指定目标文件夹。你可以使用此命令,比如说,当安装新版本于旧版本上面时,用以删除先前的程序版本。如果程序名包含空格,它必须包含在引号之内。

Presetup=程序

SavePath

这个命令允许自解压程序在注册表中存储用户输入的目标路径,并在自解压文件下一次运行时恢复相同的 Path。原来的 Path
命令内容被放在输入目标路径区域的列表下拉菜单中,所以用户可以在以前输入的和原始路径中选择。
当安装新版本或更新一些软件到同样的目录时,这个功能可能很便利。它允许只改变一次目标路径,而不需要每次都输入。

SavePath 命令只能和 Path 命令一起使用一次。

Setup
在成功解压之后自解压将会试着运行 <程序>。在运行 <程序> 之前,包含已解压文件的文件夹将会设为当前文件夹
Setup=程序
注意

1) 如果你在使用自解压运行 InstallShield setup.exe 有问题的话,请试着运行 “setup.exe /SMS” 来代替简洁的 “setup.exe”。此开关允许自解压检测安装程序的退出。
2) 全部在自解压命令行所指定的参数都会从 Setup=<程序> 命令提交给程序,自解压它自己则只认得 -s 开关,也就是强制缄默安装模式而不显示开始对话框。

TempMode
此命令强制自解压创建一个临时目录,将全部文件解压至此,然后开始运行 Setup 命令所指定的程序,并在完成 Setup 程序之后将临时目录中的内容全部清除。当运行这些操作时,自解压会自动设置为 缄默模式。如果 TempMode 命令存在的话,叙述中将有 Setup 命令且不得使用 path 命令。

TempMode 命令可以有字符串参数的选项,在解压之前可用以定义问题和问题的标题。这样的例子,仅在当用户选择了“是” 按钮时才会开始解压。
a)TempMode
b)TempMode=问题叙述,窗口标题文本

Text
它在自解压模块的输出窗口添加指定纯文本或HTML字符串。当自解压模块第一次遇到 Text 命令,在添加<字符串>前,它重设这个窗口默认内容。其后的命令追加<字符串>到已经存在的文本后。
依赖于使用的语法,这个命令可以一次添加一个或者数个字符串。

对于纯文本的过程中,为了使字符串和对话框匹配,自解压模块将合并和重新格式化指定的字符串。所以如果你希望重新产生一个新的段落,你需要在它前面放一个空的字符串。(可以使用 HTML )
a)
Text=字符串
b)
Text
{
字符串 1
字符串 2

}

shortcut
解压时创建快捷方式

shortcut=目标类型,文件路径,目标文件夹,描述,快捷方式名
目标类型 是一个一个字符宽的区域,可以有下列值:
D 在桌面创建快捷方式
S 在开始菜单创建快捷方式
P 在开始菜单/程序中创建快捷方式
T 在启动菜单中