通过批处理脚本/任务调度程序执行 PHPSpreadsheet

Execute PHPSpreadsheet via batch script / task scheduler

我创建了两个 php 文件,分别执行两个任务。

    1。第一个脚本使用 PHPSpreadsheet 创建一个填充的我的报告模板,它是一个 xlsx 文件。当 运行 直接通过浏览器 (Google Chrome) 时,这非常有效。
    2。第二个脚本使用 PHPMailer 获取此文件并将其附加到电子邮件中。当通过浏览器执行时,这再次完美运行。

我已经尝试 运行使用批处理文件来编写相同的脚本,但这是第一部分失败的地方。永远不会创建 Xlsx 文件,因此会发送电子邮件而不附加文档。

我已经尝试 运行通过批处理脚本单独设置每个脚本。

  • 第二部分(发送邮件)按预期工作。
  • 似乎是通过批处理脚本创建文件的问题。
  • REM This adds the folder containing php.exe to the path
    PATH=%PATH%;C:\php
    
    
    REM Change Directory to the folder containing your script
    CD C:\Apache24\htdocs\phpspreadsheet\reporting
    
    REM Execute
    php report_v1.1.php
    
    
    REM Change Directory to the folder containing your script
    CD C:\Apache24\htdocs\Automation
    
    REM Execute
    php report.php
    

    我想按顺序将这两个脚本自动执行 运行,这样我就可以自动将报告发送给相关的收件人。我没有从第一个脚本中收到任何错误消息,当通过命令行执行它进行测试时,终端屏幕上只有很多随机字符。

    正在更新我的代码的最后一部分以阅读

    $writer->save(php_sapi_name() === 'cli' ? 'report_name.xlsx' : 'php://output');

    成功了。感谢@Hunman 提供建议的解决方案。