У меня есть пакетный файл, который использует команду перемещения для извлечения файлов с другого компьютера:
move \\otherpc\source\directory\*.bin c:\destination\
Обычно, если файлов, соответствующих шаблону, действительно нет, команда move выводит:
Существует дубликат имени файла, или файл не может быть найден.
Если другой компьютер не найден/недоступен, он выведет:
Сетевой путь не найден.
Но у меня есть команда перемещения, которая вернула:
Перемещено 0 файлов.
Примечания:
- Есть файлы, которые соответствуют шаблону
- Папка назначения существует.
- Пользователь имеет права на чтение и запись в обоих каталогах (исходном и целевом).
- Ни один из файлов не доступен только для чтения.
- Целевой диск не заполнен.
Что еще я упускаю? Что может заставить ход вести себя таким образом?
решение1
Я не совсем уверен, что является причиной ваших проблем, но я знаю о возможном решении:robocopy
move
существует со времен DOS и с тех пор не сильно изменился. Наряду с xcopy
, он заменен новым и улучшенным robocopy
. Последний гораздо более универсален и немного менее глючен в некоторых случаях (сеть — один из них).
От robocopy /?
:
Usage :: ROBOCOPY source destination [file [file]...] [options]
source :: Source Directory (drive:\path or \\server\share\path).
destination :: Destination Dir (drive:\path or \\server\share\path).
file :: File(s) to copy (names/wildcards: default is "*.*").
...
/MOV :: MOVe files (delete from source after copying).
/MOVE :: MOVE files AND dirs (delete from source after copying).
Эта команда эквивалентна вашей move
команде:
robocopy \\otherpc\source\directory c:\destination *.bin /mov
Если это работает, не беспокойтесь, почему move
не работает. Если не работает, вот еще пара потенциальных проблем и обходных путей:
Для исходных файлов имеется открытый файловый дескриптор.
Исходные файлы повреждены.
Исходные файлы имеют неправильные имена.
Операционная система и/или файловая система другого ПК не полностью совместимы с Windows.
Вы всегда можете попробовать
copy
сначала иdel
на успех. Я так и не смог понять почему, но это иногда работает, когдаmove
не работает...