我想要做的就是發送:
run_app.exe -param 'test' -name 'tester'
從PHP CMD線一個窗口。
這是可能的還是我需要編寫一個Windows應用程序以某種方式觸發應用程序?
我想要做的就是發送:
run_app.exe -param 'test' -name 'tester'
從PHP CMD線一個窗口。
這是可能的還是我需要編寫一個Windows應用程序以某種方式觸發應用程序?
您可以使用exec()。
你試過exec
?
我建議使用標準的PHP system
命令。 official PHP site中有大量信息和示例。
對於exec()
,system()
和passthru()
之間的差異,有一個回答question on SO。
或者你可以使用:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run(strCommand, [intWindowStyle], [bWaitOnReturn]);
在這裏你可以找到的run方法PARAMS:http://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.85%29.aspx
這裏是COM類文檔:http://www.php.net/manual/en/class.com.php
有了這個方法,你可以這樣做更多在Windows :)。 我使用它因爲[bWaitOnReturn]參數,我不能使用任何其他方法。
這是一個項目,它允許PHP獲取並與真正的cmd終端動態交互。在這裏獲得:https://github.com/merlinthemagic/MTS
下載您只需使用下面的代碼後:
//if you prefer Powershell, replace 'cmd' with 'powershell'
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('cmd');
$strCmd1 = 'run_app.exe -param "test" -name "tester"';
$return1 = $shellObj->exeCmd($strCmd1);
返回會給你從CMD命令返回或錯誤,就如同您坐在控制檯。此外,您可以針對$ shellObj發出任何您喜歡的命令,該環境在PHP腳本的整個生命週期中都得到維護。因此,不要將腳本文件綁定到腳本文件中,只需使用exeCmd()方法逐個發佈它們,這樣您還可以處理返回和任何異常。