自 Apache Ant 1.6 起.
更改文件或指定目录中所有文件的属性。目前,它仅在 Windows 下有效。四种可能的权限中的每一种都有其自己的属性,与 attrib 命令的参数匹配。
可以使用嵌套的 <fileset>
、<dirset>
和 <filelist>
元素来指定 FileSet、DirSet 或 FileList。
自 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
的目录下的文件)只读且存档。此外,属于具有 id
为 other.shared.sources
的 FileSet 的所有文件都将获得相同的属性。
<attrib readonly="true" archive="true"> <fileset dir="shared/sources1"> <exclude name="**/trial/**"/> </fileset> <fileset refid="other.shared.sources"/> </attrib>