为了简化问题,我在 WAMP windows XP 系统上的 PHP 中运行批处理文件,我试图从 PHP 文件启动 notepad.exe。我有一个包含...的 PHP 文件
<?php
exec('c:\windows\notepad.exe');
?>
当我运行 PHP 文件时,我可以看到 notepad.exe 进程在任务管理器中启动,但记事本本身没有打开。我究竟做错了什么?
您尝试做的不是正确的方法,记事本应用程序不是在后台执行操作的进程。但是,如果您想执行一个比通过以下方式花费时间的命令,您可以在后台运行外部程序。意味着 PHP 不会等待外部程序终止。
$cmd = "somecommand";
if (substr(php_uname(), 0, 7) == "Windows"){
pclose(popen("start /B ". $cmd, "r"));
}
else {
exec($cmd . " > /dev/null &");
}
希望这会帮助你。
如果您希望记事本以交互方式运行,您可以使用PSEXEC。
您可以使用 exec 命令从 PHP 运行批处理文件,并且 psexec 能够在批处理文件中以交互方式运行应用程序。