Saltar al contenido

Redireccionamiento de entrada/salida estándar en Windows PowerShell

Este dilema se puede solucionar de variadas formas, pero te damos la respuesta más completa para nosotros.

Solución:

No puede conectar un archivo directamente a stdin, pero aún puede acceder a stdin.

Get-Content input.txt | ./program > output.txt

Si hay alguien que busca la alternativa ‘Get-Content’ para archivos grandes (como yo), puede usar CMD en PowerShell:

cmd.exe /c ".program < .input.txt"

O puede usar este comando de PowerShell:

Start-Process .program.exe -RedirectStandardInput .input.txt -NoNewWindow -Wait

Ejecutará el programa sincrónicamente en la misma ventana. Pero no pude averiguar cómo escribir el resultado de este comando en una variable cuando lo ejecuto en el script de PowerShell porque siempre escribe datos en la consola.

EDITAR:

Para obtener resultados de Start-Process, puede usar la opción

-RedirectStandardOutput

para redirigir la salida al archivo y luego leerlo desde el archivo:

Start-Process ".program.exe" -RedirectStandardInput ".input.txt" -RedirectStandardOutput ".temp.txt" -NoNewWindow -Wait
$Result = Get-Content ".temp.txt"

Para la redirección de salida puede usar:

  command >  filename      Redirect command output to a file (overwrite)

  command >> filename      APPEND into a file

  command 2> filename      Redirect Errors 

La redirección de entrada funciona de una manera diferente. Por ejemplo, vea este Cmdlet http://technet.microsoft.com/en-us/library/ee176843.aspx

Reseñas y calificaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *