听起来很简单,但我花了好长时间才让它工作起来。Apache 希望我的脚本的第一行是#!<path_to_cmd_shell>
“我不想使用 perl 或其他任何东西,我想使用c:\windows\system32\cmd.exe
但不行”。
当我从 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 的输出回传有关。
有任何想法可以实现这一点吗?
答案1
我认为你的猜测是正确的。exe 文件可能写入屏幕而不是stdout
。
答案2
如果我错了,请原谅我这样说,但是 Apache 知道如何执行 CMD 文件吗?本质上,我希望您必须以 Apache 可以理解的方式将脚本提供给它。也许您尝试让 perl 脚本执行 CMD 并以此方式流式传输输出会更幸运,而不是尝试直接执行 CMD 脚本。