我有一个通过下面的代码调用一个罐子PowerShell脚本:写入输出Powershell的被炒到标准输出
Start-Process java -ArgumentList '-jar', "$jarPath", "$csvPath"
然而,从罐子输出不来通过。我很确定它的运行成功,但我想确定。我如何将它传递给Powershell控制台?
我有一个通过下面的代码调用一个罐子PowerShell脚本:写入输出Powershell的被炒到标准输出
Start-Process java -ArgumentList '-jar', "$jarPath", "$csvPath"
然而,从罐子输出不来通过。我很确定它的运行成功,但我想确定。我如何将它传递给Powershell控制台?
与call operator替换Start-Process
:
& java -jar $jarPath $csvPath
这对我工作得很好:
$stdout = "C:\temp\stdout.txt"
Start-Process powershell -ArgumentList "echo 123" -RedirectStandardOutput $stdout -Wait
$output = Get-Content $stdout
echo $output
Remove-Item $stdout
自从我开始PowerShell进程与命令echo 123
,它返回123
到stdout,所以这个值被保存归档。 用Java交换Powershell,它应该像你期望的那样工作。 请记住,您不能直接将stdout重定向到变量,您必须通过文件来完成。
我期望希望将输出写入其生成的内容,而不是最后一次。如果这是不可能的,那么这肯定会诀窍! – chazbot7
'Start-Process'默认应该这样做。 Java代码看起来应该如何生成输出? –
也许这有帮助吗? http://stackoverflow.com/questions/8761888/powershell-capturing-standard-out-and-error-with-start-process当我遇到类似问题时为我工作 – whatever
@AnsgarWiechers我还没有看到任何东西正在写入使用Start-Process,但我试着直接运行'java -jar“$ jarPath”“$ csvPath”',现在我得到输出到控制台。 – chazbot7