首页 文章

Powershell脚本不能用于ISE

提问于
浏览
2

我有一个在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 回答

  • 1

    根据评论,检查传递给 Start-Process 的值,以确保它包含您期望的问题,因为 $SCRIPT:FFMPEGLocation 可能存在问题 .

    ISE和控制台之间在范围方面的差异可能令人沮丧 . 请参阅this SuperUser post,它进一步解释了行为 . 您可能还会发现this post很有帮助; BartekB解释说,ISE中的 F5 实际上是dot-sources脚本而不是calling它,并提供了运行干净会话的功能 .

  • 0

    另一种方法也将等待需要运行的进程:

    & $EXE /arg 1 /arg 2 -etc 2>&1 | % { $_ }
    

    这将执行命令并传递args,将任何错误重定向到输出流,然后打印输出(出于某种原因,我实际上从命令输出中运气不好)

相关问题