Programming Field

DOS コマンド一覧

Attrib

スポンサーリンク

ファイルの属性を変更します。

構文

attrib[.exe] [+R | -R] [+A | -A] [+S | -S] [+H | -H]
    [+I | -I] [+V | -V] [+X | -X] [+P | -P] [+U | -U]
    [<file-name>] [/S [/D]] [/L]
+R, -R, +A, -A, +S, -S, +H, -H, +I, -I, +V, -V, +X, -X, +P, -P, +U, -U
各属性を設定・解除します。+ はその属性を設定、- はその属性を解除します。
R読み取り専用属性です。これがあると上書き保存できません。また、Delコマンドでの削除もできなくなります([Windows NT] /F スイッチを使った場合を除く)。
Aアーカイブ属性です。バックアップ アプリケーションの一部は、この属性のついたファイルをバックアップします。
Sシステム ファイル属性です。システムのファイルとして、いろいろなアクセスが厳重になります。例えば、システム ファイル属性のついたファイルは、この属性を解除するまで他の属性を変更できません。また、Dirコマンドなどで、特別なオプションをつけない限り、この属性を持つファイルは表示されません。Windowsではこの属性があると、Explorer上では表示されますが隠しファイル属性を変更できません。
H隠しファイル属性です。Dirコマンドなどで、特別なオプションをつけない限り、この属性を持つファイルは表示されません。Windows エクスプローラでは、表示されても半透明で表示されます。
I[NTFSファイルシステム] 非インデックス対象属性です。インデックス機能(ファイル検索を高速にするための機能)が有効になっている場合でも、この属性があるファイルのコンテンツ(中身)に対してはインデックスの対象から外します。
V[ReFSファイルシステム] 整合性ストリーム(整合性属性)です。ファイルに対しコピーオンライト(Copy on Write; COW; Allocate on Writeとも)が働くようにする場合にこの属性を指定します。
X[NTFS/ReFSファイルシステム] スクラブ処理対象外属性です。「記憶域スペース」上のファイルに対して有効であり、バックグラウンドで行われる整合性チェック(スクラブ処理)において、この属性の付いたファイルについてはチェック対象外とします。
P[Windows 10 1709 以降] [NTFSファイルシステム] OneDriveで共有する際、「このデバイス上で常に保持する」かどうかを示します(後述)。ディレクトリに指定した場合は、その中のファイルに対する既定値として扱われます(中に存在するファイルとは独立しています)。OneDriveで共有されるファイル/ディレクトリに対してのみ有効です。また、「P」と「U」は同時に指定できません。
U[Windows 10 1709 以降] [NTFSファイルシステム] OneDriveで共有する際、「空き容量を増やす」という指定がなされているかを示します(後述)。OneDriveで共有されるファイル/ディレクトリに対してのみ有効です。
<file-name>
属性を変更するファイルを指定します。
/S
現在のディレクトリにあるすべてのファイルと、その中のすべてのサブディレクトリ中のファイルの属性を一括して変更します。
/D
[Windows NT] ディレクトリ自身の属性も一括して変更します (/S と共に使用)。
/L
[Windows NT] <file-name> がシンボリックリンク(ジャンクションポイント)である場合、そのリンク自身に対する属性を変更します。指定しなかった場合はリンク先ファイル/ディレクトリの属性の表示・変更が行われます。

※引数にファイル名のみ指定すると、現在の属性が表示されます。また、ファイル名を省略すると現在のディレクトリ内のファイルすべてに対してコマンドを実行します(何も引数を指定しなかった場合はすべてのファイルの属性を表示し、属性変更の引数を指定した場合は一括で変更します)。

解説

Attribでは、ファイルの属性のうち「読み取り専用」「アーカイブ」「システム ファイル」「隠しファイル」「非インデックス対象」(NTFSファイルシステム他)などの変更を行うことができます。これらの属性の有無により、一部コマンドやMS-DOS、Windows上でファイルの扱いが変わるものもあります。

[Windows NT] NTFSファイルシステムなどのアクセス制御リスト(ACL)の変更を行う場合はCaclsコマンドやIcalcsコマンドを使います。

※ Attribでは「圧縮ファイル属性」「暗号化ファイル属性」「一時ファイル属性」「オフラインファイル属性」は変更できません。

