2015-04-03 184 views
0

我正在嘗試添加一個跟蹤某些統計信息的腳本,並且每隔24小時將這封電子郵件發送給Windows任務計劃程序。如何將參數傳遞到bat文件中的php腳本

我這樣做的方式是使用bat文件。

腳本每分鐘運行一次,但僅在添加email=true時發送電子郵件。

在過去我曾經通過XAMPP的URL運行這個命令:http://localhost/path/here/script.php?email=true

我試圖做從Windows任務調度同樣的事情,但我對如何添加這個參數沒有任何線索。

我的bat文件包含:

@ECHO OFF 
C:\xampp\php\php.exe -f "C:\xampp\htdocs\path\here\script.php?email=true" 

但是,這似乎並沒有這樣的伎倆。

在此先感謝任何能夠幫助並澄清如何正確完成此操作的人。

+0

回答:http://stackoverflow.com/a/9612273/4726998 – 2015-04-03 16:30:48

+1

我不認爲這是上述的重複,對不起,但我去了那10倍,但它沒有意味着我需要讓這個工作。 – Snowlav 2015-04-03 16:32:28

+0

是的,我編輯我的評論它不是重複的,但你的答案在這裏。 :) – 2015-04-03 16:33:26

回答

3

CLI參數的工作方式不同。您可以爲

C:\xampp\php\php.exe -f "C:\xampp\htdocs\path\here\script.php" -- email=true 

通知第一--,它從參數php.exe參數分離到腳本運行它。

但這還不夠,因爲參數現在存儲在數組中。所以你可以檢查它爲$sendEmail = in_array('email=true', $argv);

或者(您需要更多選項),您可以使用諸如getopt之類的東西。

如果你需要它在$_GET也可以看看這個SO answer

+0

嘿,謝謝你的回覆,這是否意味着'script.php'需要編輯,如果我使用' - email = true'? – Snowlav 2015-04-03 16:43:32

+0

是的,您需要編輯'script.php'來正確檢索參數,或者我提到的方式,或者在鏈接的答案中。 – 2015-04-03 16:44:43

+0

好的,在script.php中有一行:if(isset($ _ GET ['email'])&& strtolower($ _ GET ['email'])==「true」) {很多代碼}'我不太瞭解SO回答:( – Snowlav 2015-04-03 16:48:26

相關問題