次の方法で共有


Windows PowerShell 言語仕様 3.0

編集メモ

重要

Windows PowerShell 言語仕様 3.0 は、2012 年 12 月に公開され、Windows PowerShell 3.0 に基づいています。 この仕様では、PowerShell の現在の状態は反映されません。 現在の状態を反映するようにこのドキュメントを更新する予定はありません。 このドキュメントは、履歴参照のためにここに示されています。

仕様文書は、Microsoft ダウンロード センターから Microsoft Word 文書として入手できます。https://www.microsoft.com/download/details.aspx?id=36389 Word 文書は、Microsoft Learn でプレゼンテーション用に変換されています。 変換中に、Docs プラットフォームの書式設定に対応するために、いくつかの編集の変更が行われました。 一部の入力ミスと軽微なエラーが修正されました。

1. 概要

PowerShell は、シェル とスクリプト言語 コマンドラインであり、特にシステム管理者向けに設計されています。

ほとんどのシェルは、新しいプロセスでコマンドまたはユーティリティを実行し、結果をテキストとしてユーザーに表示することによって動作します。 これらのシェルには、シェルに組み込まれており、シェル プロセスで実行されるコマンドもあります。 組み込みのコマンドがほとんどないため、多くのユーティリティが作成され、それらを補完しています。 PowerShell は大きく異なります。 シェルは、テキストを処理する代わりにオブジェクトを処理します。 PowerShell には、一貫性のあるインターフェイスを持つ組み込みコマンドの大規模なセットも含まれており、これらはユーザーが記述したコマンドで動作します。

オブジェクト は、プロパティ (特性など) と メソッド (つまり、オブジェクトに対して実行できるアクション) プロパティを持つデータ エンティティです。 同じ型のすべてのオブジェクトは、プロパティとメソッドの同じ基本セットを持ちますが、オブジェクトの各 インスタンス は、異なるプロパティ値を持つことができます。

オブジェクトを使用する主な利点は、パイプライン コマンドを する方がはるかに簡単であるということです。つまり、あるコマンドの出力を別のコマンドに入力として書き込みます。 (従来のコマンド ライン環境では、あるコマンドからのテキスト出力を、別のコマンドの入力形式に合わせて操作する必要があります)。

PowerShell には、ループ、条件、フロー制御、変数の割り当てのコンストラクトをサポートする非常に豊富なスクリプト言語が含まれています。 この言語には、C# プログラミング言語 (§C.) で使用されるものと同様の構文機能とキーワードがあります。

PowerShell には、スクリプト、関数とメソッド、コマンドレット、ネイティブ コマンドの 4 種類のコマンドがあります。

  • コマンドのファイルは、スクリプトと呼ばれます。 慣例により、スクリプトのファイル名拡張子は .ps1です。 PowerShell プログラムの最上位レベルはスクリプトであり、他のコマンドを呼び出すことができます。

  • PowerShell では、名前付きプロシージャを使用したモジュール式プログラミングがサポートされています。 PowerShell で記述されたプロシージャは 関数と呼ばれますが、実行環境で使用できる外部プロシージャ (通常は他の言語で記述) は、メソッドと呼ばれます。

  • コマンドレット ("command-let" と発音) は、単純な単一タスクのコマンド ライン ツールです。 コマンドレットは単独で使用できますが、複雑なタスクを実行するために組み合わせて使用すると、コマンドレットの完全な機能が実現されます。

  • ネイティブ コマンド は、ホスト環境の一部です。

PowerShell ランタイム環境は、実行を開始するたびに、セッションと呼ばれるものを開始します。 その後、コマンドはそのセッションのコンテキスト内で実行されます。

この仕様では、PowerShell 言語、組み込みのコマンドレット、およびパイプラインを介したオブジェクトの使用を定義します。

テキストを受け取って返すほとんどのシェルとは異なり、Windows PowerShell は .NET Framework 共通言語ランタイム (CLR) と .NET Framework の上に構築され、.NET Framework オブジェクトを受け入れて返します。