[Windows 10 1709 以降] OneDriveの「ファイル オンデマンド機能」に合わせ、Attribでも「P」(Pinned属性)と「U」(Unpinned属性)が利用できるようになっています。これらは以下の対応となっています。

※ 「P」と「U」同時に指定することはできません。

「U」属性がある場合は、ファイルのデータをダウンロードしていない状態を示し、オンライン状態でそのファイルを開こうとするとダウンロードが行われて「U」属性が外れます。「U」属性の付いたファイルはローカルにデータが無いため、オフライン状態ではファイル検索でデータの検索を行うことができず、データを読み取ろうとすると失敗します。

「U」属性がないファイルはデータがダウンロード済み(同期済み)であり、ローカルで利用可能な状態になっていることを示します。前述の通り、「U」属性のあるファイルをオンライン状態で開こうとするとデータのダウンロードが行われ、「U」属性が外れます。また、この状態のファイルはオンライン時に常にデータの同期が行われます。

「P」属性のあるファイルは「U」属性のないファイルと同様、ローカルにダウンロード済みで利用可能な状態になっていますが、それに加えて、「P」は「ピン留め」の意味を持っているため、常にローカルに保持されるようになります。これは、「P」属性のないファイルが必要に応じてディスク上のデータのみが消去されて「U」属性のファイルになる可能性がある、ということを示しています(ファイルそのものは削除されません)。そのため、常にローカルで利用できるようにしたい場合は「P」属性が付与される状態にしておくことが良いと考えられます。

※ 「必要に応じでデータのみが削除される」という処理は「ディスクの容量が少なくなってきたとき」に行われるようですが、実際にその処理が行われるかどうかは未確認です。詳細は「Files on demand - difference in 'locally available' and 'always available' files - Microsoft Tech Community」(英語)などをご確認ください。
※ データの読み取りを行わない場合でも、「U」属性を外したタイミングでデータのダウンロードが行われます。

なお、「ファイル オンデマンド機能」を有効にしていない場合は上記属性は無視され(指定することはできますが意味がありません)、オンライン状態であるときには常にファイル/フォルダーの同期が行われます。

サンプル1
attrib +R +H +S c:\command.com

c:\command.com に読み取り専用、隠しファイル、システム ファイルの属性を設定します (最も重要なファイルによく付けられます)。

サンプル2
attrib -H -S c:\hoge.foo

c:\hoge.foo から隠しファイル、システム ファイルの属性を削除します。DOS上/コマンドプロンプト上では隠しファイルやシステム ファイルを操作しようとすると「ファイルが見つかりません」となるので、操作するときは必ずこのコマンドが必要です。

サンプル3
attrib +A D:\MyDocs\*.* /S
attrib -A D:\MyDocs\*.bak /S
attrib -A D:\MyDocs\*.tmp /S
xcopy D:\MyDocs E:\Backup\MyDocs\ /E /M

「D:\MyDocs」内のすべてのファイルに「アーカイブ属性」を設定した後、拡張子が「bak」と「tmp」のファイルのみアーカイブ属性を外します。その上でXcopyプログラムを使いアーカイブ属性の付いたファイルすべてを「E:\Backup\MyDocs」内にコピーします。なお、Xcopyの/Mスイッチにより、コピーされたファイルのコピー元ファイルはアーカイブ属性が外れます(コピー先はそのまま)。

サンプル4
attrib -P +U P:\Data\Logs /S

[Windows 10 1709 以降] OneDriveで共有されたディレクトリ「P:\Data\Logs」とその中のファイルすべてをUnpinned属性とします。データがクラウド上にあり、ローカルで保持しておく必要がない場合にディスクの容量を節約する目的で指定します。

サンプル5
attrib +P -U P:\Data\Lists /S

[Windows 10 1709 以降] 上記とは逆に、OneDriveで共有されたディレクトリ「P:\Data\Lists」とその中のファイルすべてをPinned属性とします。ダウンロード済みのデータが自動的にUnpinned状態・データが利用できない状態にならないようにマークし、オフラインでも常に利用可能にする目的で指定します。例として、管理された複数のモバイルPCにOneDrive上の共有データをローカルに保持され続けるようにする(容量不足でも削除されないようにする)ために管理者が実行する、といったことが考えられます。