Назад | Перейти на главную страницу

Как запустить cmd-файл cmd.exe как apache для Windows cgi

Это звучит достаточно просто, но у меня чертовски много времени, чтобы заставить его работать. Apache ожидает, что первая строка моего скрипта скажет #!<path_to_cmd_shell> И я не хочу использовать Perl или что-то еще, я хочу использовать c:\windows\system32\cmd.exe Но не уходи.

Когда я запускаю остальную часть файла 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, который не возвращается через вывод оболочки.

Есть идеи, как это сделать?

Думаю, твоя догадка верна. Файл exe, вероятно, пишет на экран, а не stdout.

Простите, что говорю это, если я ошибаюсь, но знает ли Apache, как выполнить файл CMD? По сути, я ожидал, что вам придется передать скрипт apache в понятной для него форме. Возможно, вам бы больше повезло, если бы сценарий perl выполнял CMD и передавал вывод таким образом, вместо того, чтобы пытаться напрямую выполнить сценарий CMD.