这听起来很简单,但我很难让它发挥作用。Apache 希望我的脚本的第一行说#!<path_to_cmd_shell>
And I don't want to use perl or else, I want to use c:\windows\system32\cmd.exe
But no go。
当我从 cmd 提示符运行 cmd 文件的其余部分时,它按预期工作。
我什至有一个测试cgi可以做到这一点:
@echo off
echo Content-Type: text/html
echo.
echo ^<html^>^<head^>^</head^>^<body^>hi from stu the cgi ^</body^>^</html^>
那行得通。
但是,当我更改脚本以运行另一个 exe(其输出将是 cgi 响应)时,我得到了各种过早结束的脚本头。
我猜它与exe的输出有关,而不是通过shell的输出管道返回。
知道如何做到这一点吗?
我认为你的猜测是正确的。exe 文件可能会写入屏幕而不是
stdout
.如果我错了,请原谅我这么说,但是 Apache 知道如何执行 CMD 文件吗?本质上,我希望您必须以 apache 可以理解的方式将脚本提供给它。也许你会更幸运地尝试让 perl 脚本执行 CMD 并以这种方式流式传输输出,而不是尝试直接执行 CMD 脚本。