「ヘルプツリー」はCopy-Itemのヘルプを返します

「ヘルプツリー」はCopy-Itemのヘルプを返します

調査してみると別の質問tree、それが実際のネイティブ PowerShell コマンドまたはエイリアスではないことを確認したかったのです。もちろん、これを行う正しい方法は を使用することですGet-Command。しかし、よくわからないコマンドを調べるときは、通常、「コマンドが存在するかどうか確認する」という 2 つの手順を実行するのではなく、ヘルプ ファイルが存在する場合は直接ヘルプ ファイルにアクセスすることを好みます。それから「ヘルプへ移動」というコマンドを実行しましたhelp tree。驚いたことに、Copy-Item のヘルプ ファイルが返されました。

妥当性チェックとして、 をスペルアウトしましたGet-Help treeが、結果は同じでした。 がtree何らかの理由で のエイリアスであるかどうかを確認するためにを実行しましたが、そのようなエイリアスは存在しないというエラーが返されました。のすべてのエイリアスを確認するために をCopy-Item実行しましたが、 、、のみが表示されました。gal treegal -def Copy-ItemCopy-Itemcopycpcpi

最後に、gcm treePowerShell が実際に に使用するはずのものを確認しましたtree。予想どおり、CommandType が「Application」で、定義が「C:\Windows\system32\tree.com」であることがわかりました。

残念ながら、これらはいずれも、Get-Helpここでの異常な動作に対する答えにはなりません。 2 つがまったく無関係であるように見えるのに、なぜGet-Help treeのヘルプ ファイルが返されるのでしょうかCopy-Item。この動作は、Windows 7 SP1 上の PowerShell 2.0 および Windows 8.1 上の PowerShell 4.0 でも再現されています。

ここに画像の説明を入力してください

答え1

この結果が表示されるのは、Copy-Itemのヘルプがのみシステムのヘルプ ファイルには、キーワード「tree」が含まれています。次のコマンドは、例のセクションのコメントに文字列「tree」が含まれていることを示します。

(Get-Help -Name Copy-Item).examples.example.remarks | Where-Object { $_ -match 'tree'}

以下のコマンドを試すと、キーワード「intact」もそのヘルプ ファイルに固有であることがわかります。

Get-Help intact

これは、別のロケールを使用しても見つからないことも説明しています。

たとえば、キーワード「particular」を含むヘルプファイルのリストを取得するには、次のコマンドを使用します。

Get-Help particular

これで使用方法が明確になったと思います。

関連情報