Attrib - DOS/コマンドプロンプト コマンド一覧
ファイルの属性を変更します。
構文
attrib[.exe] [+R | -R] [+A | -A] [+S | -S] [+H | -H] [+O | -O] [+I | -I] [+X | -X] [+P | -P] [+U | -U] [<file-name>] [/S [/D]] [/L]
オプション一覧
+R, -R, +A, -A, +S, -S, +H, -H, +O, -O, +I, -I, +X, -X, +P, -P, +U, -U |
各属性を設定・解除します。+ はその属性を設定、- はその属性を解除します。
「+」または「-」のオプションを1つも指定しなかった場合は、上記表の文字を使って対象ファイル/ディレクトリの属性を表示します。 またファイルの属性を表示する際、以下の属性がある場合は追加でそれらも表示されます。
※ 「V」および「B」は現状「+」や「-」での属性変更はできない模様です。(Windows 11 22H2 時点) |
||||||||||||||||||||||||||
<file-name> | 属性を変更するファイルを指定します。省略すると現在のディレクトリ内のファイルすべてに対してコマンドを実行します(「+」や「-」の引数を指定しなかった場合はすべてのファイルの属性を表示し、属性変更の引数を指定した場合は一括で変更します)。 | ||||||||||||||||||||||||||
/S | 現在のディレクトリにあるすべてのファイルと、その中のすべてのサブディレクトリ中のファイルの属性を一括して変更します(変更しない場合は対象すべての属性を列挙します)。 | ||||||||||||||||||||||||||
/D | [Windows NT] 現在のディレクトリにあるサブディレクトリ自身の属性も一括して変更(または表示)します。/S オプションを付けた場合はさらにその中のサブディレクトリも対象になります。 | ||||||||||||||||||||||||||
/L | [Windows NT] <file-name> がシンボリックリンク(ジャンクションポイント)である場合、そのリンク自身に対する属性を変更します。指定しなかった場合はリンク先ファイル/ディレクトリの属性の表示・変更が行われます。 |
解説
Attribについて
Attribでは、ファイルの属性のうち「読み取り専用」「アーカイブ」「システム ファイル」「隠しファイル」「非インデックス対象」(NTFSファイルシステム他)などの変更を行うことができます。これらの属性の有無により、一部コマンドやMS-DOS、Windows上でファイルの扱いが変わるものもあります。例えば「隠しファイル」属性のあるファイルはDirコマンドやエクスプローラー上(表示する設定をしていない場合)で非表示になります。
[Windows NT系/XP以降] NTFSファイルシステムなどのアクセス制御リスト(ACL)はAttribでは扱いません。アクセス制御リストの変更を行う場合はCaclsコマンドやIcalcsコマンドを使います。
※ Attribでは「圧縮ファイル属性」「暗号化ファイル属性」「一時ファイル属性」は変更できません。
OneDrive関連属性
[Windows 10 1709 以降] OneDriveの「ファイル オンデマンド機能」に合わせ、Attribでも「P」(Pinned属性)と「U」(Unpinned属性)が利用できるようになっています。これらは以下の対応となっています。
- 「P」属性あり … 「このデバイス上で常に保持する」状態(エクスプローラーでは緑地に白色のチェックマークアイコン)
- 「U」属性あり … 「空き容量を増やす」指定がある状態(エクスプローラーでは雲のアイコン)
- 「P」「U」どちらもない … 「ローカルで利用可能」な状態(エクスプローラーでは白地に緑色のチェックマークアイコン)
※ 「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 Community Hub」(英語)などをご確認ください。
※ データの読み取りを行わない場合でも、「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上の共有データをローカルに保持され続けるようにする(容量不足でも削除されないようにする)ために管理者が実行する、といったことが考えられます。