PowerShell 7: per què el faig servir en lloc del CMD (IA + Laravel local)
Després d'actualitzar a PowerShell 7.6.3, val la pena explicar per què no em quedo amb el CMD clàssic quan treballo amb projectes locals: Laravel, WordPress, Apache a C:\Apache24, contenidors Proxmox o scripts de manteniment.
PowerShell no és només «una consola més moderna»: és una eina d'automatització que, combinada amb IA (Cursor, agents, DeepSeek…), accelera molt el dia a dia de disseny web i administració de servidors.
CMD vs PowerShell: diferències claví
| Aspecte | CMD (cmd.exe) | PowerShell 7 (pwsh) |
|---|---|---|
| Model | Text pla: tot és una cadena | Objectes (.NET): pipes passen dades estructurades |
| Comandes | dir, copy, findstr |
Cmdlets verb-nom: Get-ChildItem, Copy-Item, Select-String |
| Scripts | .bat / .cmd limitats |
.ps1 complets, funcions, mòduls, classes |
| JSON / APIs | Complicat parsejar a mà | Invoke-RestMethod, ConvertFrom-Json natius |
| SSH remot | No integrat | ssh, scripts Python/paramiko des del mateix entorn |
| Cross-platform | Només Windows | Windows, Linux, macOS (pwsh) |
| Help | /? bàsic |
Get-Help, exemples, documentació rica |
Exemple que resumeix la diferència:
# CMD: llistar carpetes Laravel i filtrar amb findstr
dir C:\Users\joanp\PROJECTES /b | findstr lar
# PowerShell: objectes, propietats, filtres
Get-ChildItem C:\Users\joanp\PROJECTES -Directory |
Where-Object Name -like 'lar*' |
Select-Object Name, LastWriteTime
Per què em serveix al desenvolupament web local
- Apache / vhosts — provar ports, reiniciar serveis, editar
httpd-vhosts.conf, validarhttpd -t. - Hosts Windows — afegir
*.testper Laravel i WordPress sense obrir l'editor a mà cada vegada. - Laravel —
php artisan migrate,composer install, junctionspublic/storage, permisos de carpetes. - MySQL — consultes ràpides, export/import, comprovació de connexió des de scripts.
- Proxmox / CT — SSH a contenidors,
pct exec, desplegaments WordPress + Ollama (com el CT192.168.1.169). - Git — status, diff, commits des de la mateixa consola que usa l'agent d'IA.
L'avantatge de combinar PowerShell + IA
Cursor i altres assistents entenen molt bé ordres en PowerShell perquè són explícites, composables i repetibles. Això canvia com treballo:
- Descric el objectiu en català («configura el vhost de larposts.test», «instal·la Ollama al CT 105»).
- L'IA genera i executa scripts
.ps1o líniespwshverificables. - Jo reviso el resultat (curl, navegador, logs Apache) abans de donar-ho per bo.
Això és especialment útil en Laravel:
- Crear enllaços simbòlics de storage després de moure projectes fora de
htdocs. - Actualitzar
.env(APP_URL) i netejar cache (php artisan config:clear). - Diagnosticar 404, permalinks o errors de Composer sense perdre hores en copiar ordres del CMD.
- Automatitzar tasques repetitives entre Windows local i servidors Linux (SSH + scripts Python invocats des de PowerShell).
# Exemple típic després de moure un Laravel a PROJECTES
cd C:\Users\joanp\PROJECTES\larposts
php artisan storage:link
php artisan config:clear
php artisan route:clear
curl -I http://larposts.test/
Windows PowerShell 5.1 vs PowerShell 7
A Windows tens dues consoles:
- Windows PowerShell 5.1 — la clàssica integrada (encara útil per alguns scripts antics).
- PowerShell 7 (
pwsh) — la versió moderna, cross-platform, recomanada per desenvolupament.
Actualització recent via winget / MSI:
winget upgrade --id Microsoft.PowerShell --exact
pwsh -NoProfile -Command '$PSVersionTable.PSVersion'
Quan encara faig servir el CMD?
Gairebé mai per projectes propis. El CMD queda per compatibilitat amb instal·ladors antics o tutorials vells. Per tot el flux web (Apache, PHP, Laravel, Git, SSH), pwsh és la base.
Resum
PowerShell 7 substitueix el CMD com a eina principal perquè treballa amb objectes, automatitza millor el teu entorn Windows i es combina de forma natural amb IA per mantenir projectes locals — sobretot Laravel i stacks LAMP — sense fricció.
Si encara veus el missatge «A new PowerShell stable release is available», obre una terminal nova després d'actualitzar: hauries de tenir la darrera versió estable instal·lada.