Execute php script in a bat file: Difference between revisions
Jump to navigation
Jump to search
| Line 41: | Line 41: | ||
</pre> | </pre> | ||
== | == Run the PHP script automatically at a specified time == | ||
* {{Gd}} {{Win}} Using [https://www.splinterware.com/products/scheduler.html System Scheduler] software & specify the path to bat file. | * {{Gd}} {{Win}} Using [https://www.splinterware.com/products/scheduler.html System Scheduler] software & specify the path to bat file. | ||
* {{Win}} Task Scheduler in Windows 10<ref>[https://windowsreport.com/schedule-tasks-windows-10/ How to schedule tasks in Windows 10]</ref> (Windows 系統管理工具 → 工作排程器<ref>[https://key.chtouch.com/ContentView.aspx?P=2487 如何利用 Windows 10 內建的工作排程器,設定電腦定時自動關機、休眠或自動重開機?]</ref>) | * {{Win}} Task Scheduler in Windows 10<ref>[https://windowsreport.com/schedule-tasks-windows-10/ How to schedule tasks in Windows 10]</ref> (Windows 系統管理工具 → 工作排程器<ref>[https://key.chtouch.com/ContentView.aspx?P=2487 如何利用 Windows 10 內建的工作排程器,設定電腦定時自動關機、休眠或自動重開機?]</ref>) | ||
Revision as of 17:35, 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"
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
Win
Using System Scheduler software & specify the path to bat file.- Win
Task Scheduler in Windows 10[2] (Windows 系統管理工具 → 工作排程器[3]) - Linux
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"
References
Related articles
- MS-DOS echo command help
- Exit - Terminate a script - Windows CMD - SS64.com
- PAUSE at the end of file to prevent auto closing of console window after the execution of batch file. [1][2]
- Pause on error in Batch File (Example)
- PHP: getopt - Manual
- Boot up Tasks / 自動執行程式