如何从具有非标准扩展的 PHP 执行 shell 脚本?

如何从具有非标准扩展的 PHP 执行 shell 脚本?

我在 Windows 上安装了 Git 的 shell 集成(以及 Cygwin),以下 PHP 代码无法运行具有.launcher扩展名的外部 shell 脚本:

<?php
  passthru("foo.sh");
  passthru("foo.launcher");
?>

我的foo.shfoo.launcher看起来像:

#!/usr/bin/env sh
echo Works!

当我运行 PHP 脚本时,它.sh被执行,但是.launcher不起作用,因为它显示了错误:

Windows 无法打开此文件:文件:foo.launcher

要打开此文件,Windows 需要知道您要使用什么程序来打开它。

作为解决方法,我可能会更改文件关联,但我认为这被公司政策阻止了(但我仍然可以访问注册表)。因此,如果有的话,我更喜欢一些可以从 PHP 角度使用的解决方案。

答案1

您还可以编写包装脚本来解决这个问题

#!/usr/bin/env sh
foo.launcher

然后从 php 内部执行该脚本。这样可以避免注册表更改和公司政策违规。

相关内容