我有一个在ISE中正常运行的PowerShell脚本,但是当我直接从.ps1文件运行它时,它会在此时停止:
Write-Host "Attempting to start FFMPEG Process with arguments:$ArgumentList::::" -ForegroundColor Green
Start-Process $SCRIPT:FFMPEGLocation $ArgumentList -Wait
我使用正确的参数列表获取Write-Host
打印输出,但没有弹出启动过程或任何内容的窗口。我确保将SCRIPT范围变量用于函数之外的任何内容。它在ISE中运行正常,而不是在我在Console中运行时。也没有错误,$SCRIPT:FFMPEGLocation
变量是要执行的exe的直接路径。
非常感谢任何帮助,如果您需要更多帮助,请告诉我。
PSVersion 5.1.14393.1066
OSVersion 10.0.14393
答案 0 :(得分:1)
根据评论,检查传递给Start-Process
的值,以确保它包含您对$SCRIPT:FFMPEGLocation
可能存在的问题的期望。
ISE和控制台之间在范围方面的差异可能令人沮丧。
请参阅this SuperUser post,它进一步解释了行为
。您可能还会发现this post有帮助;
BartekB解释了ISE中的F5
实际上dot-sources脚本而不是calling,并提供了运行干净会话的功能。
答案 1 :(得分:0)
另一种方法,它也会等待需要运行的进程:
& $EXE /arg 1 /arg 2 -etc 2>&1 | % { $_ }
这将执行命令并传递args,将任何错误重定向到输出流然后打印输出(出于某种原因,我实际上从命令输出中运气不好)