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