Skip to content

Cheat Sheet de CMD vs PowerShell

Última verificación mayo 2026 — corre en tu navegador
CMD vs PowerShell
Listar archivos Archivos
CMD
dir
PowerShell
Get-ChildItem (ls)
Listar archivos con detalles Archivos
CMD
dir /a
PowerShell
Get-ChildItem -Force
Cambiar directorio Archivos
CMD
cd <dir>
PowerShell
Set-Location <dir> (cd)
Mostrar directorio actual Archivos
CMD
cd
PowerShell
Get-Location (pwd)
Crear directorio Archivos
CMD
mkdir <dir>
PowerShell
New-Item -ItemType Directory <dir>
Eliminar archivo Archivos
CMD
del <file>
PowerShell
Remove-Item <file> (rm)
Eliminar directorio Archivos
CMD
rmdir /s /q <dir>
PowerShell
Remove-Item -Recurse -Force <dir>
Copiar archivo Archivos
CMD
copy <src> <dst>
PowerShell
Copy-Item <src> <dst> (cp)
Copiar directorio Archivos
CMD
xcopy <src> <dst> /s /e
PowerShell
Copy-Item -Recurse <src> <dst>
Mover/renombrar archivo Archivos
CMD
move <src> <dst>
PowerShell
Move-Item <src> <dst> (mv)
Mostrar contenido del archivo Archivos
CMD
type <file>
PowerShell
Get-Content <file> (cat)
Crear archivo vacío Archivos
CMD
type nul > <file>
PowerShell
New-Item <file>
Buscar texto en archivo Archivos
CMD
findstr "text" <file>
PowerShell
Select-String "text" <file>
Buscar archivos por nombre Archivos
CMD
dir /s /b *name*
PowerShell
Get-ChildItem -Recurse -Filter *name*
Limpiar pantalla Sistema
CMD
cls
PowerShell
Clear-Host (cls)
Mostrar fecha/hora Sistema
CMD
date /t && time /t
PowerShell
Get-Date
Información del sistema Sistema
CMD
systeminfo
PowerShell
Get-ComputerInfo
Nombre del host Sistema
CMD
hostname
PowerShell
$env:COMPUTERNAME
Usuario actual Sistema
CMD
whoami
PowerShell
$env:USERNAME
Variables de entorno Sistema
CMD
set
PowerShell
Get-ChildItem Env:
Establecer variable de entorno Sistema
CMD
set VAR=value
PowerShell
$env:VAR = "value"
Historial de comandos Sistema
CMD
doskey /history
PowerShell
Get-History
Apagar PC Sistema
CMD
shutdown /s /t 0
PowerShell
Stop-Computer
Reiniciar PC Sistema
CMD
shutdown /r /t 0
PowerShell
Restart-Computer
Ping al host Red
CMD
ping <host>
PowerShell
Test-Connection <host>
Mostrar configuración IP Red
CMD
ipconfig
PowerShell
Get-NetIPAddress
Mostrar IP (detallado) Red
CMD
ipconfig /all
PowerShell
Get-NetIPConfiguration
Vaciar caché DNS Red
CMD
ipconfig /flushdns
PowerShell
Clear-DnsClientCache
Consulta DNS Red
CMD
nslookup <host>
PowerShell
Resolve-DnsName <host>
Mostrar puertos abiertos Red
CMD
netstat -an
PowerShell
Get-NetTCPConnection
Trazar ruta Red
CMD
tracert <host>
PowerShell
Test-Connection -Traceroute <host>
Descargar archivo Red
CMD
curl -O <url>
PowerShell
Invoke-WebRequest <url> -OutFile <file>
Listar procesos Procesos
CMD
tasklist
PowerShell
Get-Process
Terminar proceso por nombre Procesos
CMD
taskkill /im <name> /f
PowerShell
Stop-Process -Name <name> -Force
Terminar proceso por PID Procesos
CMD
taskkill /pid <pid> /f
PowerShell
Stop-Process -Id <pid> -Force
Iniciar un programa Procesos
CMD
start <program>
PowerShell
Start-Process <program>
Listar servicios Procesos
CMD
sc query
PowerShell
Get-Service
Iniciar servicio Procesos
CMD
net start <svc>
PowerShell
Start-Service <svc>
Detener servicio Procesos
CMD
net stop <svc>
PowerShell
Stop-Service <svc>
Mostrar espacio en disco Disco
CMD
wmic logicaldisk get size,freespace,caption
PowerShell
Get-PSDrive -PSProvider FileSystem
Mostrar tamaño del directorio Disco
CMD
dir /s <dir>
PowerShell
(Get-ChildItem -Recurse | Measure-Object Length -Sum).Sum
Formatear unidad Disco
CMD
format <drive>: /fs:ntfs
PowerShell
Format-Volume -DriveLetter <drive>
Mostrando 42 de 42 comandos

