#author("2019-12-20T20:50:57+09:00","","")
#navi(../)
* PowerShellで読み取り専用(リードオンリー)になっているファイル一覧を取得する [#qc921179]
「読み取り専用にしたファイルどれだっけ?困ったなぁ…」となった方、この記事が参考になるかもしれません。~
Get-ChildItemコマンドレットで返却されるFileInfoのIsReadOnlyプロパティで簡単に読み取り専用の(Read Only)ファイル一覧を取得できます。~
コマンドプロンプト版も公開しています。
-[[コマンドで読み取り専用(リードオンリー)になっているファイル一覧を取得する>コマンドプロンプト/読み取り専用になっているファイル一覧の取得]]

#htmlinsert(win-top.html)
#contents

* 参考記事 [#f3996a78]
-[[Microsoft|.NET FileInfo クラス>https://docs.microsoft.com/ja-jp/dotnet/api/system.io.fileinfo?view=netframework-4.8]]

* 関連記事 [#d13562d8]
-[[コマンドで読み取り専用(リードオンリー)になっているファイル一覧を取得する>コマンドプロンプト/読み取り専用になっているファイル一覧の取得]]

* 使用環境 [#ja1ccb5a]
-Windows 10 ver.1909
-PowerShellバージョン
 PS C:\> $PSVersionTable.PSVersion                                                                                       
 Major  Minor  Build  Revision
 -----  -----  -----  --------
 5      1      18362  145

* テストに使用したファイル群 [#nf842f25]
以下のようなサブフォルダがあるファイル群を作成しました。~

 D:\>tree /F /A ROtest
 フォルダー パスの一覧:  ボリューム SD32GB
 ボリューム シリアル番号は 8888-7777 です
 D:\ROTEST
 |   a.txt
 |   b.txt
 |   c.txt
 |
 \---d
         d1.txt
         d2.txt
         d3.txt

読み取り専用になっているファイルは、以下の出力に ''r'' がついている a.txt と d2.txt になります。
 PS D:\ROtest> Get-ChildItem -Path . -Recurse *
 
     ディレクトリ: D:\ROtest
 
 
 Mode                LastWriteTime         Length Name
 ----                -------------         ------ ----
 d-----       2019/12/20     20:17                d
 -ar---       2019/12/20     20:17              8 a.txt
 -a----       2019/12/20     20:17              8 b.txt
 -a----       2019/12/20     20:17              8 c.txt
 
     ディレクトリ: D:\ROtest\d
 
 Mode                LastWriteTime         Length Name
 ----                -------------         ------ ----
 -a----       2019/12/20     20:17             10 d1.txt
 -ar---       2019/12/20     20:17             10 d2.txt
 -a----       2019/12/20     20:17             10 d3.txt

* PowerShellで読み取り専用(リードオンリー)ファイル一覧を取得する [#x24cf322]
以下のスクリプトで読み取り専用ファイルの一覧を取得することができます。~
$_.(FileInfoオブジェクト)の''Name''プロパティでファイル名を表示しています。
 PS D:\ROtest> Get-ChildItem -Path . -Recurse | % { if ($_.IsReadOnly) { $_.Name } }
 a.txt
 d2.txt
フルパスで表示したい場合は、FileInfoクラスの''FullName''プロパティを使います。
 PS D:\ROtest> Get-ChildItem -Path . -Recurse | % { if ($_.IsReadOnly) { $_.FullName } }
 D:\ROtest\a.txt
 D:\ROtest\d\d2.txt

以上、PowerShellで読み取り専用(Read Only)のファイル一覧を取得する方法でした。

#htmlinsert(win-btm.html)


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS