このページの本文へ

前へ 1 2 次へ

Windows Info 第368回

PowerShellのコマンドの並びにある典型的なパターン

2023年02月26日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

PowerShellによるコマンドの並びには典型的なパターンがある
何かしたいときはパターンを考えることで見通しがたつ

 PowerShellの人気は今ひとつ。コマンドの数は多いし、プログラミング言語的な要素がありすぎて理解が困難という話も聞く。筆者も面倒になると、いまだにcmd.exeを起動することがある。しかし、仕事などで、どうしても使わざるを得ない人もいるだろう。ただ、PowerShellでないとできない作業もある。PowerShellを使うかどうかは個人の自由で、筆者としてもPowerShellを普及させようなどとは思っているわけではない。しかし、使わざるを得ない人を多少なりとも手助けできればと考えている。

 これまで筆者がPowerShellを使ってきて、少しわかったことがある。基本的な使い方としては、シェルであることを踏まえて、コマンドをパイプでつなげて並べ、プログラム(スクリプト)を書かないようにすることだ。コマンドの並びとプログラムは同じようだが、基本的な考え方が違う。プログラミング的な発想をすると、どうしてもコマンドとしては面倒なものになってしまう。プログラムが書ける人の場合、PowerShell理解の最初の山は、ここを抜け出せるかどうかにかかっている。

 2つ目として、PowerShellによるコマンドの並びには、典型的なパターンがあり、大抵はこのパターンでなんとかなる。イメージ的には、英語の文型のようなものだ。PowerShellで何かをしたいときは、パターンを考えることでどうすればいいのかがある程度見通せるようになる。

 英語の文型ではないが、パターンは以下の表のような要素で記述する。このうちパイプ記号「|」は、コマンド同士をつなぎ合わせるための記号である。コマンドをパイプ記号でつなぐことで、パイプ左側(前段)のコマンドが出力するオブジェクトがパイプ左側(後段)に渡される。

 前掲の表中、「%」で示すForeach-Objectは、

●Foreach-Object
 https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/foreach-object?view=powershell-7.3

 Where-Object(エイリアスは「?」)については、

●Where-Object
 https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.core/where-object?view=powershell-7.3

に解説がある。

S | Cパターン

 一番簡単なパターンが、何らかの情報が含まれたオブジェクトを出力するコマンド(ソースコマンド「S」)と、それを処理するコマンド(コマンド「C」)を組み合わせたパターンだ。

 「S」は、得たい情報に応じたコマンドを使うが、たとえば、ファイルやフォルダならば「Get-ChildItem」を使う。この「Get-ChildItem」には、コマンドを略した「gci」、cmd.exeのコマンドと同じ「dir」などのエイリアス(別名)が割り当てられている。たとえば、カレントディレクトリのファイルをサイズ順に並べたければ、

dir -File | sort Length

とする。パイプ左側の「dir -File」コマンドが「S」(ソースコマンド)で、これがカレントディレクトリにあるファイル情報のオブジェクトを作り出す。パイプ右側は、ファイル情報オブジェクトが持つLength(ファイルサイズ)プロパティで並べ替え(Sort-Objectコマンド、エイリアスは「sort」)するものだ。

 最初のコマンドに「-File」オブションが付いているのは、ファイルだけを出力してディレクトリを出力しないためである。PowerShellのコマンドは大量のオブジェクトを出すものが多い。コマンドの実行時間を短縮して、画面出力を必要最小限にするには、ソースコマンドのオプションを使って、必要なオブジェクトだけを出すようにする。これがなくても動作するが、エクスプローラーの並びのように先頭にディレクトリが並んでしまう。ディレクトリにはLengthプロパティがなく、ソートではLengthがゼロと評価されるからだ。

 いきなりこういう話だと「Length」ってどこから出てくるの? と疑問を持つかもしれない。これは、dirコマンドの出力オブジェクトが持つプロパティの1つ。

 そんなの、どうやって知ることができるのか? と思う場合には、以下のパターンで、コマンドからどんなオブジェクトが出力されて、どんなプロパティ(Property)やメソッド(Method)があるのかを調べることができる。

Get-Member(エイリアスは「gm」)を使うと、ソースコマンドが出力するオブジェクトの名前(TypeName)やメンバ(プロパティ、メソッド)を表示できる。メンバが判明すれば、後続のコマンドでプロパティを参照して処理が行える。プロパティの詳細などは、TypeNameをインターネット検索してMicrosoftの.NETの文書を参照する

 「dir -File」コマンドの出力を調べるには、以下のようにする。

dir -File | gm

 gmは、Get-Memberコマンドのエイリアス。このパターンは、結構使うので覚えて損はない。このコマンドで「dir -File」が出力するのはSystem.IO.FileInfo(ファイルの情報)オブジェクトである。

 Lengthは、System.IO.FileInfoにあるプロパティでファイルのサイズを表わす。なお、このオブジェクトは.NETのものだが、インターネット検索すると、ほぼ間違いなく先頭付近にMicrosoftのページがヒットするのでこれを見る。

 このS|Cパターンでは、後ろのCの部分にもいくつかのパターンがある。PowerShellのコマンドには、ソースコマンドにはならず、2つ目以降の「C」で使うことを想定したものがある。その中で比較的よく使うのが、次の表のパターンだ。

 ソースコマンドに対応するコマンドは多数あるので、最初のうちは、必要なものを、コマンド検索(後述)、インターネット検索で調べる。たとえば「PowerShellで××を調べる」などでインターネット検索して見つけたものを使えば良い。多数あるものを覚えようなんて気は起こさないほうが無難である。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事
1
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK MU937 超軽量 薄型ノートPC■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第七世代 Celeron/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥19,800
2
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動14.1時間 重量1.39kg ルナグレー 83K00072JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動14.1時間 重量1.39kg ルナグレー 83K00072JP ノートPC
¥107,800
3
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
【整備済み品】中古 ノートパソコン NEC VersaPro VKT16/15.6型・第8世代Core i5-8250U(最大動作3.4GHz)/快適メモリ8GB/ 高速SSD 256GB/Win11 Pro/MS Office 2019付属/テンキー付, Webカメラ, USB3.0, HDMI, VGA, 有線LAN, WIFI内蔵, Bluetooth/ACアダプター付属/180日間保証
¥26,880
4
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,979
5
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
HP ノートパソコン 15-fd 15.6インチ インテル Core Ultra 5 125H メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M7PA-AAAF)
¥134,377

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
【Amazon.co.jp限定】バッファロー microSD 32GB 100MB/s UHS-1 U1 microSDHC【 Nintendo Switch 対応 】V10 A1 IPX7 Full HD RMSD-032U11HA/N
¥980
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥5,280
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥5,545
9
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
バッファロー SDカード 128GB 100MB/s UHS-1 スピードクラス1 VideoSpeedClass10 IPX7 Full HD データ復旧サービス対応 RSDC-128U11HA/N
¥1,980
10
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
バッファロー USBメモリ 32GB USB3.2(Gen1)/3.1(Gen 1)/3.0/2.0 充実サポート RUF3-K32GA-BK/N
¥880

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン