我在 Windows 上安装了 Git 的 shell 集成(以及 Cygwin),以下 PHP 代码无法运行具有.launcher
扩展名的外部 shell 脚本:
<?php
passthru("foo.sh");
passthru("foo.launcher");
?>
我的foo.sh
和foo.launcher
看起来像:
#!/usr/bin/env sh
echo Works!
当我运行 PHP 脚本时,它.sh
被执行,但是.launcher
不起作用,因为它显示了错误:
Windows 无法打开此文件:文件:foo.launcher
要打开此文件,Windows 需要知道您要使用什么程序来打开它。
作为解决方法,我可能会更改文件关联,但我认为这被公司政策阻止了(但我仍然可以访问注册表)。因此,如果有的话,我更喜欢一些可以从 PHP 角度使用的解决方案。
答案1
您还可以编写包装脚本来解决这个问题
#!/usr/bin/env sh
foo.launcher
然后从 php 内部执行该脚本。这样可以避免注册表更改和公司政策违规。