
Ao fazer algumas pesquisas sobreoutra pergunta, queria ter certeza de que tree
não era um comando ou alias nativo do PowerShell. Claro, a maneira correta de fazer isso é com Get-Command
. No entanto, quando procuro um comando do qual não tenho certeza, geralmente prefiro ir direto para o arquivo de ajuda, se ele existir, em vez de executar duas etapas de "verificar se o comando existe,entãová para ajudar". Então, o comando que executei foi help tree
. Para minha surpresa, ele retornou o arquivo de ajuda para Copy-Item!
Para verificar a sanidade, expliquei - Get-Help tree
- mas acabei com os mesmos resultados. Para ver se tree
havia, por algum motivo estranho, um alias para Copy-Item
eu corri gal tree
- isso retornou um erro dizendo que tal alias não existe. Corri gal -def Copy-Item
para verificar todos os aliases de Copy-Item
, e ele só apareceu copy
, cp
, e cpi
.
Por fim, fiz gcm tree
para ver para que o PowerShell realmente deveria estar usando tree
. Isso resultou, como eu esperava, um CommandType de "Application" com definição "C:\Windows\system32\tree.com".
Infelizmente, nada disso responde ao comportamento incomum daqui Get-Help
. Por que Get-Help tree
retornaria o arquivo de ajuda para Copy-Item
, quando os dois parecem totalmente não relacionados? Esse comportamento foi duplicado no PowerShell 2.0 no Windows 7 SP1 e no PowerShell 4.0 no Windows 8.1.
Responder1
Você está obtendo este resultado porque a ajuda para Copy-Item é oapenasarquivo de ajuda em seu sistema que contém a palavra-chave "árvore". O comando a seguir mostrará que a string “tree” ocorre nos comentários da seção de exemplos.
(Get-Help -Name Copy-Item).examples.example.remarks | Where-Object { $_ -match 'tree'}
Experimente o comando abaixo e você descobrirá que a palavra-chave “intact” também é exclusiva desse arquivo de ajuda.
Get-Help intact
Isso também explica que ele não foi encontrado usando outro código de idioma.
Por exemplo, para obter uma lista de arquivos de ajuda contendo a palavra-chave "particular", use o comando
Get-Help particular
Espero que isso esclareça o uso.