Execute php script in a bat file: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
Line 54: Line 54:


== Example of bash file ==
== Example of bash file ==
PHP script which implemented [http://php.net/manual/en/function.exit.php exit()] and return error code 1.
PHP script which implemented [http://php.net/manual/en/function.exit.php exit()] and return error code 1<ref>[https://www.tldp.org/LDP/abs/html/comparison-ops.html Other Comparison Operators]</ref>.
<pre>
<pre>
#!/bin/bash
#!/bin/bash

Revision as of 17:29, 21 November 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 in Windows Command Line or save as BAT file:
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 of bat file

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

@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


Example of bash file

PHP script which implemented exit() and return error code 1[2].

#!/bin/bash
path/to/php "path/to/php_script.php" -var1=value1
if [ $? -eq 1 ]; then
  read -n 1 -s -r -p "Press any key to continue"
  exit 1
fi

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[3] (Windows 系統管理工具 → 工作排程器[4])
  • 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[5]: 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