php - exec()不起作用,但在命令提示符下工作

时间:2014-05-14 15:57:26

标签: exec xcopy

我试图通过exec()函数从php运行xcopy命令: 以下是我的代码

$execute = ('xcopy "\\\\192.1.1.52\\xcopy_folder\\testfile.txt" "c:\\xcopy_folder\\"',$output);
exec($execute,$output);
echo $output."<br />";
echo $execute;

它显示0文件与执行的命令一起复制,然后我将命令复制并粘贴到cmd提示符,它将文件复制到我的目标文件夹,任何人都可以请求帮助,谢谢!

我尝试了以下内容:

  1. 而不是使用计算机名称,我尝试了IP地址(做同样的事情 - php不起作用但使用DOS提示符),仍显示0文件被复制。

  2. 而不是使用计算机名称和IP地址,我将驱动器(G :)映射到该文件夹​​并使用驱动器符号(它也不能与exec一起工作,但在DOS提示符下工作正常) - 相同的结果如上所述。

  3. 计算机包含源文件位于海外(慢速连接),我试图复制同一网络中的文件(我的电脑旁边),如果我使用IP无关紧要地址或计算机名称就像魅力一样。

  4. 请帮助:(

2 个答案:

答案 0 :(得分:0)

大多数情况下,如果命令在命令提示符下工作,而不是从PHP的exec()(或shell_exec()命令),则是由于以下原因之一:

1)权限问题。您具有从命令行执行命令的用户运行命令所需的权限。但是,运行PHP的用户没有必要的权限。

2)环境问题。从命令行执行命令的用户环境中定义环境变量(例如路径)。但是,此环境变量不是在PHP运行的用户环境中设置的。

答案 1 :(得分:0)

试试这个下面的

$execute = ('xcopy "\\\\192.1.1.52\\xcopy_folder\\testfile.txt" "c:\\xcopy_folder\\"');
exec($execute,$output);
print_r ($output)."<br />";
echo $execute;

如果它不起作用,请检查

  1. 文件存在
  2. 您有权限