将从Powershell触发的java程序的输出写入标准输出



我有一个powershell脚本,它通过以下代码调用jar:

Start-Process java -ArgumentList '-jar', "$jarPath", "$csvPath"

但是,jar的输出没有通过。我很确定它运行得很成功,但我想确定一下。如何将其传递到Powershell控制台?

Start-Process替换为呼叫操作符:

& java -jar $jarPath $csvPath

这对我来说很好:

$stdout = "C:tempstdout.txt"
Start-Process powershell -ArgumentList "echo 123" -RedirectStandardOutput $stdout -Wait
$output = Get-Content $stdout
echo $output
Remove-Item $stdout

因为我用命令echo 123启动Powershell进程,它返回123到stdout,所以这个值被保存到文件中。将Powershell与Java交换,它应该像您期望的那样工作。请记住,您不能将stdout直接重定向到变量,您必须通过file.