Execute php script in a bat file: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
mNo edit summary
Line 9: Line 9:
c:\path\to\php.exe "c:\path\to\php_script.php"
c:\path\to\php.exe "c:\path\to\php_script.php"
</pre>
</pre>
: [[Image:Owl icon.jpg]] If you do not known where is the path of php, you may open the DOS window ({{kbd | key=<nowiki>cmd</nowiki>}}) and key in {{kbd | key=<nowiki>where php</nowiki>}} to obtain the path of php.


== Case 2: Execute the PHP script passing parameters ==
== Case 2: Execute the PHP script passing parameters ==

Revision as of 18:26, 22 August 2018

How to execute php script in a bat file

Case 1: Execute the PHP script 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"
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 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