PowerShellでファイル属性操作
- 「読み取り専用」や「隠しファイル」の設定
Set-ItemProperty
は使わないほうが楽- 属性の実体は数値。ビット演算で求める
- 文字でキャストする方法もある
- attrib.exe を使ったほうが簡単
属性の取得
$item = gi .\file.txt $item.Attributes # Archive [int]$item.Attributes #32
属性の設定
入力補完が効くけど長い
$item.Attributes = [System.IO.FileAttributes]::Hidden -bor [System.IO.FileAttributes]::Archive
短いけど入力補完が無い
$item.Attributes = "Hidden, System, Archive" $item.Attributes = @("Hidden", "System", "Archive")
属性の追加と削除
bor/bxor = binary + or/xor でビット演算
Hiddenを追加
$item.Attributes = $item.Attributes, "Hidden" $item.Attributes = $item.Attributes -bor "Hidden" $item.Attributes = $item.Attributes -bor [System.IO.FileAttributes]::Hidden
Hiddenを削除
$item.Attributes = $item.Attributes -bxor "Hidden"