HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > ファイル操作 Tips メニュー

12.ファイルの属性を取得する

 
UPDATE:2007/12/21    
 



ファイルの属性を取得するもっとも簡単な方法は、Get-ChildItemコマンドレットを使用することです。

Get-ChidItemコマンドレットを実行すると サンプル1のような結果が得られるのですが、一番左側のMode列がファイルの属性を表しています。

意味は下記の通りです

d ディレクトリ
a アーカイブ
r 読み取り専用
h 隠しファイル
s システムファイル

sample1

PS C:\Work> Get-ChildItem


ディレクトリ: Microsoft.PowerShell.Core\FileSystem::C:\Work


Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 2007/11/09 11:02 ACS001
d---- 2007/08/28 14:53 ACS002
-a--- 2007/06/22 14:28 720788 BioClient.zip
-a--- 2007/09/10 10:00 302 compile.sql
-a--- 2007/08/02 15:40 436 result.xml

次に System.IO.FileAttributes を利用してファイル属性を取得してみましょう。(sample2)

New-Objectコマンドレットを使用してSystem.IO.FileAttributes オブジェクトを作成します(1)
次にファイル属性を調べたいファイルを指定します。(2)
変数に属性がセットされているので内容を確認します。(3)(4)

sample2

PS C:\Work> $fileattr = New-Object System.IO.FileAttributes                  ---(1)
PS C:\Work> $fileattr = [System.IO.File]::GetAttributes("C:\Work\Test.txt") ---(2)
PS C:\Work> $fileattr ---(3)
Archive ---(4)

上記を踏まえて属性を取得表示する関数を作成してみました。 sample3

sample3

function global:Get-FileAttributes()
{
Param([String]$filepath)

$fileattr = New-Object System.IO.FileAttributes
$fileattr = [System.IO.File]::GetAttributes($filepath)
Write-Host $fileattr
}

使用方法は、sample4のように

Get-FileAttributes "属性を調べたいファイル"

です。
必要に応じて、各自変更してお使いください。

sample4

PS C:\Work> Get-FileAttributes C:\Work\Test2.txt
ReadOnly, Hidden, Archive