【问题标题】:System call from php来自php的系统调用
【发布时间】: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.exeConsoleApplication1
  • 是的,我确定,我的代码有 1 部分正在运行。当我将参数列表中的 0 更改为 1 时

标签: php system exe


【解决方案1】:

我四处走动。 PHP 写入文件,然后我的新控制台应用程序侦听文件 C#:

        while (true)
        {
            while (IsFileLocked(myFile))
            {
                Thread.Sleep(2000);
            }
            /*    Do stuffs   */
        }

这样我就达到了我的目标。

【讨论】:

    猜你喜欢
    • 2012-03-09
    • 2012-04-29
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2010-11-15
    相关资源
    最近更新 更多