FileSetAttrib
改变一个或多个文件或文件夹的属性. 支持通配符.
FileSetAttrib Attributes , FilePattern, Mode
参数
- Attributes
-
类型: 字符串
要改变的属性. 例如, "+HA-R"
.
要方便地打开, 关闭或切换属性, 请分别在以下一个或多个属性字母前加上加号(+), 减号(-) 或脱字符(^):
- R = 只读
- A = 存档
- S = 系统
- H = 隐藏
- N = 普通(仅在单独使用此属性时才有效)
- O = 离线
- T = 临时
如果属性字母没有前缀符号, 文件属性将被替换为给定的属性. 请参阅示例 #5. 要删除所有属性, 请单独使用 "N"
.
- FilePattern
-
类型: 字符串
如果省略, 则使用最内层文件循环的当前文件. 否则, 指定单个文件或文件夹的名称, 或通配符模式, 如 "C:\Temp\*.tmp"
. 如果未指定绝对路径, 则假定 FilePattern 在 A_WorkingDir 中.
- Mode
-
类型: 字符串
如果为空或省略, 则默认仅对文件进行操作, 子目录不被递归. 否则, 请指定一个或更多的下列字母:
- D = 包含目录(文件夹).
- F = 包含文件. 如果同时省略 F 和 D, 则仅包含文件而不包括目录.
- R = 递归子文件夹, 以便其中包含的文件和文件夹在匹配 FilePattern时进行操作. 所有子文件夹都将被递归, 而不仅仅是那些名称匹配 FilePattern 的子文件夹. 如果省略 R, 则不包含子目录中的文件和目录.
错误处理
如果有文件更改失败, 则抛出 Error, 并且它的 Extra 属性设置为失败次数.
如果找到了文件, 则 A_LastError 会被设置为 0, 或上次失败后立即获得操作系统的 GetLastError() 函数的结果. 否则 A_LastError 包含了没有找到文件原因的错误码.
此函数无法改变文件的压缩状态.
FileGetAttrib, FileGetTime, FileSetTime, FileGetSize, FileGetVersion, 文件循环
示例
打开所有文件和目录的 "只读" 和 "隐藏" 属性(子目录不会被递归到).
FileSetAttrib "+RH", "C:\MyFiles\*.*", "DF" ; +RH 等同于 +R+H
切换单个文件夹的 "隐藏" 属性.
FileSetAttrib "^H", "C:\MyFiles"
关闭单个文件的 "只读" 属性并打开 "存档" 属性.
FileSetAttrib "-R+A", "C:\New Text File.txt"
递归 C 驱动器上的所有 .ini 文件并打开它们的 "存档" 属性.
FileSetAttrib "+A", "C:\*.ini", "R"
将 file2 的属性复制到 file1, 即添加 file2 有的属性, 删除 file2 没有的属性.
FileSetAttrib(FileGetAttrib(file2), file1)