【发布时间】:2016-02-04 13:02:07
【问题描述】:
我想在 php 中使用以下命令。当我打印到文件中时,它适用于我的控制台应用程序的 1 部分。但是当我用给定的函数保存图片或其他东西时,它什么也没做。
system("cmd /c C:\Apache24\htdocs\PSTools\Psexec.exe -i C:/Apache24/htdocs/ConsoleApplication1/ConsoleApplication1/bin/Debug/ConsoleApplication1.exe paramter1 .... parametern");
另一方面,当我将相同的 C:\Apache24\htdocs\PSTools\Psexec.exe -i C:/Apache24/htdocs/ConsoleApplication1/ConsoleApplication1/bin/Debug/ConsoleApplication1.exe paramter1 .... parametern 放入控制台时。它运行没有任何问题。我不知道是什么导致了这个问题。
****** 编辑 *****
我已尝试更改 \ 和 / 的所有组合,但仍然没有解决问题。同样在第 1 部分中,我写道:它适用于我的控制台应用程序的 1 部分
所以问题不在于调用,而可能是权限(一切都有管理员权限——首先让它工作,然后我重新考虑)等等。
****** 附加信息 ******
我使用 Psexec(https://technet.microsoft.com/en-us/sysinternals/psexec.aspx),因为 -i 连接器。
【问题讨论】:
-
我可能是错的,但是您是否尝试将路径中的
/更改为反斜杠?我知道在命令行窗口中自动将/更改为反斜杠,但我不确定自动替换是否会通过 PHP -
正如我写的那样,我的代码的一部分正在运行,只更改参数。但我试过你的提示并没有解决问题。 :)
-
另外,我可能又错了,但是对于 PHP 字符串,您需要使用双反斜杠...所以“C:\path\to\file”变为“C:\\path\\到\\文件”。同样,这些都是简单的事情,所以您可能已经尝试过。对不起,如果我只是重复你已经知道的事情哈哈
-
您是否通过网络服务器运行 PHP?您确定网络服务器用户有权访问
Psexec.exe和ConsoleApplication1? -
是的,我确定,我的代码有 1 部分正在运行。当我将参数列表中的 0 更改为 1 时