Texto entra, texto sai: o limite que quebrava os .bat
O cmd é um shell de texto: o dir imprime colunas formatadas, e o que você realmente queria — um tamanho, uma data, um nome — chega como caracteres colados numa página que depois precisa ser recortada. Scripts construídos sobre esse parsing quebram no dia em que uma configuração regional escreve o mês de outro jeito, uma coluna alarga ou um nome de arquivo ganha um espaço. Quem manteve arquivos .bat lembra do ritual: FOR /F com tokens e delimitadores, uma pequena oração e uma segunda versão para as máquinas que respondem em outro idioma.
O PowerShell, lançado em 2006 e construído sobre o .NET, foi desenhado para acabar exatamente com isso. Get-ChildItem não imprime linhas — devolve objetos FileInfo que carregam Name, Length, LastWriteTime e Extension como dados. O pipeline entre comandos repassa esses objetos inteiros, então um filtro escrito em São Paulo roda idêntico em Munique, e uma soma é um número que se pode arredondar e formatar, não uma string em que é preciso confiar.
Cmdlets verbo-substantivo que se encaixam como devem
Os comandos são cmdlets com nome verbo-substantivo — Get-ChildItem, Where-Object, Measure-Object, Remove-Item — e a disciplina não é cosmética: verbos aprovados mantêm um pipeline legível meio ano depois, como uma caixa de ferramentas etiquetada vence uma gaveta de chaves de fenda anônimas. Para a limpeza, a composição importa mais que qualquer comando isolado: achar, filtrar, medir e apagar é uma linha de fluxo de objetos em vez de quatro parágrafos de sintaxe batch. Cada estágio ainda se nomeia sozinho, então uma linha escrita com pressa continua legível como uma frase um mês depois.
A vitória mais silenciosa é a segurança. Remove-Item aceita -WhatIf, que imprime cada exclusão que faria — e não faz nenhuma — e -Confirm, que pergunta arquivo por arquivo: ensaios que o cmd nunca teve. Get-AppxPackage vai direto no pipe para Remove-AppxPackage, de modo que remover um app pré-instalado é um pipeline, não uma caçada no Registro. Isso não torna a exclusão inofensiva, mas torna-a inspecionável — a propriedade que sempre faltou aos scripts de limpeza.
- Get-ChildItem $env:TEMP -Recurse — um objeto FileInfo por arquivo, com Length e LastWriteTime como dados
- Where-Object Length -gt 100MB — um filtro sobre objetos, imune a idioma e largura de coluna
- Measure-Object Length -Sum — o total em gigabytes como número, não como string para reparsar
- Remove-Item ... -WhatIf — um ensaio que lista cada exclusão que executaria
- Get-AppxPackage *zune* | Remove-AppxPackage — remoção de um appx num único pipeline
Onde o cmd ainda ganha — e os limites honestos
O PowerShell não é de graça. Parte mais devagar que o cmd, a política de execução dele trava quem roda um .ps1 baixado antes de Set-ExecutionPolicy -Scope CurrentUser RemoteSigned, e um Get-ChildItem recursivo num disco inteiro rasteja perto de varredores especializados. Para os clássicos — ipconfig, sfc, powercfg — o cmd continua sendo a janela mais leve, e nada aqui aposenta aqueles vinte comandos.
O outro limite honesto é a simultaneidade: a exclusão roda numa thread só, e uma árvore enorme de arquivos pequenos demora o que tiver de demorar. O saldo, ainda assim, é claro. Para tudo o que mede, filtra ou relata antes de apagar, o PowerShell trata seu sistema como dados e não como uma tela a raspar — e os one-liners do nosso próximo post não pedem nada além de copiar e colar.
Perguntas e respostas
O PowerShell é melhor que o cmd para limpar o Windows?
Para tudo o que filtra, mede ou ensaia exclusões, sim: pipelines de objetos sobrevivem a qualquer idioma e prestam contas antes de agir. Para os clássicos — ipconfig, sfc, chkdsk — o cmd continua a janela mais leve.
Qual é a diferença entre Windows PowerShell e PowerShell 7?
O Windows PowerShell 5.1 vem dentro do sistema, sobre o .NET Framework; o PowerShell 7 é o sucessor multiplataforma, instalado à parte. Os one-liners de limpeza rodam iguais nos dois.
Veja exatamente o que está incluído antes de comprar.
O teste único de 30 minutos cobre os recursos básicos. Os recursos marcados PRO ficam bloqueados até a ativação de uma licença paga.
Continue lendo
Fale com a gente: [email protected]