🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Diferenças com o PowerShell: Porque deve deixar de usar o cmd?

Na série até agora, aprendemos sobre a história do shell tradicional do Windows, a Linha de Comandos (cmd.exe), a sua utilização básica e até a automação simples. A sua simplicidade e a sua contínua existência por razões de compatibilidade podem ser consideradas a própria história do Windows.

No entanto, por outro lado, também conhecemos a existência do "PowerShell", mais moderno e potente. Muitos de vós devem estar a sentir: "Já percebi o básico do cmd, mas devo mesmo mudar para o PowerShell?" ou "Quero saber mais sobre as vantagens concretas".

Este artigo é o seu "guia de graduação". Enquanto recordamos com carinho o "álbum de finalistas" que é a Linha de Comandos, vamos explicar exaustivamente, através da comparação, as razões decisivas e concretas pelas quais os criadores web modernos devem avançar para o "novo palco" do PowerShell. Quando terminar de ler este artigo, a sua mão, ao abrir o terminal, dirigir-se-á naturalmente para o ícone do PowerShell.


Comparação 1: O poder de "encontrar" a informação que quer - Os limites do texto e o potencial dos objetos

A diferença mais fundamental entre os dois reside no formato da informação que os comandos devolvem. Compreender isto é a chave para entender a diferença entre os dois.

Desafio: "Quero encontrar os 5 ficheiros maiores na minha pasta de documentos."

Uma tentativa na Linha de Comandos (cmd)

Tentar fazer isto no cmd não é simples. Pode obter uma lista de ficheiros com dir /s, mas o resultado é apenas uma cadeia de texto. Extrair apenas a parte do tamanho do ficheiro, ordená-la corretamente como um número e exibir os 5 primeiros itens... isto torna-se uma tarefa muito avançada e propensa a erros que requer o uso de loops for /f complexos e manipulação de cadeias de caracteres.

Por outras palavras, o cmd é bom para "os humanos olharem e julgarem", mas não é adequado para "um programa reutilizar os resultados para um processamento mais avançado".

A solução brilhante no PowerShell

Por outro lado, no PowerShell, esta tarefa pode ser resolvida com uma única linha, suave como água a correr.

Get-ChildItem -Path "C:\Users\YourName\Documents" -File -Recurse | Sort-Object -Property Length -Descending | Select-Object -First 5

Eis o que esta única linha está a fazer, passo a passo:

  1. Get-ChildItem: Primeiro, obtém todos os ficheiros e pastas na pasta especificada como "objetos".
  2. |: Passa a coleção de objetos para o comando seguinte através de um pipe.
  3. Sort-Object: Ordena os objetos passados pelo tamanho do ficheiro (a propriedade Length) em ordem decrescente (-Descending).
  4. |: Passa os resultados ordenados para o comando seguinte.
  5. Select-Object: Dos objetos passados, seleciona e exibe apenas os 5 primeiros (-First 5).

Em vez de se debater para analisar texto, manipula livremente dados estruturados pelas suas propriedades. Esta é a maior razão pela qual se diz que o PowerShell é "potente".


Comparação 2: O poder de "integração" com o exterior - Chamar ou não chamar uma API

No desenvolvimento web moderno, é comum obter e usar dados de APIs (Application Programming Interfaces) externas. Por exemplo, obter informação de um serviço web ou dados da previsão do tempo.

Desafio: "Quero usar a API do GitHub para obter a informação do utilizador da Microsoft e exibir o número de repositórios públicos."

O desafio na Linha de Comandos (cmd)

O cmd não tem funcionalidade incorporada para aceder à web e obter ou analisar dados como JSON. Para conseguir isto, teria de instalar separadamente uma ferramenta externa como o curl, e depois processar o texto JSON obtido usando ainda outro método, o que é muito trabalhoso.

A solução simples no PowerShell

O PowerShell vem de série com um cmdlet potente chamado Invoke-RestMethod. É uma excelente ferramenta que acede a uma API web e converte automaticamente os dados JSON devolvidos em objetos do PowerShell.

Primeiro, vamos obter os dados da API e guardá-los numa variável.

$gitHubUser = Invoke-RestMethod -Uri "https://api.github.com/users/microsoft"

E com apenas isto, tudo o que resta é aceder às propriedades do objeto.

Write-Host "Nome de utilizador: $($gitHubUser.name)"
Write-Host "Repositórios públicos: $($gitHubUser.public_repos)"

É como se estivesse a aceder a dados locais, pode aceder facilmente a informação da web com formas como .name e .public_repos. Esta capacidade de integração com serviços externos é uma vantagem esmagadora do PowerShell que o cmd não tem.


Conclusão: Porque devemos deixar de usar o cmd

Como vimos, o PowerShell não é um mero sucessor da Linha de Comandos. É uma ferramenta completamente nova, com uma nova filosofia, redesenhada de raiz para realizar tarefas modernas.

As razões pelas quais deve migrar do cmd para o PowerShell são claras.

O conhecimento da Linha de Comandos não é de todo um desperdício para compreender a história do Windows. No entanto, para aumentar a produtividade como criador web ou como profissional de TI a partir de agora, migrar para a ferramenta mais potente и moderna, o PowerShell, é sem dúvida o investimento mais sensato.

A nossa série de introdução ao cmd.exe termina aqui. Esperamos que esta série o tenha ajudado a superar a sua aversão ao "ecrã preto" e a descobrir o verdadeiro poder da linha de comandos. Obrigado!