0

我正在尝试将 Powershell ISE 用作控制台应用程序,但收效甚微。Comskip 是一个命令行工具,我有一个 AHK 脚本执行 Comskip 商业广告通常通过cmd.exe. 工作正常,但最近我开始在文件名中使用 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%"

我怎么会得到这些异常?

4

1 回答 1

1

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

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

于 2012-06-24T18:10:14.997 回答