PowerShell の重要な概念を理解するUnderstanding important PowerShell concepts

PowerShell の設計には、多数の異なる環境の概念が取り入れられています。The PowerShell design integrates concepts from many different environments. シェルやプログラミング環境を経験しているユーザは、複数の概念に精通しています。Several of the concepts will be familiar to people with experience in shells or programming environments. ただし、すべての概念を把握しているユーザーはほとんどいないでしょう。However, few people will know about all of them. これらのいくつかの概念について理解することは、シェルの概要を把握するのに役立ちます。Looking at some of these concepts provides a useful overview of the shell.

オブジェクト ベースの出力Output is object-based

従来のコマンドライン インターフェイスとは異なり、 PowerShell コマンドレットは、オブジェクトを扱うように設計されています。Unlike traditional command-line interfaces, PowerShell cmdlets are designed to deal with objects. オブジェクトは、画面上に表示される文字による単なる文字列ではない、より詳細な構造化された情報です。An object is structured information that is more than just the string of characters appearing on the screen. コマンドの実行結果は、常に補足的な情報と共に出力され、必要に応じてこの情報を活用できます。Command output always carries extra information that you can use if you need it.

テキスト処理ツールを使用して過去のデータを処理すると、PowerShell で使用された場合とは異なる動作になることがわかるでしょう。If you've used text-processing tools to process data in the past, you'll find that they behave differently when used in PowerShell. ほとんどの場合、テキスト処理ツールを使用して特定の情報を抽出する必要はありません。In most cases, you don't need text-processing tools to extract specific information. 標準の PowerShell オブジェクト構文を使用して、データの一部に直接アクセスします。You directly access portions of the data using standard PowerShell object syntax.

拡張可能なコマンド ファミリThe command family is extensible

cmd.exe などのインターフェイスには、組み込みのコマンド セットを直接拡張する手段がありません。Interfaces such as cmd.exe don't provide a way for you to directly extend the built-in command set. cmd.exe で実行される外部のコマンドライン ツールを作成できます。You can create external command-line tools that run in cmd.exe. しかし、これらの外部ツールには、ヘルプの統合などのサービスがありません。But these external tools don't have services, such as Help integration. これらの外部ツールが有効なコマンドであることを、cmd.exe は自動認識しません。cmd.exe doesn't automatically know that these external tools are valid commands.

PowerShell のネイティブ コマンドは、cmdlet と呼ばれます (「コマンドレット」と発音されます)。The native commands in PowerShell are known as cmdlets (pronounced command-lets). コンパイルされたコードまたはスクリプトを使用して、独自のコマンドレット モジュールと関数を作成できます。You can create your own cmdlets modules and functions using compiled code or scripts. モジュールは、シェルにコマンドレットとプロバイダーを追加できます。Modules can add cmdlets and providers to the shell. また、PowerShell では、UNIX のシェル スクリプトや cmd.exe のバッチ ファイルに似たスクリプトもサポートしています。PowerShell also supports scripts that are analogous to UNIX shell scripts and cmd.exe batch files.

PowerShell によってコンソールの入力と表示が処理されるPowerShell handles console input and display

コマンドを入力すると、常に、コマンドラインの入力が PowerShell によって直接処理されます。When you type a command, PowerShell always processes the command-line input directly. また、PowerShell では、出力を画面上で確認できるように書式設定します。PowerShell also formats the output that you see on the screen. 各コマンドレットで必要な作業が減るため、これは大きな差になります。This difference is significant because it reduces the work required of each cmdlet. どのコマンドレットでも常に同じように作業できることが、保証されます。It ensures that you can always do things the same way with any cmdlet. コマンドレットの開発者は、コマンドライン引数の解析や出力形式の設定のために、コードを記述する必要はありません。Cmdlet developers don't need to write code to parse the command-line arguments or format the output.

従来のコマンドライン ツールでは、ヘルプの要求と表示に独自の体系が採用されていました。Traditional command-line tools have their own schemes for requesting and displaying Help. あるコマンドライン ツールは /? を使ってSome command-line tools use /? ヘルプを表示し、他のコマンドライン ツールは -?/H// などを使っていました。to trigger the Help display; others use -?, /H, or even //. ヘルプがコンソール画面に表示される代わりに、GUI のウィンドウに表示されるものもあります。Some will display Help in a GUI window, rather than in the console display. 間違ったパラメーターを使用すると、入力内容が無視され、タスクの実行が自動的に開始される場合もあります。If you use the wrong parameter, the tool might ignore what you typed and begin executing a task automatically. PowerShell は自動的にコマンド ラインを解析して処理するので、-? Since PowerShell automatically parses and processes the command line, the -? パラメーターは常に、"このコマンドのヘルプを表示する" という意味になります。parameter always means "show me Help for this command".

注意

PowerShell でグラフィック アプリケーションを実行した場合は、そのアプリケーションのウィンドウが開きます。If you run a graphic application in PowerShell, the window for the application opens. PowerShell が介在するのは、ユーザーによって指定されたコマンドライン入力を処理するときと、コンソール ウィンドウに返されたアプリケーション出力を処理するときだけです。PowerShell intervenes only when processing the command-line input you supply or the application output returned to the console window. アプリケーション内部の動作には影響しません。It does not affect how the application works internally.

PowerShell では C# の構文が一部使用されるPowerShell uses some C# syntax

PowerShell は、.NET Framework 上に構築されます。PowerShell is built on the .NET Framework. C# プログラミング言語を使用して、いくつかの構文機能とキーワードを共有します。It shares some syntax features and keywords with the C# programming language. PowerShell を学習すると、C# の習得がずっと簡単になります。Learning PowerShell can make it much easier to learn C#. 既に C# をよく知っている場合は、よく似ているので、PowerShell の習得はより簡単になります。If you're already familiar with C#, these similarities can make learning PowerShell easier.