有没有办法在 php 文件中执行 makefile?我努力了:
exec('cmd /c "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\nmake.exe" -f E:\\dev\\temp.mak > process.out 2> process.err < /dev/null &');
但我不认为 makefile 可以这样运行。
有没有办法在 php 文件中执行 makefile?我努力了:
exec('cmd /c "C:\\Program Files\\Microsoft Visual Studio\\VC98\\Bin\\nmake.exe" -f E:\\dev\\temp.mak > process.out 2> process.err < /dev/null &');
但我不认为 makefile 可以这样运行。
尝试不同的方法,在 PHP 目录的同一位置创建一个 Windows 批处理文件;
cd C:\"Program Files"\"Microsoft Visual Studio"\VC98\Bin
nmake.exe -f E:\dev\temp.mak > process.out 2> process.err
*将 Zids 评论纳入其中:*
如果您不使用 PHP,您将如何从命令行执行它?– 摆脱
如果上述方法不起作用。通过从 Windows 命令提示符运行该 exe 在线搜索该 exe 的使用情况,然后相应地更改 .batch 文件。*
将此保存为.batch
文件,然后从您的 PHP 尝试运行
exec ("filename.bat", $output);
然后
在简单的 foreach 循环中查看 exec 命令执行的输出
foreach ($output AS $OutputStr)
{
echo $OutputStr."<br>";
}
应该有一些输出,来自我将使用的输出。
为什么不这样做:
$make = escapeshellarg("C:\Program Files\Microsoft Visual Studio\VC98\Bin\nmake.exe");
$path = escapeshellarg("E:\dev\temp.mak");
exec("start /B {$make} -f {$path} > process.out 2> process.err");
start /B
将在后台执行您的程序
> process.out
将标准输出重定向到“process.out”文件
2> process.err
将错误输出重定向到“process.err”文件
在这个例子中,process.out
每次process.err
运行都会被擦除make
。为避免这种行为,只需将>
符号替换为>>
, 文件将被附加。