Execute php script in a bat file: Difference between revisions

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


== Troubleshootings ==
== Troubleshootings ==
=== Error: The system cannot find the path specified. ===
<pre>
c:\path\to\php.exe -f "c:\path\to\php_script.php"
</pre>
Possible solutions: Check the php path if correct or not
<pre>
dir c:\path\to\php.exe
</pre>
=== Error: Could not open input file ===
Error message<ref>[https://stackoverflow.com/questions/29435912/how-do-i-pass-parameters-to-a-php-script-in-a-bat-file windows - How do I pass parameters to a php script in a bat file - Stack Overflow]</ref>: Could not open input file
Error message<ref>[https://stackoverflow.com/questions/29435912/how-do-i-pass-parameters-to-a-php-script-in-a-bat-file windows - How do I pass parameters to a php script in a bat file - Stack Overflow]</ref>: Could not open input file


Line 47: Line 58:
</pre>
</pre>


Solution: (1) add {{kbd | key=<nowiki>--</nowiki>}} after php script (2) remove {{kbd|key=<nowiki>-f</nowiki>}} option from command
Possible solutions: (1) add {{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 54: Line 65:


c:\path\to\php.exe "c:\path\to\php_script.php" -var1=value1
c:\path\to\php.exe "c:\path\to\php_script.php" -var1=value1
</pre>
(3) Enclose the whole path with double quote symbols
<pre>
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"
</pre>
</pre>



Revision as of 17:07, 30 April 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"

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]

Sample bat file

@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

instruction:

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

References

Related articles