# 运行命令

一个项目的“运行命令”字段可以包含一个在选择运行命令操作时运行的命令。 该命令也是可以在你的电脑开始->运行框输入的任何可执行的命令。

另外，Password Safe 能传递参数给命令，如：项目用户名称、密码等，参阅下面描述。 这些命令允许你对“程序”执行相当复杂的操作，如调用一个远程访问程序（PuTTY, 示例）并使它的项目相关的用户名和密码通行。

总而言之，“变量” 是代替在传递给计算机执行之前与它们相关的值。美元（'$'）标志是用来表示一个变量的。

- 变量规定为“$名称”并 区分大小写。变量名总是以一个字母字符开始并且其余字符为字母数字。 变量名结束在遇上一个非字母数字字符（如一个空格）或者运行命令末尾中的任何一个。

- 要使用一个变量直接跟随一个字母数字字符在运行命令里，必须把变量名包围在大括号里，例如：“${变量名}字串”。
- 要使用一个“$”在字串中作为正常文字（不指示以下文字是一个变量名），避开它使用一个反斜杠符号（“\”）， 例如：“\$文字”变成“$文字”而不是当做一个变量名“文字”。
- 要使用一根反斜杠在“$”之前作为一根反斜杠符，避开它同时使用另一根反斜杠线。例如：“\\$名称” 变成“\$名称”产生的文字和“$名称”被视为一个变量。 反斜杠符不必避开，除非先于“$”被指示为下列变量。
- 一个变量可以跟随一个数值在方括号里，称为“索引值”。该索引值“n”可加上“+”或“-”。例如：[-2] 或 [2] 或 [+2]。 Password Safe 将把一个索引看作等于无意义的整个字段。

- 下列变量是目前承认的:

- 应用程序相关:

appdir | 路径包含 Password Safe 应用程序。查看下面的备注 1 & 2 。

- 当前数据库相关:

dbdir | 当前打开的数据库目录。查看下面的备注 1 & 2 。
fulldb | 完整路径，文件名和当前打开的数据库扩展名。查看下面的备注 2 。
dbname | 当前打开的数据库文件名。
dbextn | 当前打开的数据库扩展名。

- 当前项目相关:

g 或 group | 组 （完全树目录结构返回到根目录组分隔圆点）。
G 或 GROUP | 仅包含该项目的组。
t 或 title | 标题
u 或 user | 用户名
p 或 password | 密码
a 或 autotype | 自动输入。查看下面的备注 5 。
url | 网址
n 或 n[0] | 完整的备注字段 (也可以: notes或notes[0])。查看下面的 3 。
n[i] 或 notes[i] | ith 从备注字段起始行计数。例如：i=1 表示第一行；i=2 意思为第二行 等。查看下面备注 4 。
n[-i] 或 notes[-i] | ith 从备注字段结束行计数。例如：i=1 表示最后一行；i=2 意思为倒数第二行 等。查看下面备注 4 。

备注 |
--- | ---
1 | 目录值（appdir 或 dbdir）没有一个结束符“\”，请记住如果你需要添加它在运行命令里。
2 | 变量的内容（包括完整的目录和路径值）可能包含空白。您可能需要把你的运行命令包括在引号中才能正确执行。
3 | 如果你的备注字段包含大于一行的文字，它将包含回车符(CR)或换行符(LF)。这些可能导致在运行 CR 和/或 LF 时将被当作“enter”的问题。
4 | 任何后缀 CR 和/或 LF 将从备注字段被选中的单独行中删除。
5 | 如果自动输入变量存在运行命令，一旦目标窗口被激活自动输入将被执行。变量与它的值如果存在， 将从被执行的字串里删除。该变量可出现在任何地方运行命令，作为它唯一指定 Password Safe 将出现在已执行的命令字串之后。 不像其它的变量，这是一个将会覆盖项目当前值的输入值。格式如下（在项目的示例“$autotype”可取代“$a”）:
$a | 使用当前项目的值。
${a} | 使用当前项目的值（用于假如文字直接跟随 '$a' 变量）。
$a（值） | 使用自动输入字串规定在圆括号之间。
${a}（值） | 使用自动输入字串规定在圆括号之间。

备注: 如有必要一定给你的字串添加引号标识。例如：如果你的数据库目录包含空格，要访问你打开的数据库名中的一个文本文件， 你应该操作如下（使用引号）:
“$dbdir\\$dbname.txt”
注意反斜杠被避开以便 '$dbname' 被承认为一个变量。

在 Windows 中，环境变量的正常取代（指定为 %变量_名称%）被执行。 例如:“%windir%\notepad.exe”可能变成（随你的安装而定）“C:\Windows\notepad.exe”。 当前值的设置在你的环境里可视运行的“cmd.exe”和“设置”命令有没有任何参数结果而定。 任何未知的环境变量在运行命令中保持不变，例如：%xyz%\notepad.exe 依旧是 %xyz%\notepad.exe 如果变量“xyz”未设定。
备注: Windows 环境变量不区分大小写。