让我们首先把这一切带到地球上一点点。以下行:
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"';
遵循以下规则: