xcopy через подключенный сетевой диск с именами файлов utf-8.RET = 4 - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь использовать команду xcopy для копирования файла с именем файла utf-8 с компьютера с Windows Server (2008 R2 Standard) на другой удаленный сервер (Windows 10), и я использую команду 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)

В качестве вывода я получаю out=0 File(s) copied ret=4.

Есть 3 важные вещи, которые я хочу упомянуть

  1. КогдаЯ использую вышеупомянутую команду с файлом, названным латинскими буквами, это работает.Например, echo f | xcopy "myFolder\test.fbx" "k:\myFolder\test.fbx" работает нормально.

  2. Когда я пытаюсь использовать команду (1) для копирования файла (с нелатинскими буквами) в другую папку, расположенную на том же компьютере, всеуспехи.Например, echo f | xcopy "C:\\myFolder\тест.fbx" "C:\\myFolder\subFolder\тест.fbx" эта команда также работает нормально.

  3. Когда я пытаюсь скопировать через (1) файл с моего локального компьютера (windows 10) на удаленный сервер (windows 10), это также работает нормально.

Почему команда (1) не выполняет операцию копирования?

1 Ответ

0 голосов
/ 04 июля 2018

Проблема в моем случае была в версии php, я использовал php 7.0, которая не работает с символами Юникода.Я не знаю, есть ли другие решения для более ранних версий, но я обновил свой php до 7.2, и проблема была решена.Также я нашел в других вопросах, что проблема исчезает с php 7.1 и более старшими версиями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...