Execute php script in a bat file: Difference between revisions

From LemonWiki共筆
Jump to navigation Jump to search
Tags: Mobile edit Mobile web edit
Tags: Mobile edit Mobile web edit
Line 87: Line 87:
</pre>
</pre>


Possible solutions: (1) add {{kbd | key=<nowiki>--</nowiki>}} after php script (2) remove {{kbd|key=<nowiki>-f</nowiki>}} option from command
Possible solutions: (1) add double dash symbol {{kbd | key=<nowiki>--</nowiki>}} after php script (2) remove {{kbd|key=<nowiki>-f</nowiki>}} option from command
<pre>
<pre>
c:\path\to\php.exe -f "c:\path\to\php_script.php" -- -var1=value1
c:\path\to\php.exe -f "c:\path\to\php_script.php" -- -var1=value1
Line 102: Line 102:
Correct: 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"
</pre>
</pre>


== Related articles ==
== Related articles ==

Revision as of 07:00, 5 February 2020

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 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][3][4].

#!/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[5] (Windows 系統管理工具 → 工作排程器[6])
  • 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[7]: 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 double dash symbol -- 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