Skip to content

Redirecciones Powershell

Redirecciones en Powershell (operadores lógicos y de redirección)

Section titled “Redirecciones en Powershell (operadores lógicos y de redirección)”

Mandar stdout/stderr (y otros streams) a archivos, o encadenar comandos según éxito/fallo. PowerShell numera varios flujos, no solo “pantalla vs error” como CMD.


PowerShell no solo maneja texto (como CMD), sino flujos de salida (streams). Cada flujo tiene un número que se usa para redirigirlo:

StreamQué es
1Output / SuccessSalida normal del cmdlet
2ErrorErrores no terminantes / mensajes de error
3WarningAdvertencias (Write-Warning)
4VerboseMensajes -Verbose
5DebugMensajes -Debug
6InformationWrite-Information / Write-Host (según versión)

OperadorQué haceEjemplo
> / 1>Sobrescribe archivo con salida successGet-Process > procs.txt
>> / 1>>Añade al finalGet-Date >> log.txt
2>Redirige erroresGet-Item C:\nope 2> err.txt
2>>Añade errores al archivocmdlet 2>> err.txt
*>Redirige todos los streamsGet-ChildItem C:\ *> todo.txt
*>>Añade todos los streamsGet-ChildItem *>> todo.txt
2>&1Mezcla errores con la salida successcmdlet > out.txt 2>&1
3> / 4> / 5> / 6>Redirige warning / verbose / debug / infocmdlet 4> verbose.txt
| Tee-ObjectEscribe a archivo y sigue en pipelineGet-Process | Tee-Object procs.txt
&&Ejecuta el siguiente si el anterior OK (PS 7+)Test-Path a.txt && Get-Content a.txt
||Ejecuta el siguiente si el anterior falló (PS 7+)Test-Path a.txt || Write-Host "falta"

En Windows PowerShell 5.1, && / || no existen; usa if / -and o ; según el caso.


Terminal window
# Guarda salida y errores en archivos diferentes
Get-ChildItem C:\ 1>salida.txt 2>errores.txt
# Guarda todo en un solo archivo
Get-ChildItem C:\ *> todo.txt
# Si un archivo existe, muestra un mensaje (PowerShell 7+)
Test-Path "C:\config.txt" && Write-Host "Existe" || Write-Host "No existe"
# Redirigir salida a un archivo y también verla en pantalla
Get-Process | Tee-Object -FilePath procesos.txt

Tip extra: usar redirecciones dentro de scripts

Section titled “Tip extra: usar redirecciones dentro de scripts”

En scripts (.ps1), puedes controlar redirecciones con más precisión:

Terminal window
$ErrorActionPreference = "SilentlyContinue" # Ignora errores no terminantes
Get-Item "C:\noexiste.txt" *> log.txt # Redirige todo