Chuleta de PowerShell — Comandos que puedes copiar

Los comandos de PowerShell que los desarrolladores y administradores usan a diario en Windows, y en PowerShell 7 en macOS y Linux, explicados en una línea cada uno. Escribe una vez tu carpeta, archivo y host, y copia comandos listos para ejecutar.

Actualizado el
Tus valoresCada ejemplo de abajo se actualiza al escribir

Ayuda y descubrimiento

5
Get-Command *service*

Busca comandos cuyo nombre contenga una palabra: la forma más rápida de descubrir cmdlets.

Get-Help Get-Process -Examples

Muestra ejemplos de uso de un cmdlet. Ejecuta Update-Help una vez para descargar la ayuda completa.

Get-Process | Get-Member

Lista las propiedades y métodos de los objetos que devuelve un comando.

Get-Alias ls

Mira qué cmdlet ejecuta un alias (ls, dir y gci ejecutan Get-ChildItem).

$PSVersionTable

Muestra la versión y edición de PowerShell (Windows PowerShell 5.1 o PowerShell 7).

Archivos y carpetas

11
Get-ChildItem C:\Projects\app -Recurse -Filter *.log

Lista los archivos de un tipo en una carpeta y sus subcarpetas.

Set-Location C:\Projects\app

Cambia la carpeta actual (alias cd).

New-Item -ItemType Directory -Path C:\Projects\app\logs -Force

Crea una carpeta, incluidas las carpetas padre que falten.

Copy-Item app.log C:\Projects\app\backup\ -Force

Copia un archivo, sobrescribiendo la copia existente.

Move-Item app.log C:\Projects\app\archive\

Mueve o renombra un archivo o carpeta.

Remove-Item C:\Projects\app\temp -Recurse -Force

destructivo Elimina una carpeta y todo lo que contiene sin preguntar.

Get-Content app.log -Tail 50 -Wait

Muestra las últimas 50 líneas de un archivo y sigue mostrando las nuevas (como tail -f).

Set-Content app.log -Value "text" -Encoding utf8

destructivo Escribe texto en un archivo, reemplazando su contenido.

Add-Content app.log -Value "another line"

Añade una línea al final de un archivo.

Compress-Archive -Path C:\Projects\app\* -DestinationPath archive.zip

Crea un ZIP con el contenido de una carpeta.

Expand-Archive archive.zip -DestinationPath C:\Projects\app

Extrae un archivo ZIP.

Búsqueda y texto

7
Select-String -Path *.log -Pattern "error"

Busca texto o una expresión regular en archivos (como grep); muestra archivo, número de línea y línea.

Get-ChildItem -Recurse | Select-String "error" -List

Encuentra qué archivos de la carpeta contienen el texto.

(Get-Content app.log) -replace "old", "new" | Set-Content app.log

destructivo Busca y reemplaza texto en un archivo (admite regex).

Get-Content app.log | Measure-Object -Line -Word -Character

Cuenta líneas, palabras y caracteres (como wc).

Import-Csv data.csv | Where-Object { $_.Status -eq "active" }

Lee un CSV como objetos y filtra filas por una columna.

Get-Process | Export-Csv processes.csv -NoTypeInformation

Guarda la salida de cualquier comando como archivo CSV.

Get-Content data.json -Raw | ConvertFrom-Json

Convierte un archivo JSON en objetos sobre los que puedes consultar.

Procesos y servicios

6
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10

Muestra los 10 procesos que más tiempo de CPU consumen.

Stop-Process -Name node -Force

destructivo Termina todos los procesos con ese nombre.

Get-Service | Where-Object Status -eq Running

Lista los servicios de Windows en ejecución.

Restart-Service Spooler

Reinicia un servicio (requiere una consola con privilegios de administrador).

Start-Process pwsh -Verb RunAs

Abre una nueva ventana de PowerShell como administrador.

Get-NetTCPConnection -LocalPort 443 | Select-Object OwningProcess

Encuentra qué proceso está escuchando en un puerto.

Red y web

5
Test-NetConnection example.com -Port 443

Comprueba si un host responde en un puerto TCP (ping + prueba de puerto).

Resolve-DnsName example.com

Consulta los registros DNS de un nombre de host.

Invoke-RestMethod https://api.github.com/repos/owner/repo

Llama a una API JSON y obtiene la respuesta como objetos.

Invoke-WebRequest https://example.com/file.zip -OutFile file.zip

Descarga un archivo.

Get-NetIPAddress -AddressFamily IPv4

Muestra las direcciones IPv4 de este equipo.

Variables, pipeline y scripting

8
$env:PATH -split ";"

Muestra cada carpeta del PATH en una línea distinta.

$env:API_URL = "value"

Define una variable de entorno para la sesión actual.

[Environment]::SetEnvironmentVariable("API_URL", "value", "User")

Define una variable de entorno de forma permanente para tu usuario.

Get-ChildItem | ForEach-Object { $_.Name.ToUpper() }

Ejecuta código para cada elemento del pipeline ($_ es el elemento actual).

Get-ChildItem | Where-Object Length -gt 10MB

Filtra objetos por una propiedad; aquí, archivos de más de 10 MB.

