ファイル属性を変更する方法
現在のWindows 11でファイル属性を変更するには、いくつか方法がある。それぞれ設定が可能なファイル属性の種類が異なり、どれを使っても同じ結果が得られるとは限らない。
ファイル属性を変更する方法には、以下の3つがある。
Set-ItemProperty、Get-ItemPropertyコマンド(PowerShell)
attrib.exe(cmd.exe)
エクスプローラー
現在の標準コマンドライン・インタプリタであるWindows PowerShell(およびPowerShell)では、Set-ItemProperty、Get-ItemPropertyコマンドを使ってファイル属性を設定する。
ただし、Set-ItemPropertyコマンドでは、先ほどの表のFileAttributes列にある5つのファイル属性(Archive、Hidden、Normal、ReadOnly、System)しか設定できない。
基本的な構文は、
Set-ItemProperty -Name Attributes -Value "Hidden,System" -Path .\test.txt
である。-Valueオプションに文字列として4つの属性を指定する。複数指定したいときには、カンマでつなげる。
ただし、Set-ItemPropertyは、ファイル属性を個別に指定してオフにすることができないため、ファイル属性がまったく指定されていない状態を表す「Normal」を使う。これですべての属性をオフにして、必要に応じて他の属性を設定する。このあたりを見るに、コマンドの設計を失敗している感じがある。後述するattrib.exeを使った方が簡単である。
Get-ItemPropertyで対応外のファイル属性が含まれているとき、表示はファイル属性を数値で表示する。なお、表示だけなら、Get-ChildItem(エイリアスはdir)やGet-Itemコマンドでもできる。このコマンドで得られたFileInfoオブジェクトに対して、Attributesプロパティを表示させればよい。
attrib.exe(https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/attrib)は、MS-DOS時代からあるファイル属性を設定、表示するコマンドである。属性を変更する場合、属性を表すアルファベット1文字に「+」(オン、設定)、「-」(オフ、解除)を付けて、対象へのパスを記述する。
ATTRIB [+<属性文字> | -<属性文字>]……[パス] [/S [/D]] [/L]
PowerShell内でも、属性の指定は、attribコマンドを使った方が便利だ。
エクスプローラーは、簡易なファイル属性指定ができるが、前記2つのコマンドでは、設定できないOneDrive関連のファイル属性を右クリックメニューから指定できる。
属性指定は、ファイルを選択しそのプロパティを開いてする。指定可能なのは「読み取り専用」「隠しファイル」「アーカイブ対象」「圧縮」「インデックス作成」「暗号化」の6つである。
エクスプローラーでファイルを選び右クリックメニューからプロパティを表示させる。「全般」タブに「属性」があり、読み取り専用、隠しファイルの指定が可能。さらに詳細設定ボタンでアーカイブ属性、インデックス属性、圧縮、暗号化が指定できる
言語からファイル属性を扱う
コンピュータ言語からファイル属性を扱うには、以下の2つのAPIがある。
Win32API:GetFileInformationByHandleEx、SetFileInformationByHandle
.NET:GetAttributes、SetAttributesメソッド(System.IO.Fileクラス)
これらは、なんらかのコンピュータ言語から呼び出す必要があるが、言語によっては、コマンドラインから呼び出すことも可能だ。たとえば、.NETのGetAttributes、SetAttributesメソッドは、コマンドラインでPowerShellから呼び出すことができる。
たとえば、
[System.IO.File]::SetAttributes(<フルパス>,
([System.IO.FileAttributes]::ReadOnly -bor [System.IO.FileAttributes]::Hidden ))
とする。「[System.IO.FileAttributes]」に関しては冒頭の表を参照してほしい。APIを使うメリットは、コマンドやGUIでは扱えないファイル属性を利用できる点にある。
ファイル属性は、読み取り専用や隠しファイルといった簡単なものだけで使われていたが、OneDriveの導入などで多数のファイル属性が導入されて、数が増えている。

この連載の記事
-
第508回
PC
Scalable Vector Graphics(SVG)そもそも何なのか? -
第507回
PC
Windows 11の「開発者モード」とは何か? -
第506回
PC
Windows 11は早くも来秋登場の26H2プレビューの準備が始まる -
第505回
PC
結構変化しているWindows 11のエクスプローラーの基本設定を見直す -
第504回
PC
新しいOutlookとOutlook Classic、そろそろ古いOutlookとExchangeの組み合わせは引退の頃合いか -
第503回
PC
機能が増えたこともあり、寄せ集めから統合化に進むWindowsの便利ツール「PowerToys」 -
第502回
PC
Windows 11でBluetoothのオーディオ新規格「Bluetooth LE Audio」を試す -
第501回
PC
Windows 11 Ver.25H2での変更点、新機能を整理する -
第500回
PC
Windows 11 Ver.25H2が完成した -
第499回
PC
Windowsでの致命的だが回復可能なエラーに備える手段を2つ紹介 -
第498回
PC
Windows Terminalの安定版V1.23が公開 設定UIが改良される - この連載の一覧へ











