2

ヌーブアラート!私は PowerShell のイントロを調べ始めました。たとえば、ここで、彼らが提供する初期の例で何が起こっているのかについての適切な説明がわかりません。

get-service | get-member

Get-Service は、実行中のサービスを記述するオブジェクトのリストを返します。それでいい。Get-Member は、オブジェクトのメンバーに関する情報を表示します。それでいい。しかし、get-service から出力されるオブジェクトのリストが get-member の 1 つのオブジェクトに縮小される原因は何ですか?

4

1 に答える 1

3

これが Get-Member コマンドレットのしくみです。入力オブジェクトを受け取り、それがコレクションの場合、そのコレクション内のすべての個別の型の出力を表示します。そうでなければ、それは冗長な情報であり、有用な出力形式ではありませんよね? また、Get-Service は 'ServiceController' 型 (およびその型のみ) のオブジェクトのコレクションを返すため、Get-Member からの出力は 1 つしか表示されません。

ソース コレクションに異なる型のオブジェクトが含まれている場合、Get-Member からの複数の出力が表示されます。コマンドレット Get-ChildItems を試すことができます。これは、ファイルに対して異なる型を返し、ディレクトリに対して異なる型を返します。したがって、Get-ChildItem | Get-Member(ディレクトリとファイルの両方があるディレクトリで) 入力すると、2 つのタイプのメンバーが表示されます。

もう 1 つ: コレクション オブジェクトのメンバーを表示する場合は、コレクションの前にカンマを付ける必要があります。このような:,(Get-Service) | Get-Member

于 2012-05-01T11:34:06.507 に答える