PowerShell Cmdlet 基礎

Cmdlet(発音は "command-let" に類似)は PowerShell における基本コマンド単位であり、Microsoft が .NET フレームワークに基づいて実装した小さなコマンドです。

Cmdlet は従来のシェルにおける外部プログラムとは異なります。例えば.exe 或 .batファイルなどではなく、PowerShell ランタイム環境に組み込まれています。

各 Cmdlet は、データの取得、プロパティの設定、オブジェクトの作成、ファイルのエクスポートなど、特定のタスクを1つ実行します。

Cmdlet の命名規則:動詞-名詞

PowerShell のすべての Cmdlet の命名は統一された"動詞-名詞"形式に従っています。例:

  • Get-Process:プロセス情報を取得
  • Set-Date:システム日付を設定
  • New-Item:新しい項目を作成(ファイルやフォルダーなど)
  • Remove-Service:サービスを削除

この命名方法は直感的で一貫性があり、覚えやすく検索しやすいです。


Cmdlet の基本構文構造

Cmdlet の構文構造は一般的に次のとおりです:

動詞-名詞 [-パラメータ名 パラメータ値] [-スイッチパラメータ]

例:

Get-Service -Name W32Time

説明:

  • Get-Service:サービスオブジェクトを取得
  • -Name W32Time:照会するサービス名を指定W32Time

さらに例:

Stop-Process -Id 1234 -Force
  • -Idは値付きパラメータです
  • -Forceはスイッチパラメータで、値の指定は不要です

パラメータとパイプラインの組み合わせ

Cmdlet はサポートしています:位置パラメータ、、名前付きパラメータ、とパイプライン入力。これにより、コマンドを柔軟に組み合わせて複雑なワークフローを構築できます。

例1:パラメータの指定形式

Get-Process -Name notepad

例2:パイプラインで渡す

"notepad" | Get-Process -Name

例3:オブジェクトをパイプラインで別の Cmdlet に渡す

Get-Process notepad | Stop-Process

上記の例では、Get-Processnotepad プロセスオブジェクトを取得し、パイプラインでStop-Processそれを終了するために渡します。


Cmdlet のヘルプ情報を確認する

PowerShell は完全なヘルプシステムを提供しており、Get-Help任意の Cmdlet の使い方を確認するには次を使用できます:

Get-Help Get-Process

さらにパラメータの説明や例を確認するには、次を追加できます-Detailed 或 -Examples:

Get-Help Get-Process -Examples

PowerShell を初めて使用する場合は、ローカルヘルプを更新するために、次のコマンドを一度実行することをお勧めします:

Update-Help

よく使う基本 Cmdlet 早見表

Cmdlet 機能説明
Get-Command 利用可能なすべてのコマンドを表示
Get-Help コマンドのヘルプ情報を表示
Get-Process プロセス一覧を取得
Get-Service サービス一覧を取得
Start-Service サービスを開始
Stop-Service サービスを停止
Set-ExecutionPolicy 実行ポリシーを設定
New-Item 新しいファイルまたはフォルダーを作成
Remove-Item ファイルまたはフォルダーを削除
Copy-Item ファイルまたはフォルダーをコピー
Move-Item ファイルまたはフォルダーを移動
Clear-Host 画面をクリア(~と類似)cls

実践例:ファイル操作

フォルダーを作成:

New-Item -Path "C:\TestFolder" -ItemType Directory

そのディレクトリにテキストファイルを作成:

New-Item -Path "C:\TestFolder\demo.txt" -ItemType File

ファイルに内容を書き込む:

Set-Content -Path "C:\TestFolder\demo.txt" -Value "Hello PowerShell"

ファイルの内容を読み取る:

Get-Content -Path "C:\TestFolder\demo.txt"

まとめと学習アドバイス

  • Cmdlet は PowerShell の中核単位であり、各 Cmdlet は機能が明確なタスク実行器です。
  • 統一された"動詞-名詞"命名規則により、Cmdlet は予測可能で学習しやすくなっています。
  • パイプライン、パラメータシステム、オブジェクトモデルの組み合わせにより、Cmdlet はデータ処理と自動化に優れた性能を発揮します。
  • よく使う Cmdlet を習得し、オブジェクト操作と組み合わせることが、PowerShell を学ぶ重要な出発点です。

初心者は以下の点から練習を始めることをお勧めします:

  1. を使用してGet-Command利用可能なすべてのコマンドを探索する
  2. と組み合わせてGet-Helpコマンドの使い方を調べることを学ぶ
  3. を利用してNew-ItemとGet-Contentなどのコマンドでローカルファイル操作を行う
  4. パイプラインでコマンドを組み合わせてデータを処理することを積極的に試してみましょう
その他の拡張