環境
- Powershell v5.1
- Windows 10
読み取り専用かどうかを調べる
Get-ChildItem
(またはdir
)コマンドでModeがr
になっているものが読み取り専用です。
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 2018/03/09 12:34 2 memo.txt
読み取り専用にする
読み取り専用にするにはIsReadOnly
をtrue
にします。
Set-ItemProperty memo.txt -Name IsReadOnly -Value $true
読み取り専用を解除するには$true
を$false
にします。
複数のファイルを変更
ワイルドカードを使ってディレクトリ配下のファイルを一括で変更できます。
Set-ItemProperty .\* -Name IsReadOnly -Value $true
ただし、ディレクトリには読み取り専用属性が存在しません。変更対象にディレクトリが含まれている場合は下記のエラーメッセージが表示されます。
Set-ItemProperty : プロパティ bool IsReadOnly=False が存在しないか、見つかりませんでした。
このような場合は、ファイルだけをリストして変更します。
Get-ChildItem -File | Set-ItemProperty -Name IsReadOnly -Value $true
サブディレクトリに含まれるファイルすべてを対象にしたい場合は-Recurse
をつけます。
Get-ChildItem -File -Recurse | Set-ItemProperty -Name IsReadOnly -Value $true