Measure-Command { Get-Process }

Mide cuánto tarda un comando.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Permite ejecutar scripts locales para tu usuario; los scripts descargados deben estar firmados.

try { Get-Process -ErrorAction Stop } catch { Write-Warning $_ }

Captura errores: -ErrorAction Stop convierte los errores no terminantes en errores capturables.

Sistema

5
Get-ComputerInfo -Property OsName, OsVersion, CsTotalPhysicalMemory

Muestra la versión de Windows y la memoria instalada.

Get-PSDrive -PSProvider FileSystem

Muestra las unidades con el espacio usado y libre.

Get-WinEvent -LogName System -MaxEvents 20

Lee las últimas entradas del registro de eventos System.

winget upgrade --all

Actualiza todas las aplicaciones instaladas con el Administrador de paquetes de Windows.

Restart-Computer -Force

destructivo Reinicia el equipo de inmediato.

Tus datos nunca salen de tu ordenador. Todo se procesa localmente en tu navegador.

Cómo usar: Chuleta PowerShell

  1. Escribe tus propios valores (carpeta, archivo, host) en los campos de arriba; todos los ejemplos de la página se actualizan al instante.
  2. Busca o salta a una sección para encontrar el comando que necesitas.
  3. Haz clic en Copiar para copiar una línea lista para ejecutar, o en Copiar sección para un bloque comentado.
  4. Los comandos marcados como destructivo eliminan o sobrescriben datos; lee la nota antes de ejecutarlos.

Objetos, no texto

La gran diferencia con Bash y CMD: los comandos de PowerShell pasan objetos por el pipeline, no líneas de texto. Get-Process | Where-Object CPU -gt 100 | Sort-Object CPU filtra y ordena por propiedades reales, sin tener que interpretar columnas. Get-Member muestra qué propiedades tiene un objeto, y Select-Object, Where-Object y ForEach-Object hacen el resto.

Nombres Verbo-Sustantivo y alias

Los cmdlets se nombran como Verbo-Sustantivo: Get-ChildItem, Set-Content, Remove-Item. Así, Get-Command -Verb Get o Get-Command *Service* te ayudan a encontrar lo que buscas. Alias familiares como ls, cd, cat y rm apuntan a estos cmdlets, pero sus parámetros son los de PowerShell, no las opciones de Unix.

Windows PowerShell 5.1 frente a PowerShell 7

Windows incluye Windows PowerShell 5.1 (powershell.exe). PowerShell 7 (pwsh) es el sucesor multiplataforma para Windows, macOS y Linux, con los operadores && y ||, operadores ternarios y mejor rendimiento. Todo lo de esta página funciona en ambos, salvo que se indique lo contrario. Compáralo con la chuleta de CMD y la chuleta de comandos de Linux.

También se busca como: comandos powershell, lista de comandos powershell, powershell grep, powershell tail, ejemplos powershell, comandos windows powershell.

Herramientas que combinan con: Chuleta PowerShell

  • Chuleta de Git — Todos los comandos de Git que usas a diario, y los que necesitas cuando algo sale mal, explicados en una línea.
  • Conversor de rutas de Windows — Pega una ruta en cualquier formato — C:\Users\me\project, /mnt/c/Users/me/project, /c/Users/me — y obtén todas las demás formas, listas para copiar: WSL, Git Bash, Cygwin, URL file, UNC y escapada para código.
  • Conversor de saltos de línea — Mira qué saltos de línea usa un archivo y conviértelos (de CRLF de Windows a LF de Unix o al revés) para texto pegado o un lote completo de archivos, con limpieza de espacios finales y tabs incluida.
  • Chuleta de Docker — Los comandos de Docker y Docker Compose que usas cada semana, explicados en una línea.

Preguntas frecuentes

¿Cuál es el equivalente de grep en PowerShell?
Select-String. Por ejemplo, Select-String -Path *.log -Pattern "error", o envía una salida por pipeline: Get-Content app.log | Select-String error.
¿Cómo sigo un archivo de log como tail -f?
Get-Content app.log -Tail 50 -Wait muestra las últimas 50 líneas y sigue imprimiendo las nuevas.
¿Por qué no se ejecuta mi script?
La directiva de ejecución bloquea los scripts por defecto. Ejecuta Set-ExecutionPolicy RemoteSigned -Scope CurrentUser para permitir tus propios scripts.
¿Puedo instalar Chuleta PowerShell como aplicación web y utilizarla sin conexión?
Sí. Chuleta PowerShell es una aplicación web instalable (PWA): se instala desde el navegador, no se descarga desde una tienda de aplicaciones. Haz clic en «Instalar aplicación» en la parte superior de esta página en Chrome o Edge (Windows, macOS, Linux, ChromeOS) o, en Android, utiliza «Compartir» → «Añadir a la pantalla de inicio» en iPhone y iPad, o «Archivo» → «Añadir al Dock» en Safari 17+ en un Mac. A continuación, se abrirá en su propia ventana con su propio icono y, como se ejecuta íntegramente en tu navegador, seguirá funcionando sin conexión. Firefox en el ordenador de sobremesa no permite instalar aplicaciones web. Cómo funciona la instalación.

Herramientas relacionadas