Como * devo * estar filtrando a saída do comando do powershell? [fechadas]

1

Eu iniciei um novo trabalho para uma empresa que usa uma pilha completa de janelas. Eu sinto como se tivesse retrocedido em termos de produtividade, não porque o Windows é menos poderoso, mas porque eu realmente não estou familiarizado com o ambiente. Eu me vejo constantemente batendo minha cabeça contra o Powershell, jogando as mãos para cima e batendo o que quer que seja que eu estava tentando fazer no Cygwin. Eu sinto que esta é uma solução suja e preferiria ficar confortável no ambiente Windows adequado.

Com isso dito, como um iniciante como eu deve pesquisar a saída do comando get para cmdlets gerais que gostaria de executar? Eu entendo que deveria estar pensando em um espaço de objeto, então há uma maneira elegante de pesquisar as propriedades apresentadas para que eu possa fazer coisas como, por exemplo, descobrir se há um alias para um determinado cmdlet ou pesquisar se um cmdlet está disponível mesmo? (estava procurando por um cmdlet de link simbólico e preferiria ficar no cmdline usando o googling, se possível).

A falta de grep / piping está me deixando louco. Eu devo estar faltando alguma coisa, algum conselho dado a minha situação?

    
por Drism 04.11.2012 / 20:20

2 respostas

2

Ok, aqui estão algumas coisas que eu gostaria de saber ao iniciar o PowerShell:

Para verificar se existe um comando, você pode fazer algo assim:

Get-Command *Item*

Para ver quais propriedades um objeto tem você pode fazer algo assim:

$Items = Get-ChildItem -Path C:\
$Items | Get-Member  

Para ver se há um alias para algo que você pode usar:

Get-Alias -Definition Get-ChildItem

Finalmente, para ver como usar um comando, você pode usar:

Get-Help Get-ChildItem

Além disso, o PowerShells Pipline é um dos seus pontos de venda mais strongs, você sabe sobre o "|" símbolo de tubo certo?

    
por 04.11.2012 / 20:30
0

Vou usar os formulários abreviados, supondo que você esteja digitando na linha de comando e queira velocidade. Em um script, gosto de nomes completos para manutenção.

find out if there is an alias for a particular cmdlet

Isso funciona, mas nunca consigo me lembrar:

PS> gal -def get-childitem

então eu uso uma consulta:

PS> gal | ? { $_.Definition -eq "Get-ChildItem" }

? é um alias para Where-Object , então é assim que você filtra a saída.

search if a cmdlet is even available? (was looking for a symlink cmdlet, and would prefer to stay in the cmdline over googling if possible).

Eu poderia tentar:

PS> help *link*

Mas muitas vezes eu vou ao Google, o que me devolveu ao StackOverflow (é claro!) link

    
por 05.11.2012 / 00:03