【发布时间】:2011-05-20 03:12:17
【问题描述】:
我可以在 Mac 上轻松启动“sh”文件,但是当我在 Windows 上尝试使用 bat 时,我得到了这个:
无法启动 NativeProcess。 '无法启动带有'.bat'扩展名的文件。'
【问题讨论】:
标签: batch-file air
我可以在 Mac 上轻松启动“sh”文件,但是当我在 Windows 上尝试使用 bat 时,我得到了这个:
无法启动 NativeProcess。 '无法启动带有'.bat'扩展名的文件。'
【问题讨论】:
标签: batch-file air
将文件从 *.bat 重命名为 *.cmd ,它就像一个魅力。
非常安全。
【讨论】:
出于安全原因,you can't do that。
Windows 上的 AIR 不允许您直接运行 .bat 文件。 Windows .bat 文件由命令解释器应用程序 (cmd.exe) 执行。当您调用 .bat 文件时,此命令应用程序可以将传递给命令的参数解释为要启动的附加应用程序。在参数字符串中恶意注入额外字符可能会导致 cmd.exe 执行有害或不安全的应用程序。例如,如果没有正确的数据验证,您的 AIR 应用程序可能会调用 myBat.bat myArguments c:/evil.exe。除了运行批处理文件之外,命令应用程序还会启动 evil.exe 应用程序。
如果使用 .bat 文件调用 start() 方法,NativeProcess 对象会引发异常。 Error 对象的 message 属性包含字符串“错误 #3219:无法启动 NativeProcess。”
请尝试使用参数/c your-batch-file.bat 开头cmd.exe。
【讨论】:
var batUrl:String = "outProtoCmd.bat";
var file:File = new File(batUrl); file.openWithDefaultApplication();
【讨论】: