我有一种情况,我需要从 php 脚本调用批处理文件...但是这个批处理文件需要以管理员身份运行才能工作。 我的解决方案是创建批处理文件的快捷方式,并选中复选框以从快捷方式以管理员身份运行...但是我无法让 php 调用该快捷方式。
我已经尝试过:
exec("C:/path/movefiles_admin.lnk")
和
system("cmd /c C:/path/movefiles_admin.lnk");
这两者都不起作用。有什么建议吗?
试试这个:
exec("START C:/path/movefiles_admin.lnk");
START 启动单独的命令提示符窗口以运行指定的程序或命令。
您可以通过输入文件名作为命令来通过文件关联来运行不可执行的文件
如果您的 PHP 在执行批处理文件快捷方式时出现问题,请尝试对 test.txt 文件执行简单的读写操作。 (检查PHP是否在安全模式下运行)。
如果它不执行这些基本操作,那么您会遇到一些配置问题。
如果程序是用 exec 函数启动的,为了让它继续在后台运行,程序的输出必须重定向到文件或另一个输出流。如果不这样做将导致 PHP 挂起,直到程序执行结束。 请参阅此链接了解您的 PHP 版本:手册
我做了很多实验,但没有成功,没有一个生成命令窗口来显示输出。但这段代码至少运行了链接(在执行此操作时暂停)并将输出存储在文件中:
system('mycommand.lnk > output.txt');
一定有更好的答案,但我相信,截至 2024 年 4 月,这是网络上唯一可行的解决方案。