我如何才能将 cmd.exe cmd 文件作为 apache for windows cgi 运行

我如何才能将 cmd.exe cmd 文件作为 apache for windows cgi 运行

听起来很简单,但我花了好长时间才让它工作起来。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 脚本。

相关内容