LoginSignup
4
11

More than 1 year has passed since last update.

【PowerShell】ディレクトリ、ファイル調査

Last updated at Posted at 2019-03-13

ディレクトリ情報取得

ディレクトリの情報を調べるコマンドです。

ディレクトリ一覧取得

  • [-Filter] 引数に設定している文字列 "*" はワイルドカードです。
  • ディレクトリの場合、PSIsContainer は True になっています。
  • Attributes -eq "Directory"
## 調べたいフォルダにカレントディレクトリを変更
cd C:\Users\ishikawa\Documents

## ディレクトリ一覧取得(サブディレクトリ含まず)
Get-ChildItem -Filter * | Where-Object { $_.PSIsContainer }
### ↓↓↓ 省略した記述 ↓↓↓
dir * | ? PSIsContainer

### 一番短い記述
dir -Directory

## ディレクトリ一覧取得(サブディレクトリ含む)
Get-ChildItem -Filter * -Recurse | Where-Object { $_.PSIsContainer }
### ↓↓↓ 省略した記述 ↓↓↓
dir * -Recurse | ? PSIsContainer

### 一番短い記述
dir -Recurse -Directory

## ディレクトリ一覧を変数に格納 (型は省略可能)
$Path = "C:\Users\ishikawa\Documents"
[System.IO.DirectoryInfo[]] $dirs = dir $Path -Recurse -Directory

ファイル情報取得

ファイルの情報を調べるコマンドです。

ファイル一覧取得

  • [-Filter] 引数に設定している文字列 "*" はワイルドカードです。
  • ファイルの場合、PSIsContainer は False になっています。
  • Attributes -ne "Directory"
## 調べたいフォルダにカレントディレクトリを変更
cd C:\Users\ishikawa\Documents

## ファイル一覧取得(サブディレクトリ含まず)
Get-ChildItem -Filter * | Where-Object { !$_.PSIsContainer }
### ↓↓↓ 省略した記述 ↓↓↓
dir * | ? PSIsContainer -eq $false

### 一番短い記述
dir -File

## ファイル一覧取得(サブディレクトリ含む)
Get-ChildItem -Filter * -Recurse | Where-Object { !$_.PSIsContainer }
### ↓↓↓ 省略した記述 ↓↓↓
dir * -Recurse | ? PSIsContainer -eq $false

### 一番短い記述
dir -Recurse -File

## ファイル一覧を変数に格納 (型は省略可能)
$Path = "C:\Users\ishikawa\Documents"
[System.IO.FileInfo[]] $files = dir $Path -Recurse -File

ファイル一覧からの情報抽出

ファイル一覧を格納した変数を利用して情報を抽出します。

ファイル数取得

## ファイル数
($files | measure).Count

ファイル最終更新日の最大と最小

## ファイル最終更新日
dir -File -Recurse | measure LastWriteTime -Maximum -Minimum

ファイル拡張子の一覧取得

## 拡張子の一覧
$files | sort Extension -Unique | select Extension

ファイル一覧を CSV に出力

## ファイル一覧を CSV に出力
$files | select FullName, DirectoryName, Name, BaseName, Extension, Length, IsReadOnly, CreationTime, LastAccessTime, LastWriteTime | epcsv "Files.csv" -Encoding UTF8 -NoTypeInformation

フィルタを指定して検索

## フィルタを指定して検索
Get-ChildItem -Path 'C:\Users\admin\Pictures' -Filter *.jpg?

### 一番短い記述
dir C:\Users\admin\Pictures *.jpg?

複数の拡張子で絞り込む

## 複数の拡張子で絞り込む
dir C:\Users\admin\Pictures -File -Recurse -Include *.jpg, *.jpeg, *.png

参考サイト

4
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
11