我有一个在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
2 回答
根据评论,检查传递给
Start-Process
的值,以确保它包含您期望的问题,因为$SCRIPT:FFMPEGLocation
可能存在问题 .ISE和控制台之间在范围方面的差异可能令人沮丧 . 请参阅this SuperUser post,它进一步解释了行为 . 您可能还会发现this post很有帮助; BartekB解释说,ISE中的
F5
实际上是dot-sources脚本而不是calling它,并提供了运行干净会话的功能 .另一种方法也将等待需要运行的进程:
这将执行命令并传递args,将任何错误重定向到输出流,然后打印输出(出于某种原因,我实际上从命令输出中运气不好)