
調査してみると別の質問tree
、それが実際のネイティブ PowerShell コマンドまたはエイリアスではないことを確認したかったのです。もちろん、これを行う正しい方法は を使用することですGet-Command
。しかし、よくわからないコマンドを調べるときは、通常、「コマンドが存在するかどうか確認する」という 2 つの手順を実行するのではなく、ヘルプ ファイルが存在する場合は直接ヘルプ ファイルにアクセスすることを好みます。それから「ヘルプへ移動」というコマンドを実行しましたhelp tree
。驚いたことに、Copy-Item のヘルプ ファイルが返されました。
妥当性チェックとして、 をスペルアウトしましたGet-Help tree
が、結果は同じでした。 がtree
何らかの理由で のエイリアスであるかどうかを確認するためにを実行しましたが、そのようなエイリアスは存在しないというエラーが返されました。のすべてのエイリアスを確認するために をCopy-Item
実行しましたが、 、、のみが表示されました。gal tree
gal -def Copy-Item
Copy-Item
copy
cp
cpi
最後に、gcm tree
PowerShell が実際に に使用するはずのものを確認しました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
これで使用方法が明確になったと思います。