讓我們先關閉所有把這種腳踏實地的一點點。下面的代碼行:
exec("C:\\xampp\\upload.exe backup /command \"option confirm off\" \"put C:\\big boy\\Documents\\dev notes\\\" \"exit\"");
您的主要目的在命令的實際字符串,讓我們事由的再認識它:
C:\xampp\upload.exe backup /command "option confirm off" ⤦
⤥"put C:\big boy\Documents\dev notes\" "exit"
因爲它現在應該是你明明看見,這不是一個有效的命令在shell中。請參閱upload.exe
文檔,其格式爲/command
交換機的值必須通過。
由於您尚未提供任何參考upload.exe
,因此我無法在此提供更具體的建議。然而,處理這些問題的一種常見方式是首先將該命令分配給一個變量,然後執行它。這允許顯示調試信息,然後可以輕鬆地解決的事情:
$command = "C:\\xampp\\upload.exe backup /command \"option confirm off\" \"put C:\\big boy\\Documents\\dev notes\\\" \"exit\"";
exec($command);
這可能是它只是(只猜到了,這是它如何與cmd /k
工作):
$command = 'C:\xampp\upload.exe backup /command ""option confirm off" ⤦
⤥"put "c:\big boy\Documents\dev notes\" "exit""';
編輯:現在當你寫它實際上是winscp.com
命令,我會假設:
$command = 'C:\xampp\upload.exe backup /command "option confirm off" ⤦
⤥"put ""c:\big boy\Documents\dev notes\""" "exit"';
以下規則:
你會做同樣的,你會在操作系統的外殼。請提供在cmd下工作的命令,否則這與PHP和exec無關,而是與windows shell相關。 – hakre