Execute php script in a bat file: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
No edit summary
Line 100: Line 100:
* [http://php.net/getopt PHP: getopt - Manual]
* [http://php.net/getopt PHP: getopt - Manual]
* [[Boot up Tasks]] / [[Boot up Tasks#自動執行程式 | 自動執行程式]]
* [[Boot up Tasks]] / [[Boot up Tasks#自動執行程式 | 自動執行程式]]
* [https://errerrors.blogspot.com/2019/01/how-do-I-run-a-php-script-using-windows-system-scheduler.html 如何設定 Windows 排程自動執行 PHP 程式]


== References ==
== References ==

Revision as of 15:42, 31 January 2019

How to execute php script in a bat file

Case 1: Execute the PHP code directly

  1. Enter cmd to open Windows Command Line
  2. Enter the following command:
c:\path\to\php.exe -r "echo 'Hello';"
Owl icon.jpg If you do not known where is the path of php, you may open the DOS window (cmd) and key in where php to obtain the path of php.

Case 2: Execute the PHP script file without passing parameters

c:\path\to\php.exe -f "c:\path\to\php_script.php"

or

c:\path\to\php.exe "c:\path\to\php_script.php"

Case 3: Execute the PHP script file passing parameters

c:\path\to\php.exe -f "c:\path\to\php_script.php" -- -var1=value1

or

c:\path\to\php.exe "c:\path\to\php_script.php" -var1=value1


Options "-f <file> Parse and execute <file>."[1]

Example bat file

Condition 1: The DOS window was NOT closed automatically when PHP script which implemented exit() and returned error.

@ECHO OFF
c:\path\to\php.exe "c:\path\to\php_script.php" -var1=value1
if NOT ["%errorlevel%"]==["0"] (
    PAUSE
    exit /b %errorlevel%
)

Condition 2: The DOS window was NOT closed automatically. It might annoying if there are too many DOS window.

@ECHO OFF
c:\path\to\php.exe "c:\path\to\php_script.php" -var1=value1
c:\path\to\php.exe "c:\path\to\php_script2.php" -var2=value2
PAUSE

Run the PHP script automatically at a specified time

  • Good.gif Win Os windows.png Using System Scheduler software & specify the path to bat file.
  • Win Os windows.png Task Scheduler in Windows 10[2] (Windows 系統管理工具 → 工作排程器[3])
  • Linux Os linux.png Cron

Troubleshootings

Error: The system cannot find the path specified.

c:\path\to\php.exe -f "c:\path\to\php_script.php"

Possible solutions: Check the php path if correct or not

dir c:\path\to\php.exe

Error: Could not open input file

Error message[4]: Could not open input file

The code caused the error message:

c:\path\to\php.exe -f "c:\path\to\php_script.php" -var1=value1

Possible solutions: (1) add -- after php script (2) remove -f option from command

c:\path\to\php.exe -f "c:\path\to\php_script.php" -- -var1=value1

or

c:\path\to\php.exe "c:\path\to\php_script.php" -var1=value1

(3) Enclose the whole path with double quote symbols

Wrong: c:\path\to\php.exe c:\path\contain white space\php_script.php

Correct: c:\path\to\php.exe "c:\path\contain white space\php_script.php"


Related articles

References