【发布时间】:2021-02-17 18:13:16
【问题描述】:
标题尽可能具体。我有一个 PHP 页面,它通过 exec 执行一个批处理文件,该文件将执行一个 python exe,将数据导出到 csv 中,如果交易成功,应该通过一个用 Mbox 制作的窗口提示用户。
PHP 脚本
$work = exec("START exec_export.bat",$output);
echo $work;
var_dump($output);
批处理文件
cd C:\wamp64\www\path\dist
START transfer_out_exporting.exe
Python 可执行文件
connection.close()
cursor.close()
Mbox('Export Succesful! ', 'File Name: '+file_name+".txt", 0)
然而,事实并非如此。幸运的是,它确实完成了 python exe 的预期任务。它将数据导出到 csv。它只是不会显示窗口。另一个问题是一旦 php 文件执行了批处理文件,页面将永远加载。我必须从 wamp 重新启动所有服务,以便我可以再次使用 python exe。如果我手动单击批处理文件,它将显示python exe的提示窗口。 Prompt Window
我已经无休止地搜索了一个星期,但没有一个对我有用。我浪费时间试图理解一些解决方案,因为它们没有详细说明。然而,问题仍然没有解决。拜托,谁能给我一步一步(每个步骤的完整描述)如何解决这个问题。提前谢谢!
【问题讨论】:
-
不是解决方案,而是将批处理文件
cd更改为cd /D... -
这个问题太多了,我什至不知道从哪里开始。
-
@AlexBarker 一个很好的解释将不胜感激。至少,这是我对这个网站的期望,尤其是对拥有近 4000 名声望的人的期望。我相信我开始理解为什么 PHP 页面会永远加载。这是因为exe进程仍在运行,而windows进程由批处理文件处理。我必须结束这两个任务才能使页面停止加载并显示输出。我想我需要在导出完成后让 exe 和批处理脚本自行结束。
标签: python php batch-file exec exe