Attrib

自 Apache Ant 1.6 起.

描述

更改文件或指定目录中所有文件的属性。目前,它仅在 Windows 下有效。四种可能的权限中的每一种都有其自己的属性,与 attrib 命令的参数匹配。

可以使用嵌套的 <fileset><dirset><filelist> 元素来指定 FileSetDirSetFileList

自 Ant 1.7 起,此任务支持作为嵌套元素的任意 资源集合

默认情况下,此任务除非检测到它在 Windows 系统上运行,否则不会执行任何操作。如果您确定您的 PATH 上有一个与 Windows 命令行兼容的 attrib 可执行文件,您可以使用任务的 os 属性并将它的值设置为您的当前操作系统。

有关平台无关的替代方案,请参见 setpermissions 任务。

参数

属性 描述 必需
file 必须更改其权限的文件或目录。 是,或嵌套的 <fileset/list> 元素
readonly 只读权限。 至少四个中的一个
archive 存档权限。
system 系统权限。
hidden 隐藏权限。
type “file”、“dir”或“both”之一。如果设置为“file”,则只更改普通文件的权限。如果设置为“dir”,则只考虑目录。
注意:type 属性不适用于嵌套的 dirset——dirset 始终隐式地将 type 假设为“dir”。
否;默认值为“file”
verbose 是否在执行后打印摘要。 否;默认为“false”
os 可以在其上执行命令的操作系统列表。
osfamily <os> 条件中使用的操作系统系列。 否;默认为“windows”

示例

使 run.bat 文件只读且隐藏。

<attrib file="${dist}/run.bat" readonly="true" hidden="true"/>

使 ${meta.inf} 下的所有 .xml 文件可读。

<attrib readonly="false">
  <fileset dir="${meta.inf}" includes="**/*.xml"/>
</attrib>

使 shared/sources1 下的所有文件(除了任何名为 trial 的目录下的文件)只读且存档。此外,属于具有 idother.shared.sources 的 FileSet 的所有文件都将获得相同的属性。

<attrib readonly="true" archive="true">
  <fileset dir="shared/sources1">
    <exclude name="**/trial/**"/>
  </fileset>
  <fileset refid="other.shared.sources"/>
</attrib>