是什么导致了这个无用的Powershell ISE错误消息?

时间:2012-06-24 13:47:42

标签: powershell-ise

我正在尝试将Powershell ISE用作控制台应用,但收效甚微。 Comskip是一个命令行工具,我有一个AHK脚本,通常通过cmd.exe执行Comskip商业步调。工作正常,但最近我开始在文件名中使用Unicode字符(星级),因为你们都知道这些在控制台中不会显示得特别好。

调查让我想到支持Unicode的Powershell ISE。从ISE运行Comskip被证明是非常具有挑战性的。如果手动输入所有内容,它可以正常工作,但是当从另一个脚本调用它时问题就开始了。

现在有问题的部分是如果使用调用普通Powershell控制台的代码,那一切都很顺利。但调用ISE的相同代码失败了,我看不出原因。可以吗?我得到的错误消息没有给出任何错误的明确线索。错误消息只说:

  

用法:powershell_ise.exepowershell_ise.exe fileName.ps1

呼叫ISE的AHK线看起来像这样:

latest_file := "C:\Program\Comskip\q.ts"
Run, PowerShell_ISE.exe "C:\Program\Comskip\comskip.exe" -t --videoredo "%latest_file%"

现在,如果使用Powershell控制台,相同的代码执行正常:

latest_file := "C:\Program\Comskip\q.ts"
Run, PowerShell.exe "C:\Program\Comskip\comskip.exe" -t --videoredo "%latest_file%"

为什么我会得到这些异常?

1 个答案:

答案 0 :(得分:1)

PowerShell ISE无法运行powershell.exe所具有的命令。原因很简单:ISE被设计为一个交互式环境,其中powershell.exe被认为是交互式和“批量”操作的东西,就像你试图完成的那样。

您得到的错误是IMO描述性足够:您只能运行PowerShell_ISE(无参数)或指定ISE将在启动后打开的.ps1文件。在v3中有2个新添加(-NoProfile和-MTA)但仍然没有人将它设计为批处理工具..抱歉。