【问题标题】:php xcopy giving 0 files copiedphp xcopy 复制了 0 个文件
【发布时间】:2015-08-12 18:11:41
【问题描述】:

我正在尝试在 php 中进行 xcopy,但我似乎无法让它工作,我确实尝试了 psexec 的路线,但复制命令也不起作用。

我已经尝试过 shell_exec、exec 和 passthru,但似乎都给出了相同的错误 0 文件被复制,但是如果我通过命令行执行相同的命令,文件复制完美,所以它不能是权限问题,必须是我的代码有问题,如果有人能指出我的问题,我将不胜感激

当我通过命令行执行此操作时:

C:\Users\xante>xcopy c:\wamp\www\xcopy\copythis.bat  \\testmachine\c$\xcopied C:\wamp\www\xcopy\copythis.bat
1 File(s) copied

当我通过 php 执行相同的命令时,我得到这个输出:

  Array ( [0] => 0 File(s) copied)  xcopy "c:\wamp\www\xcopy\copythis.bat" "\\testmachine\c$\xcopied\"

这是我的 php 代码:

$host="testmachine";

$execute = ('xcopy "c:\\wamp\www\xcopy\copythis.bat"  "\\\"$host"\c$\xcopied\\"');
exec($execute,$output);
print_r ($output)."<br />";
echo $execute;

【问题讨论】:

    标签: php


    【解决方案1】:

    原来 WAMP 有点尴尬,而且问题与代码无关。

    为了解决这个问题,我做了以下操作:

    • 运行 services.msc
    • 寻找 wampapache,
    • 右击进入属性,
    • 点击登录并勾选允许服务与桌面交互
    • 重新启动 wampapache,问题已解决

    【讨论】:

      【解决方案2】:

      试试这个$execute变量

      $execute = ('xcopy "c:\\wamp\\www\\xcopy\\copythis.bat"' .   '"\\\\' . $host . '\\c$\\xcopied\\"');
      

      【讨论】:

      • 请解释你的答案是做什么的。
      • @TomaszKowalczyk : Correctifs : (1) UNC 路径需要 4 个反斜杠 (2) 要解释的变量 $host 必须在双引号内或没有任何内容 (3) 避免出现问题,每个反斜杠必须被转义
      • 不幸的是,这仍然无法与上面的代码一起使用,它给出了相同的错误 0 文件复制。
      • 我注意到,因为做了更多的测试,以下得到输出 Array ( [0] => 0 File(s) 复制) xcopy "c:\wamp\www\xcopy\copythis.bat" "\\testmachine\c$\xcopyed\"
      • 它不允许我编辑上面的内容,所以我注意到,因为做了更多的测试,以下内容被输出 Array ( [0] => 0 File(s) 复制) xcopy "c:\wamp \www\xcopy\copythis.bat" "\\testmachine\c$\xcopied\" 运行此命令行时它不起作用,但是如果我删除引号它可以在命令行上工作,有什么想法可以解决吗?
      猜你喜欢
      • 2019-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      相关资源
      最近更新 更多