从PHP运行Dos命令

从PHP运行Dos命令,php,cygwin,dos,Php,Cygwin,Dos,我正在尝试使用PHP中的一个命令,使用cygwyn打印一个文件。下面是我的代码。我可以从命令行使用它,但是,当我从PHP运行它时,它不起作用 exec ('\cygwin\bin\bash.exe -c "/scripts/print.sh"'); 这里可能出了什么问题 更多信息: 脚本print.sh: #!/usr/bin/bash /usr/bin/lpr -d TSP143LAN /spool/order1.txt TSP143LAN是我的打印机 我还试着使用directexec命

我正在尝试使用PHP中的一个命令,使用cygwyn打印一个文件。下面是我的代码。我可以从命令行使用它,但是,当我从PHP运行它时,它不起作用

exec ('\cygwin\bin\bash.exe -c "/scripts/print.sh"');
这里可能出了什么问题

更多信息:

脚本print.sh:

#!/usr/bin/bash

/usr/bin/lpr -d TSP143LAN /spool/order1.txt
TSP143LAN是我的打印机

我还试着使用directexec命令

exec ('c:\cygwin\bin\lpr.exe -d TSP143LAN c:\cygwyn\spool\order1.txt', $output);
var_dump($output);
我看到的输出是

array (size=0)
  empty

尝试添加cygwin的完整路径,即:

shell_exec('C:\cygwin\bin\bash.exe -c "/scripts/print.sh"');
编辑:

检查php手册下面链接的该用户的评论


试着给它一个输出变量(第二个参数),以便调试。另外,检查PHP是否正在同一文件夹中运行该命令。例如,要求它只执行
dir
,您应该知道它在哪里。有错误消息吗?您是否尝试过更简单的
exec(“dir”)?是的。我可以从exec(“dir”)中看到值。我还尝试了exec('c:\cygwin\bin\bash.exe',$output);变量转储(输出);我看到array(size=0)emptyI刚刚从类似情况的人那里找到了一条有用的评论,有很多东西要检查。