Cheatsheet CMD vs PowerShell

En Windows conviven dos shells desde hace años: el viejo Símbolo del sistema, heredero de las convenciones de MS-DOS de principios de los ochenta, y PowerShell, presentado en 2006 para llevar a la plataforma las tuberías orientadas a objetos y un modelo de scripting al estilo .NET. Ambas siguen incluidas en cualquier Windows moderno, y cualquier administrador en activo alterna entre ellas según lo que esté instalado, lo que esté ya scripted y lo que se acabe de pegar desde Stack Overflow. La chuleta de abajo pone 40+ tareas cotidianas lado a lado — archivos, sistema, red, procesos, disco — para que la sintaxis adecuada en la shell que toque esté a un clic. La mayoría de los líos al saltar entre las dos no vienen de olvidar comandos. Vienen de rarezas que parecen inocentes y luego muerden. `set VAR=value` en CMD incluye en silencio cualquier espacio que quede al final del valor, por eso la forma entrecomillada `set "VAR=value"` es la costumbre segura. `for /f` analiza con `tokens=` y `delims=`, y equivocarse en cualquiera salta campos sin avisar. PowerShell, por su parte, solo se detiene en errores terminantes — un `Remove-Item` sobre un fichero inexistente es no terminante por defecto y el script sigue como si nada. Estos son los fragmentos que se acaban consultando al depurar precisamente eso: el comando equivalente en la otra shell, la bandera que entrecomilla bien, la redirección que escribe de verdad, sin releer el `/?` desde la primera línea cada vez.

Trampas habituales en CMD y PowerShell

Hay un puñado de costumbres que merecen sitio cuando se escribe en ambas shells de Windows. En CMD, conviene entrecomillar la asignación entera — `set "PATH=%PATH%;C:\bin"` — porque el espacio en blanco antes del `&` o del salto de línea acaba dentro del valor en caso contrario. La expansión de variables es `%var%` en tiempo de parseo y `!var!` tras `setlocal enabledelayedexpansion` dentro de los bucles, y mezclar ambas es el origen de la mayoría de bugs de cadena vacía en bloques `for`. En PowerShell, `$ErrorActionPreference = 'Stop'` cambia el modelo no terminante por defecto, de modo que un único fallo de `Remove-Item` detiene el script en lugar de quedarse anotado y seguir. Las tuberías en PowerShell trasladan objetos, no texto, así que `Get-Process | Where-Object CPU -gt 100` filtra por la propiedad directamente, sin necesidad de `findstr`. Los separadores de ruta también difieren con matices: CMD admite la barra normal en algunos integrados pero no en todos, mientras que PowerShell los normaliza con `Join-Path`. La `ExecutionPolicy` de PowerShell bloquea por defecto los scripts sin firma en estaciones de trabajo, y la solución rápida más habitual `Set-ExecutionPolicy -Scope Process Bypass` solo afecta a la sesión actual, que es el compromiso más seguro cuando se ejecuta un script descargado puntual. Los comentarios también divergen: CMD usa `REM` o `::`, mientras que PowerShell usa `#` para una línea y `<# ... #>` para bloques — pegar un script de una shell en la otra sin cambiar los marcadores de comentario es un papel cortante familiar. Conocer ambas shells no es tanto cuestión de preferencia como de compatibilidad práctica. Los archivos batch heredados escritos hace décadas siguen viajando dentro de instaladores de proveedores y de pipelines que nadie va a reescribir, mientras que PowerShell es donde vive toda la automatización moderna de Windows, desde la administración de Active Directory hasta el aprovisionamiento de recursos en Azure. La mayoría de administradores en activo mantienen un pie en cada una y alternan según lo pida la situación, no según la ideología. La chuleta agrupa todo en Archivos, Sistema, Red, Procesos y Disco para que el equivalente en cualquiera de las dos shells esté a un clic.

  • Más de 40 equivalencias entre CMD y PowerShell
  • Diseño de comparación lado a lado
  • Filtrar por categoría (Archivos, Sistema, Red, Procesos, Disco)
  • Búsqueda de texto completo en tareas y comandos
  • Copiar comando CMD o PowerShell de forma independiente

Gratis. Sin registro. Tus datos permanecen en tu navegador. Anuncios mediante Google AdSense (con consentimiento).

Por ·