Display or change file attributes.

      ATTRIB [ + attribute | - attribute ] [pathname] [/S [/D]] [/L]

     +    : 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
    /L    : Work on the attributes of the symbolic link versus the target of the Symbolic link.

        R  Read-only (1)
        A  Archive (32)
        S  System (4)
        H  Hidden (2)

   extended attributes:
        B  SMB Blob Attribute (Windows 10)
        E  Encrypted
C Compressed (128:read-only)
I Not content-indexed

N Normal (0: cannot be used for file selection)
O Offline
P Sparse file
T Temporary X No scrub file attribute (Windows 8+) U Unpinned Attribute (Windows 10) 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.

Hidden and System attributes take priority.

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:

If a file has the System or Hidden attribute set, you must clear that attribute before you can change any other attributes with ATTRIB.


You can use wildcards (? and *) with the pathname parameter to display or change the attributes for a group of files.

Directory Attributes

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:


The System attribute is used by Windows to determine that a folder is a special folder, such as My Documents, Favorites, Fonts, etc.

View Archive attribute

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.

Extended Attributes

Extended Attributes are only available on NTFS volumes. File attributes can be read with FSUTIL usn readdata filename.ext

Constants - the following attribute values are returned by the GetFileAttributes function:

Attribute Constant Dec Hex
Read-only file. Applications can read the file, but cannot write to it or delete it. This attribute is not honored on directories. FILE_ATTRIBUTE_READONLY
1 0x1
Hidden. The file or directory is hidden. It is not included in an ordinary directory listing. FILE_ATTRIBUTE_HIDDEN
2 0x2
System. A file or directory that the operating system uses a part of, or uses exclusively. FILE_ATTRIBUTE_SYSTEM
4 0x4
Directory. The handle that identifies a directory. FILE_ATTRIBUTE_DIRECTORY
16 0x10
Archive. A file or directory that is an archive file or directory. Applications typically use this attribute to mark files for backup or removal . FILE_ATTRIBUTE_ARCHIVE
32 0x20
Device. This value is reserved for system use. FILE_ATTRIBUTE_DEVICE 64 0x40
Normal. A file that does not have other attributes set. This pseudo attribute is considered to be set if all other attributes (including the extended attributes) are reset. FILE_ATTRIBUTE_NORMAL 128 0x80
Temporary. A file that is being used for temporary storage. The OS will prefer cache memory for files marked as temporary. FILE_ATTRIBUTE_TEMPORARY 256 0x100
512 0x200
Reparse point. A file or directory that has an associated reparse point, or a file that is a symbolic link. FILE_ATTRIBUTE_REPARSE_POINT
1024 0x400
Compressed file or directory that is compressed. For a file, all of the data in the file is compressed. For a directory, compression is the default for newly created files and subdirectories. FILE_ATTRIBUTE_COMPRESSED
2048 0x800
Offline. The data of a file is not available immediately. This attribute indicates that the file data is physically moved to offline storage. This attribute is used by Remote Storage, which is the hierarchical storage management software. Applications should not arbitrarily change this attribute. FILE_ATTRIBUTE_OFFLINE
4096 0x1000
Not Indexed. The file or directory is not to be indexed by the content indexing service. FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
8192 0x2000
Encrypted file or directory. For a file, all data streams in the file are encrypted. For a directory, encryption is the default for newly created files and subdirectories. FILE_ATTRIBUTE_ENCRYPTED 16384 0x4000
Integrity. The directory or user data stream is configured with integrity (only supported on ReFS volumes). FILE_ATTRIBUTE_INTEGRITY_STREAM 32768 0x8000
Virtual. This value is reserved for system use. FILE_ATTRIBUTE_VIRTUAL 65536 0x10000
No Scrub. The user data stream not to be read by the background data integrity scanner (AKA scrubber). When set on a directory it only provides inheritance. This flag is only supported on Storage Spaces and ReFS volumes. It is not included in an ordinary directory listing. FILE_ATTRIBUTE_NO_SCRUB_DATA 131072 0x20000

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


CACLS - Change file permissions.
FSUTIL - File and Volume utilities.
Show superhidden file extensions.
Q326549 - Read-only & System attributes for folders.
PowerShell equivalent: Get-ItemProperty / Set-ItemProperty - Example script
Equivalent bash command (Linux): chmod - Change access permissions.

Copyright © 1999-2020
Some rights reserved