'&'和'!'的含义是什么?在属性名称之前?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'&'和'!'的含义是什么?在属性名称之前?相关的知识,希望对你有一定的参考价值。

我正在阅读别人写的WIX脚本。有些代码让我很困惑。

<Custom Action='UnLoadSchedulerPerfCounters' After='InstallInitialize'>
    <![CDATA[(Installed) AND (!Scheduler = 3)]]>
</Custom>
<Custom Action='RollbackSchedulerPerfCounters' After='WriteRegistryValues'>
        <![CDATA[(&Scheduler = 3)]]>
</Custom>

那么,!Scheduler&Scheduler之间的区别是什么?当&!为前缀时,是否有任何特殊含义?

答案

来自http://www.tramontana.co.hu/wix/lesson5.php#5.3

在名称前面添加一些特殊字符将赋予它们额外的含义:

%     environment variable (name is case insensitive)
$     action state of component
?     installed state of component
&     action state of feature
!     installed state of feature

最后四个可以返回以下整数值:

-1   no action to be taken
1    advertised (only for components)
2    not present
3    on the local computer
4    run from the source
另一答案

这些是Windows Installer条件语法的运算符。有关完整列表,请参阅此MSI SDK文档:http://msdn.microsoft.com/en-us/library/aa368012.aspx

以上是关于'&'和'!'的含义是什么?在属性名称之前?的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式:要么只有数字或字母数字带' - '和'_'允许但不带数字' - '和' - '

json数组的删除。

Python程序用True和False替换'qualify'列值'yes'和'no'

Rails查询'join'和'sum''

警告:配置'compile'已过时,并已由'implementation'和'api'代替

如何使用Base64进行加密和解密