PowerShellは、Windows環境での自動化や管理作業を効率化するために非常に強力なツールです。その中でもよく使われるコマンドのひとつがGet-Item
です。Get-Item
を使うことで、ファイルやフォルダ、レジストリキーなど、さまざまなアイテムの詳細情報を取得することができます。本記事では、Get-Item
コマンドの基本的な使い方から、具体的な使用例、よくあるエラーの対処法まで、わかりやすく丁寧に解説していきます。PowerShell初心者の方はもちろん、復習したい中級者の方にも役立つ内容となっています。
Get-Itemとは何か?
Get-Item
は、PowerShellでファイルシステム上のファイル、ディレクトリ、レジストリキーなどの「アイテム」の情報を取得するためのコマンドレットです。使い方はシンプルで、基本的には対象のパスを指定するだけでアイテムの詳細情報が表示されます。
このコマンドは、アイテムそのもの(例えばファイルやフォルダなど)に関する情報を取得しますが、アイテムの中身(ファイルの内容やディレクトリ内のファイル一覧など)を取得するには別のコマンド(Get-Content
やGet-ChildItem
)を使用する必要があります。
基本的な使い方
Get-Item
の構文は以下のようになります。
Get-Item [-Path] <string>
例1:ファイルの詳細を取得する
Get-Item "C:\Users\username\Documents\example.txt"
このコマンドを実行すると、指定したファイルの名前、サイズ、作成日時、更新日時などの情報が表示されます。
例2:フォルダの情報を取得する
Get-Item "C:\Users\username\Documents"
ファイルだけでなく、フォルダも同じように情報取得が可能です。DirectoryInfo
オブジェクトとして、フォルダの詳細が得られます。
出力される情報の内容
Get-Item
コマンドで取得できる主なプロパティは以下の通りです。
プロパティ名 | 内容 |
---|---|
Name | アイテムの名前 |
FullName | 完全なパス |
Length | ファイルサイズ(バイト)※ファイルの場合のみ |
CreationTime | 作成日時 |
LastWriteTime | 最終更新日時 |
Attributes | 属性(ReadOnly, Hiddenなど) |
たとえば、以下のようにオブジェクトのプロパティを個別に参照することも可能です。
$item = Get-Item "C:\Users\username\Documents\example.txt"
$item.Length
$item.CreationTime
ワイルドカードを使った指定は不可?
注意点として、Get-Item
ではワイルドカード(*
や?
)は使用できません。例えば、以下のような使い方はエラーになります。
Get-Item "C:\Users\username\Documents\*.txt"
このような使い方をしたい場合は、代わりにGet-ChildItem
コマンドレットを使用します。
Get-ChildItem "C:\Users\username\Documents\*.txt"
パイプラインと組み合わせる活用法
Get-Item
は他のコマンドレットと組み合わせることで、より柔軟な操作が可能です。例えば、ファイルの属性を変更する場合などに利用されます。
例:ファイルを読み取り専用にする
Get-Item "C:\test\sample.txt" | ForEach-Object { $_.IsReadOnly = $true }
このようにパイプラインを使えば、取得したアイテムをそのまま操作対象として利用することができます。
エラーが出る場合の対処法
Get-Item
を使っていると、以下のようなエラーに遭遇することがあります。
エラー例1:パスが存在しない
Get-Item : パス 'C:\No\Such\Path.txt' が存在しません。
このエラーは指定したパスが間違っているか、存在しないことを示しています。パスの入力ミスがないか確認しましょう。
エラー例2:アクセス権がない
Get-Item : アクセスが拒否されました。
この場合は、対象のファイルやフォルダに対するアクセス権限がない可能性があります。管理者としてPowerShellを実行するか、アクセス権を見直す必要があります。
他のコマンドレットとの違い
Get-ChildItemとの違い
Get-Item
は指定されたパスの「1つのアイテム」を対象とするのに対し、Get-ChildItem
はディレクトリ内の複数のアイテムを一覧表示する用途で使用されます。
Get-Item "C:\test" # testフォルダ自体の情報
Get-ChildItem "C:\test" # testフォルダ内のアイテム一覧
Get-Contentとの違い
Get-Item
がファイルの「属性」を取得するのに対し、Get-Content
はファイルの「中身」を読み取るコマンドです。
Get-Content "C:\test\sample.txt" # ファイルの内容を表示
Get-Itemの応用例
例:アイテムの存在確認(Try-Catch構文)
ファイルが存在するかどうかを確認したいときにもGet-Item
は役立ちます。
try {
$item = Get-Item "C:\test\sample.txt"
Write-Host "ファイルは存在します。"
} catch {
Write-Host "ファイルが存在しません。"
}
例:ファイルの最終更新日を比較
更新日時を取得して、一定期間内に変更されたかどうかを調べることも可能です。
$item = Get-Item "C:\test\sample.txt"
if ($item.LastWriteTime -gt (Get-Date).AddDays(-7)) {
Write-Host "1週間以内に更新されています。"
} else {
Write-Host "1週間以上前に更新されました。"
}
まとめ
Get-Item
は、PowerShellにおいて非常に基本的かつ重要なコマンドレットです。ファイルやフォルダの属性情報を取得するための手段として、日々の業務自動化や管理作業に役立ちます。本記事で紹介した基本的な使い方や応用例を押さえておけば、PowerShellスクリプトの幅がぐっと広がります。
ワイルドカードが使えない点など注意点もありますが、Get-ChildItem
などと併用することで柔軟な対応が可能です。今後、さらにPowerShellスキルを深めたい方は、Set-Item
やRemove-Item
などの関連コマンドレットも併せて学習してみてください。