Text ${Alias} Text Text ${/d:Alias} Text Text ${/f:Alias} Text Text ${/n:Alias} Text Text ${/v:Alias} Text
/d
根据别名当前是否已经定义计算出1或者0。如果别名已经定义,${/d:Alias} 被替换为 1;如果别名没有定义,${/d:Alias} 被替换为 0
0:000> al Alias Value ------- ------- $str Tencent Technology(Shenzhen) Company Limited 0:000> r $t0=${/d:$str} 0:000> r $t0 $t0=00000001 0:000> ad $str 0:000> al No aliases 0:000> r $t0=${/d:$str} 0:000> r $t0 $t0=00000000
可以看到,$str存在时${/d:$str}为1,否则为0
如果别名当前已定义则等同于计算别名。如果别名已经定义,${/f:Alias} 被替换为等价的别名;如果别名没有定义,${/f:Alias}被替换为空字符串
0:000> al Alias Value ------- ------- $add + 0:000> ? 1 $add 2 Evaluate expression: 3 = 00000003 0:000> ? 1 ${/f:$add} 2 Evaluate expression: 3 = 00000003 0:000> ad $add 0:000> al No aliases 0:000> ? 1 ${/f:$add} 2 Evaluate expression: 1 = 00000001 ^ Extra character error in '? 1 2'
如果别名当前已定义则计算别名的名称。如果别名已经定义,${/n:Alias}被替换为别名名称;如果别名没有定义,${/n:Alias}保留它字面上的值不替换
0:000> eza 0019e8b4 "${/n:$add}" 0:000> da 0019e8b4 0019e8b4 "$add" 0:000> ad $add 0:000> al No aliases 0:000> eza 0019e8b4 "${/n:$add}" 0:000> da 0019e8b4 0019e8b4 "${/n:$add}"可以看出,如果定义了别名,"${/n:$add}"被直接替换成$add,否则不变.
禁止对任何别名求值。不论别名是否已经定义,${/v:Alias} 总是保持它字面上的值
0:000> as $add + 0:000> eza 0019e8b4 "${/v:$add}" 0:000> da 0019e8b4 0019e8b4 "${/v:$add}"
有一个例外。如果你使用 ${/v:Alias}作为as (Set
Alias)或者aS (Set
Alias)命令的第一个参数,该关键字被当成单独的
Alias 字符串,而不是 ${/v:Alias}字符串。这只是对
as、aS 和 ad 命令起作用
0:000> ad* 0:000> al No aliases 0:000> as ${/v:$add} + 0:000> al Alias Value ------- ------- $add + 0:000> ad ${/v:$add} 0:000> al No aliases
使用 ${ } 记号的一个优点是,如果和其它字符紧挨着也会对别名求值。没有这个记号,调试器只对那些和其它关键字隔开的别名求值
0:000> eza 0019e8b4 "ab${/n:$add}" 0:000> da 0019e8b4 0019e8b4 "ab$add"