Display or change file attributes. Find Filenames.
Syntax ATTRIB [ + attribute | - attribute ] [pathname] [/S [/D]] Key + : Turn an attribute ON - : Clear an attribute OFF pathname : Drive and/or filename e.g. C:\*.txt /S : Search the pathname including all subfolders. /D : Process folders as well attributes: R Read-only (1) A Archive (32) S System (4) H Hidden (2) extended attributes: E Encrypted
C Compressed (128:read-only)
I Not content-indexed
L Symbolic link/Junction (64:read-only)
N Normal (0: cannot be used for file selection)
O Offline
P Sparse file
T Temporary X No scrub file attribute (Windows 8+) V Integrity attribute (Windows 8+)
The numeric values can be used when changing attributes with VBS/WSH
If no attribute is specified attrib will return the current attribute settings. Used with just the /S option ATTRIB will quickly search
for a particular filename.
If a file has both the Hidden and System attributes set, you can clear both attributes only with a single ATTRIB command.
For example, to clear the Hidden and System attributes for the RECORD.TXT file, type:
ATTRIB -S -H RECORD.TXT
if a file has the System or Hidden attribute set, you must clear that attribute before you can change any other attributes.
You can use wildcards (? and *) with the pathname parameter to display or change the attributes for a group of files.
You can display or change some attributes for a directory/folder.
The Read-only attribute (R) does not apply to a folder. This is because a unlike a file, a folder object does not contain any content that can be edited. The Name of a folder can be changed but that is a rename operation not an edit of the contents.
On Windows Vista and greater, the Read-only attribute of a folder can be set or cleared in Windows Explorer as a fast method of setting/clearing the Read-only attribute of all files within the folder. It does not actually set the attribute on the folder itself.
To use ATTRIB with a directory, you must explicitly specify the directory name; you cannot use wildcards to work with directories.
e.g. The following command would affect only files, not directories: ATTRIB +H C:*.*
To hide the directory C:\SECRET, type the following:
ATTRIB +H C:\SECRET
The System attribute is used by Windows to determine that a folder is a special folder, such as My Documents, Favorites, Fonts, etc.
The Archive attribute (A) is used to mark files that have changed since they were previously backed up.
The (A) flag is automatically updated by Windows as the file is saved.
If the (A) flag is present - the file is new or has been changed since the last backup.
The MSBACKUP, RESTORE, and XCOPY commands use these Archive attributes, as do most 3rd party backup solutions.
File attributes can be read with fsutil usn readdata filename.ext
Constants - the following attribute values are returned by the GetFileAttributes function:
FILE_ATTRIBUTE_READONLY = 1 (0x1)
FILE_ATTRIBUTE_HIDDEN = 2 (0x2)
FILE_ATTRIBUTE_SYSTEM = 4 (0x4)
FILE_ATTRIBUTE_DIRECTORY = 16 (0x10)
FILE_ATTRIBUTE_ARCHIVE = 32 (0x20)
FILE_ATTRIBUTE_NORMAL = 128 (0x80)
FILE_ATTRIBUTE_TEMPORARY = 256 (0x100)
FILE_ATTRIBUTE_SPARSE_FILE = 512 (0x200)
FILE_ATTRIBUTE_REPARSE_POINT = 1024 (0x400)
FILE_ATTRIBUTE_COMPRESSED = 2048 (0x800)
FILE_ATTRIBUTE_OFFLINE = 4096 (0x1000)
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192 (0x2000)
FILE_ATTRIBUTE_ENCRYPTED = 16384 (0x4000)
For example, a file attribute of 0x120 indicates the Temporary + Archive attributes are set (0x100 + 0x20 = 0x120.)
An alternative way to display extended attributes is using FOR parameter attributes
DFSR will not replicate files if they have the temporary attribute set.
The temporary attribute can be removed by using PowerShell to subtract 0x100:
PS C:\> Get-childitem D:\Data -recurse | ForEach-Object -process {if (($_.attributes -band 0x100) -eq 0x100) {$_.attributes = ($_.attributes -band 0xFEFF)}}
"The moral sense of conscience is by far the most important.. it is the most noble of all the attributes of man" - Charles Darwin
Related:
CACLS - Change file permissions.
FSUTIL - File and Volume utilities.
Show superhidden file extensions.
Q326549 - Read-only & System attributes for folders.
Equivalent bash command (Linux): chmod - Change access permissions.