xcopy通过映射的网络驱动器utf-8文件名。 RET = 4

时间:2018-06-06 11:50:09

标签: php cmd

我尝试使用xcopy命令将具有utf-8文件名的文件从Windows服务器(2008 R2 Standard)计算机复制到另一台远程服务器(Windows 10),然后使用{{ 1}}命令映射网络驱动器。

MapNetworkDrive

作为输出,我得到try{ $WshNetwork = new COM("WScript.Network"); $WshNetwork->MapNetworkDrive("k:", SERVER_FOLDER, FALSE, SERVER_USER, SERVER_PASSWORD); }catch(Exception $ex){} echo f | xcopy "myFolder\тест.fbx" "k:\myFolder\тест.fbx" (1)

我想提及三件重要的事情

  1. 当我使用上面的命令和一个用拉丁字母命名的文件时,它可以工作。例如,out=0 File(s) copied ret=4工作正常。

  2. 当我尝试使用echo f | xcopy "myFolder\test.fbx" "k:\myFolder\test.fbx"命令将文件(使用非拉丁字母)复制到同一台机器上的另一个文件夹时,一切都成功了。 例如(1) 这个命令也可以正常工作。

  3. 当我尝试通过echo f | xcopy "C:\\myFolder\тест.fbx" "C:\\myFolder\subFolder\тест.fbx"文件从本地计算机(Windows 10)复制到远程服务器(Windows 10)时,它也可以正常工作。

  4. 为什么(1)命令不执行复制操作?

1 个答案:

答案 0 :(得分:0)

我的问题是php版本,我使用的是php 7.0,它不适用于unicode特性。对于较早的版本,我不知道还有其他解决方案,但是我已经将php升级到7.2,问题已解决。另外,在其他问题中,我发现该问题在php 7.1和更高版本中消失了。